我有以下简单的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)
答案 0 :(得分:1)
正确的数组和子字符串索引括号是()
,而不是[]
。
对于子字符串,还必须始终使用:
,因此quote(1:1)
是必需的。
在Fortran 90或95中没有[]
。在Fortran 2003中,[ items ]
是数组构造函数。在Fortran 2018中,coarray[1]
用于共数组的共索引。