Declaração não classificável e outros erros em um IF no Fortran

Eu tenho o código:

   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

Ambosi en são definidos como números inteiros e eu estou dentro de um loop do paran = 1,100. Isso lança os seguintes erros:

Erro: declaração não classificável em (1) no 'if i <n then'
Erro: Instrução ELSE inesperada em (1) no 'else'
Erro: Esperando a instrução END DO em (1) no 'endif'

Não consigo ver de onde vêm esses erros, não importa como escrevo a instrução if (.NE. etc.) parece vomitar as mesmas coisas.

questionAnswers(1)

yourAnswerToTheQuestion