0

这应该很简单。我不明白为什么我的 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
4

2 回答 2

1

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

也许spe应该声明为数组?

于 2013-02-17T22:04:32.473 回答
0

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

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

    read(lun,*) spe(i), wnum(i), s(i), A(i), abh(i), other
    
  • 如果所有行都与最后一行完全分开,请确保在最后一行的末尾有一个换行符。

于 2013-02-17T07:12:32.317 回答