Unclassifiable statement and other errors in an IF

2019-03-01 04:49发布

I have the 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

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:

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'

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.

1条回答
萌系小妹纸
2楼-- · 2019-03-01 05:31

You forgot the parenthesis! According to the Fortran standard (2008, ch. 8.1.7.4), the if statement should read

if ( i < n ) then
查看更多
登录 后发表回答