2013-11-08 3 views
0

Все, я воюю эти ошибки в течение нескольких часов, вот мой код:Ошибки компиляции с 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. марка: * [привет .o] Error1
  2. Синтаксическая ошибка в списке аргументов в (1)

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

ответ

1

Это

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

не является действительным Fortran. Вам нужно написать как,

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

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

+0

Отлично, компилирует сейчас спасибо – discofighter411

Смежные вопросы