错误FOR3852:在QUOTE和[1]之间检测到语法错误

时间:2018-06-23 20:26:31

标签: fortran

我有以下简单的Fortran程序:

    program quotes
       implicit none
       character*1000 quote       
       integer*4 i

       open(13,file='d:\sp500.new',status='unknown')
       close(13,status='delete')

       open(12,file='d:\sp500.dat')
       open(13,file='d:\sp500.new', status='new')


       do 100 i = 1,61113
          read(12,'(A)') quote          

          if(quote[1] .eq. 'I')write(13,'(A)')quote

100    continue

       end

我正在尝试读取整个字符串,请检查字符串中的第一个字符是否='I',如果为true,则写出整个字符串。我还需要进行其他一些测试,因此我需要逐个字符地读取输入的字符串

错误消息是:

D:\quotes.f90(18): error FOR3852: syntax error detected between QUOTE and [1]
Error executing fl32.exe.
quotes.obj - 1 error(s), 0 warning(s)

1 个答案:

答案 0 :(得分:1)

正确的数组和子字符串索引括号是(),而不是[]

对于子字符串,还必须始终使用:,因此quote(1:1)是必需的。

在Fortran 90或95中没有[]。在Fortran 2003中,[ items ]是数组构造函数。在Fortran 2018中,coarray[1]用于共数组的共索引。