我有代码:
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循环中。这会引发以下错误:
错误:如果i&lt;&lt;&lt;那么&#39;
的(1)处的END DO语句
错误:在(1)处的&#39;其他&#39;处的意外ELSE语句:
错误:期待在&#39; endif&#39;
我无法看到这些错误来自何处,无论我如何编写if语句(.NE.
等),它似乎都会抛出相同的东西。
答案 0 :(得分:3)
你忘记了括号!根据Fortran标准(2008,ch.8.1.7.4),if
语句应为
if ( i < n ) then