Ошибки компиляции с Fortran90

Все, я часами боролся с этими ошибками, вот мой код:

program hello
implicit none
integer :: k, n, iterator
integer, dimension(18) :: objectArray

call SetVariablesFromFile()
do iterator = 1, 18
    write(*,*) objectArray(iterator)
end do


contains
subroutine SetVariablesFromFile()
    IMPLICIT NONE
    integer :: status, ierror, i, x

    open(UNIT = 1, FILE = 'input.txt', &
    ACTION = 'READ',STATUS = 'old', IOSTAT = ierror)
    if(ierror /= 0) THEN
        write(*, *) "Failed to open input.txt!"
        stop
    end if

    do i = 1, 18
        objectArray(i) = read(1, *, IOSTAT = status) x
        if (status > 0) then
            write(*,*) "Error reading input file"
            exit
        else if (status < 0) then
            write(*,*) "EOF"
            exit
        end if
    end do
    close(1)

END subroutine SetVariablesFromFile

end program hello

Я получаю ошибки компиляции:

  1. make: * [hello.o] Error1
  2. Синтаксическая ошибка в списке аргументов в (1)

Я читал в Интернете, что последняя ошибка может быть связана с длинной строкой кода, превышающей 132 символа, что, по-видимому, не является проблемой. У меня нет места, где начать с первой ошибки... любая помощь будет принята с благодарностью!

1 ответ

Решение

Это,

objectArray(i) = read(1, *, IOSTAT = status) x

не действует Фортран. Вы должны написать это как,

read(1,*,iostat=status) objectArray(i)

Установив его в правильной форме, я не получил ни ошибок компилятора ни с ifort 12.1, ни с gfortran 4.4.3

Другие вопросы по тегам