FORTRAN 90 - 输入语法错误

时间:2013-02-15 22:32:42

标签: input io syntax-error fortran90

这应该很简单..我无法弄清楚为什么我的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

2 个答案:

答案 0 :(得分:0)

如果没有从输入文件中看到一行,很难说确切的问题是什么:但是:

  • 首先,当读取实体时,您不应该使用format语句(除非在特殊情况下),因为这会导致各种不同的错误,如果无论出于何种原因,您的线路格式不正确。所以只需用以下内容替换读取行:

    read(lun,*) spe(i), wnum(i), s(i), A(i), abh(i), other
    
  • 如果在最后一行中读取所有行,请确保在最后一行末尾有换行符。

答案 1 :(得分:0)

读取具有spe(i)作为输入列表项。 spe未声明为数组,因此编译器可能认为spe(i)是对整数函数的引用。你不能读“普通整数函数的结果”。

也许应该将spe声明为数组?