24小时热门版块排行榜    

北京石油化工学院2026年研究生招生接收调剂公告
查看: 2482  |  回复: 5

alvin510

银虫 (小有名气)

[求助] Fortran编程过程中遇到错误,求大侠帮忙看下

我在用FORTRAN计算NLO过程中,编的一段程序遇到错误,请高手帮忙看下,万分感谢。
其中的一段程序为:
module def
    implicit none
    integer :: nk,nkpts,ndum,ns,nspins,nb,locat_str
    character (len=80) :: dummy
    real num_e
    real fermi_energy
    integer num_bands
    real,allocatable :: weight(
    real,allocatable :: kpoints(:,
   
end module
        
program main

!读入 kpoints, weights 和 eigenvalues
use def
implicit none
integer,parameter :: fileid=10
character (len=80) :: filename="F:\FORTRAN\NLOC\CGA\unit_bands.txt"
logical alive

inquire (file=filename,exist=alive)
if(.not. alive) then
    write(*,*) trim(filename), "doesn't exist!"
    stop
end if

open(unit=10,file=filename)
read(unit=10,"(19XI6,/,26XI2,/,20XF7.1,/,22XI7,/,31XF13.8)" nkpts,spins,num_e,num_bands,fermi_energy
allocate(kpoints(1,nkpts))
allocate(kpoints(2,nkpts))
allocate(kpoints(3,nkpts))
allocate(weight(nkpts))

do nk = 1, nkpts
        read(fileid, '(a)') dummy
        locat_str = index(dummy,'K-point')
        read(dummy(locat_str+7,*) ndum, kpoints(1,nk), kpoints(2,nk), kpoints(3,nk), weight(nk)
        do ns = 1, nspins
                read(fileid,*) dummy
                do nb = 1, num_bands
                                read(fileid,*) eigenvalues(nb, nk, ns)
                        enddo
                enddo
        enddo
close(fileid)

stop
end program
其中调用了一个数据文件unit_bands.txt。这个文件我已经上传了上来。
再次感谢你的帮助!
回复此楼

» 本帖附件资源列表

  • 欢迎监督和反馈:小木虫仅提供交流平台,不对该内容负责。
    本内容由用户自主发布,如果其内容涉及到知识产权问题,其责任在于用户本人,如对版权有异议,请联系邮箱:xiaomuchong@tal.com
  • 附件 1 : unit_bands.txt
  • 2013-07-18 18:42:01, 39.01 K
  • 附件 2 : CGA-01.txt
  • 2013-07-18 18:43:19, 1.17 K

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

alvin510

银虫 (小有名气)

大家还是看我附件中的代码吧,网页上的出了点错误
2楼2013-07-18 18:45:13
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

jerkwin

专家顾问 (正式写手)

【答案】应助回帖

感谢参与,应助指数 +1
eigenvalues没有定义啊
3楼2013-07-18 21:10:42
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

alvin510

银虫 (小有名气)

引用回帖:
3楼: Originally posted by jerkwin at 2013-07-18 21:10:42
eigenvalues没有定义啊

谢谢你发现这个问题。后来我自己又发现了几个问题一并做了更改,发现还是出现问题了。我的代码如下:
module def
    implicit none
    integer :: nk,nkpts,ndum,ns,nspins,nb,locat_str
    character (len=80) :: dummy
    real num_e
    real fermi_energy
    integer num_bands
    real,allocatable :: weight(
    real,allocatable :: kpoints(:,
    real,allocatable :: eigenvalues(:,:,
   
end module
        
program main

!读入 kpoints, weights 和 eigenvalues
use def
implicit none
integer,parameter :: fileid=10
character (len=80) :: filename="F:\FORTRAN\NLOC\CGA\unit_bands.txt"
logical alive

inquire (file=filename,exist=alive)
if(.not. alive) then
    write(*,*) trim(filename), "doesn't exist!"
    stop
end if

open(unit=fileid,file=filename)
read(unit=fileid,"(19XI6,/,26XI2,/,20XF7.1,/,22XI7,/,31XF13.8)" nkpts,nspins,num_e,num_bands,fermi_energy
!read(unit=fileid,"(19XI6)" nkpts
!read(unit=fileid,"(26XI2)" nspins
!read(unit=fileid,"(20XF7.1)" num_e
!read(unit=fileid,"(22XI7)" num_bands
!read(unit=fileid,"(31XF13.8)" fermi_energy
allocate(kpoints(3,nkpts))
allocate(weight(nkpts))
allocate(eigenvalues(num_bands,nkpts,nspins))

do nk = 1, nkpts
        read(fileid, '(a)') dummy
        locat_str = index(dummy,'K-point')
        read(dummy(locat_str+7,*) ndum, kpoints(1,nk), kpoints(2,nk), kpoints(3,nk), weight(nk)
        do ns = 1, nspins
                read(fileid,*) dummy
                do nb = 1, num_bands
                                read(fileid,*) eigenvalues(nb, nk, ns)
                        enddo
                enddo
        enddo
close(fileid)

stop
end program
4楼2013-07-18 22:47:56
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

alvin510

银虫 (小有名气)

提示出错的地方在
read(unit=fileid,"(19XI6,/,26XI2,/,20XF7.1,/,22XI7,/,31XF13.8)" nkpts,nspins,num_e,num_bands,fermi_energy
这一行。
错误        1         error #6357: This is not a valid specifier for a control list.   ['(19XI6,/,26XI2,/,20XF7.1,/,22XI7,/,31XF13.]        F:\FORTRAN\NLOC\CGA\CGA-01.f90        30       

请帮我查查看原因,谢谢
5楼2013-07-18 22:50:43
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

jerkwin

专家顾问 (正式写手)

【答案】应助回帖

用你注释掉的那种写法,如
read(unit=fileid,×) nkpts
6楼2013-07-18 22:54:07
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 alvin510 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 工科08-机械专硕-求调剂 +3 雷欧飞踢 2026-04-02 3/150 2026-04-05 18:49 by 蓝云思雨
[考研] 070300化学学硕311分求调剂 +10 梁富贵险中求 2026-04-04 12/600 2026-04-05 09:37 by guoweigw
[考研] 11408,335分,本科211,求调剂,可转专业 +5 鳄梨大鳄鱼 2026-04-03 5/250 2026-04-04 22:49 by chongya
[考研] 283求调剂 +4 mcbbc 2026-04-03 5/250 2026-04-04 20:51 by imissbao
[考研] 调剂0855-288 +5 x熊二a 2026-04-03 5/250 2026-04-04 00:19 by 猪会飞
[考研] 070300一志愿211,312分求调剂院校 +16 小黄鸭宝 2026-03-30 16/800 2026-04-03 19:53 by lijunpoly
[考研] 282求调剂 不挑专业 求收留 +7 Yam. 2026-03-30 8/400 2026-04-03 14:12 by zhangdingwa
[考研] 08工科,295,接受跨专业调剂 +8 lmnlzy 2026-03-30 8/400 2026-04-03 13:08 by nalakaiqi
[考研] 315分 085602 求调剂 +15 26考研上岸版26 2026-04-02 15/750 2026-04-03 12:45 by xingguangj
[考研] 266分,一志愿电气工程,本科材料,求材料专业调剂 +9 哇呼哼呼哼 2026-04-02 9/450 2026-04-03 12:05 by 1753564080
[考研] 求调剂22408 288分 +5 new382 2026-04-02 5/250 2026-04-03 09:13 by 醉在风里
[考研] 085600,320分求调剂 +6 大馋小子 2026-04-02 6/300 2026-04-02 21:54 by dongzh2009
[考研] 279求调剂 +5 傅文秋 2026-04-02 5/250 2026-04-02 18:10 by 笔落锦州
[考研] 求调剂推荐 +3 南山南@ 2026-04-01 3/150 2026-04-02 12:09 by xiaoranmu
[考研] 266分,一志愿电气工程,本科材料,求材料专业调剂 +10 哇呼哼呼哼 2026-04-01 11/550 2026-04-02 11:31 by lnilvy
[考研] 348环境工程调剂 +3 吴彦祖24k 2026-04-01 3/150 2026-04-02 09:14 by nanaliuyun
[考研] 085410 一志愿211 22408分数359求调剂 +3 123456789qw 2026-03-31 4/200 2026-04-02 00:06 by 义文wang
[考研] 304求调剂 +12 素年祭语 2026-03-31 15/750 2026-04-01 22:41 by peike
[考研] 070300化学279求调剂 +15 哈哈哈^_^ 2026-03-31 17/850 2026-04-01 21:37 by 给你你注意休息
[硕博家园] 考研调剂 +5 骆驼男人 2026-04-01 5/250 2026-04-01 14:28 by syjjj0321
信息提示
请填处理意见