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.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage