Fortran 中 IF 中的不可分类语句和其他错误 [英] Unclassifiable statement and other errors in an IF in Fortran
问题描述
我有代码:
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
i
和 n
都定义为整数,我在 n = 1,100
的 do 循环中.这会引发以下错误:
Both i
and n
are defined as integers and I am inside a do loop for n = 1,100
. This throws up the following errors:
错误:在 (1) 处 'if i< 处的不可分类语句n 然后'
错误:else"处的 (1) 处出现意外的 ELSE 语句
错误:'endif' 处的 (1) 处应有 END DO 语句
Error: Unclassifiable statement at (1) at the 'if i< n then'
Error: Unexpected ELSE statement at (1) at the 'else'
Error: Expecting END DO statement at (1) at the 'endif'
我看不出这些错误来自哪里,无论我如何编写 if 语句(.NE.
等),它似乎都抛出了相同的东西.
I can't see where these errors are coming from, no matter how I write the if statement (.NE.
etc.) it seems to throw up the same things.
推荐答案
你忘记了括号!根据 Fortran 标准 (2008, ch. 8.1.7.4),if
语句应为
You forgot the parenthesis! According to the Fortran standard (2008, ch. 8.1.7.4), the if
statement should read
if ( i < n ) then
这篇关于Fortran 中 IF 中的不可分类语句和其他错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!