Unklassifizierbare Anweisung und andere Fehler in einer IF in Fortran
Ich habe den Code:
if i < n then
x = topsep(1)
y = topsep(2)
realvor(n,1) = x + dx
realvor(n,2) = x + dy
imvor(n,1) = (realvor(n,1)*(a**2))/((realvor(n,1))**2+(realvor(n,2))**2)
imvor(n,2) = (realvor(n,2)*(a**2))/((realvor(n,1))**2+(realvor(n,2))**2)
tf = .TRUE.
else
x = botsep(1)
y = botsep(2)
realvor(n,1) = x + dx
realvor(n,2) = y - dy
imvor(n,1) = (realvor(n,1)*(a**2))/((realvor(n,1))**2+(realvor(n,2))**2)
imvor(n,2) = (realvor(n,2)*(a**2))/((realvor(n,1))**2+(realvor(n,2))**2)
tf = .FALSE.
endif
Beidei
undn
sind als ganze Zahlen definiert und ich bin in einer do-Schleife fürn = 1,100
. Dies führt zu folgenden Fehlern:
Error: Nicht klassifizierbare Anweisung bei (1) bei 'if i <n then'
Error: Unerwartete ELSE-Anweisung bei (1) am 'else'
Error: Erwartung der END DO-Anweisung bei (1) am 'endif'
Ich kann nicht sehen, woher diese Fehler kommen, egal wie ich die if-Anweisung schreibe .NE.
etc.) es scheint die gleichen Dinge zu werfen.