If statement Fortran中IF中的不可分类语句和其他错误

If statement Fortran中IF中的不可分类语句和其他错误,if-statement,fortran,fortran90,gfortran,If Statement,Fortran,Fortran90,Gfortran,我有密码: 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)*(

我有密码:

   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
i
n
都被定义为整数,我在
n=1100
的do循环中。这会引发以下错误:

错误:在“if i 错误:在“ELSE”的(1)处出现意外的ELSE语句
错误:在“endif”的(1)处应为END DO语句


我看不出这些错误是从哪里来的,无论我如何编写if语句(
.NE.
等),它似乎都会抛出同样的东西

你忘记带括号了!根据Fortran标准(2008年,第8.1.7.4章),
if
语句应为

if ( i < n ) then
如果(i
你忘了括号!根据Fortran标准(2008年,第8.1.7.4章),
if
语句应为

if ( i < n ) then
如果(i
谢谢!这是有效的,我没有意识到在I之前和n之后的空格是如此重要。空格是不相关的,括号很重要!是的,我的糟糕,不得不习惯于阅读终端中的错误!谢谢这是有效的,我没有意识到在I之前和n之后的空格是如此重要。空格是不相关的,括号很重要!是的,我的糟糕,不得不习惯于阅读终端中的错误!