24小时热门版块排行榜    

查看: 1273  |  回复: 2

云中木

金虫 (小有名气)

[求助] 关于siesta的一些问题 已有1人参与

问一下1.siesta如何编译使用gnubands指令画能带图;2.当提示Dimensions in gnubands too small时如何操作修改数组大小。
希望得你帮助,感激不尽!
回复此楼

» 猜你喜欢

独钓寒江雪
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zhangguangping

木虫 (著名写手)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
云中木: 金币+20, ★★★很有帮助 2016-07-15 08:48:25
这是由于程序采用的是固定大小的数组导致的。可以修改一下程序,将数组设置为动态分配的,这样就解决问题了。将附件中的程序替换原来的程序编译即可。

=====
删除
      integer           maxk, maxb, maxs
      parameter         (maxk=1000, maxb=100, maxs=2)
      double precision  e(maxb, maxs, maxk), k(maxk)
添加
      double precision, dimension(:,:,,allocatable :: e
      double precision, dimension(,allocatable :: k

然后将
      overflow = (nband.gt.maxb) .or. (nk.gt.maxk) .or. (nspin.gt.maxs)
      if (overflow) stop 'Dimensions in gnubands too small'
替换为
      allocate ( e(nband,nspin,nk),k(nk) )
====

» 本帖附件资源列表

  • 欢迎监督和反馈:小木虫仅提供交流平台,不对该内容负责。
    本内容由用户自主发布,如果其内容涉及到知识产权问题,其责任在于用户本人,如对版权有异议,请联系邮箱:xiaomuchong@tal.com
  • 附件 1 : gnubands.f
  • 2016-07-14 17:15:13, 2.4 K
弘德明志博学笃行
2楼2016-07-14 17:17:07
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

云中木

金虫 (小有名气)

引用回帖:
2楼: Originally posted by zhangguangping at 2016-07-14 17:17:07
这是由于程序采用的是固定大小的数组导致的。可以修改一下程序,将数组设置为动态分配的,这样就解决问题了。将附件中的程序替换原来的程序编译即可。

=====
删除
      integer           maxk, maxb, maxs
...

非常感谢!
独钓寒江雪
3楼2016-07-15 08:48:51
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 云中木 的主题更新
信息提示
请填处理意见