在gfortran中使用名单时出错

时间:2016-03-02 21:30:47

标签: file input fortran gfortran

我正在尝试从测试文件中读取某些值,但gfortran一直给我一个文件错误结束,我不知道为什么。这是Fortran代码:

    program mesh 
    implicit real*8(a-h,o-z)

    namelist /input/ x

    open(5,file='input.in')
    read(5,input)
    print*, x
    end program mesh 

这是我的输入文件:

 &input 
   x=5/

我尝试了多个输入文件,使用&end代替/,并将所有内容放在同一行(带空格)。

2 个答案:

答案 0 :(得分:0)

将“/”移动到新行后,它应该有效。 EOL字符对gfortran版本4.6.3没有任何影响

&input 
x=5
/

答案 1 :(得分:0)

虽然您已经得到了正确答案,但确定格式的最简单方法是将程序编写到创建名称列表文件,然后查看它以获得正确的语法。

您的程序已修改为[我已添加第二个名单]:

    program mesh
    implicit real*8(a-h,o-z)

    namelist /input/ x,y
    namelist /input2/ a,c

    x = 4
    y = 7

    a = 37
    b = 23

    open(5,file='input.in')
    write(5,input)
    write(5,input2)
    end program mesh

生成的文件是:

&INPUT
 X=  4.0000000000000000     ,
 Y=  7.0000000000000000     ,
 /
&INPUT2
 A=  37.000000000000000     ,
 C=  0.0000000000000000     ,
 /