这应该很简单..我无法弄清楚为什么我的read语句有语法错误。我有一个7477行的文件,我希望每个变量在每行中对应,就像我的格式指定的那样。这里的任何帮助都会很棒。谢谢!
implicit none
integer :: spe, flen = 7477, i
real, dimension (7477):: wnum,s,A,abh
character :: other
integer :: lun = 11
write(*,*) 'Opening File!'
open(lun,file ='h2o_allbands',status = 'old',action ='read')
write(*,*) 'Success!'
17 format (1x,i2,3x,F9.6,1x,E9.3,1x,E9.3,F5.5,A120)
do i = 1, 7477
read(lun,17) spe(i),wnum(i),s(i),A(i),abh(i),other
write(*,*) wnum(i)
end do
答案 0 :(得分:0)
如果没有从输入文件中看到一行,很难说确切的问题是什么:但是:
首先,当读取实体时,您不应该使用format
语句(除非在特殊情况下),因为这会导致各种不同的错误,如果无论出于何种原因,您的线路格式不正确。所以只需用以下内容替换读取行:
read(lun,*) spe(i), wnum(i), s(i), A(i), abh(i), other
如果在最后一行中读取所有行,请确保在最后一行末尾有换行符。
答案 1 :(得分:0)
读取具有spe(i)
作为输入列表项。 spe
未声明为数组,因此编译器可能认为spe(i)
是对整数函数的引用。你不能读“普通整数函数的结果”。
也许应该将spe
声明为数组?