我正在处理我的分析代码的输入部分,但由于多个错误我已经卡住了。这是我未完成的代码:
c sinle event analysis
implicit real(a-h,o-z)
real day(12), nmonth(12), year(12), clas(12),
$ hour(12), nmin(12), sec(12)
real mark(12)
real tst(12)
dimension D(12)
real time(2054904), proa(2054904), w1(2054904),
$ w2(2054904), w3(2054904), w4(2054904)
D(1) = 31, D(2) = 28, D(3) = 31, D(4) = 30, D(5) = 31,
$ D(6) = 30, D(7) = 31, D(8) = 31, D(9) = 30, D(10) = 31,
$ D(11) = 30, D(12) = 31
open(100,file='singleE.txt',status='OLD')
do i=1, 12
tst(i)=0
enddo
900 do i=1, 12
read(100, 1150) day(i), nmonth(i), year(i),
$ hour(i), nmin(i), sec(i), clas(i)
do j=12, 1, -1
if integer(nmonth(i)) == j then
tst(i) = tst(i) + D(j-1)
endif
enddo
tst(i) = tst(i) + day(i) + (year(i) - 2010)*365
$ + (hour(i) + nmin(i)/60)/24
if year(i) > 2011 then tst(i) = tst(i) + 1/365
endif
print *, day(i), nmonth(i), year(i), hour(i), nmin(i),
$ sec(i), clas(i), tst(i)
enddo
open(200,file='hole.dat',status='OLD')
950 FORMAT(F12.7,2x,E10.3,2x,E10.3,2x,E10.3,2x,E10.3,
$ 2x,E10.3,2x,E10.3)
1150 FORMAT(F2.0,1x,F2.0,1x,F4.0,1x,F2.0,1x,F2.0,4x,
$ F3.1)
end
代码分手了,我不知道为什么:( 无论如何,这是我得到的错误:
singleA.f:13.6:
D(1) = 31, D(2) = 28, D(3) = 31, D(4) = 30, D(5) = 31,
1
错误:(1)处的不可分类陈述 singleA.f:29.8:
if integer(nmonth(i)) == j then
1
错误:(1)处的不可分类陈述 singleA.f:31.11:
endif
1
错误:在(1)处期待END DO语句 singleA.f:38.7:
if year(i) > 2011 then tst(i) = tst(i) + 1/365
1
错误:(1)处的不可分类陈述 singleA.f:39.10:
endif
1
错误:期待(1)
处的END DO语句主要问题是第一个和第二个问题。我认为其余的是由第二个错误引起的。我知道这是一个很长的代码,但是如果有人告诉我我的错误会很好:)
答案 0 :(得分:1)
这个,以及类似的行
D(1) = 31, D(2) = 28, D(3) = 31, D(4) = 30, D(5) = 31,
在语法上不正确;事实上它已经破碎了,编译器无法弄清楚错误是什么,并将其标记为“无法分类”。
简单的解决方法是将每个语句放在单独的行上并丢失逗号。或者,您可以将,
替换为;
,这是Fortran语句分隔符。