Ошибки компиляции с 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
Я получаю ошибки компиляции:
- make: * [hello.o] Error1
- Синтаксическая ошибка в списке аргументов в (1)
Я читал в Интернете, что последняя ошибка может быть связана с длинной строкой кода, превышающей 132 символа, что, по-видимому, не является проблемой. У меня нет места, где начать с первой ошибки... любая помощь будет принята с благодарностью!
1 ответ
Решение
Это,
objectArray(i) = read(1, *, IOSTAT = status) x
не действует Фортран. Вы должны написать это как,
read(1,*,iostat=status) objectArray(i)
Установив его в правильной форме, я не получил ни ошибок компилятора ни с ifort 12.1, ни с gfortran 4.4.3