2016-06-11 3 views
0

В настоящее время я запускаю код, и я всегда получаю тот же конец. Я пытаюсь читать входной файл и он возвращает ошибку:Ошибка выполнения Fortran: Конец файла при чтении входных данных

Fortran runtime error: End of file

В другом посте они сказали, чтобы положить в IOSTAT спецификатора, так что теперь мой код выглядит следующим образом:

INTEGER :: m 
INTEGER :: st 

Open(Unit = 13,action='read',file='Data_Inp.dat',status='old') 
read (13,*, iostat = st) m 
write (*,*) st 
write (*,*) m 

ALLOCATE(winkel(m),energie(m)) 

Do i = 1,m 
    read(13,*),winkel(i),energie(i) 
End Do 

И входной файл выглядит так:

12 
-17.83 -0.019386527878 
-15.83 -0.020125057233 
-12.83 -0.020653853148 
-11.83 -0.020840036028 
-9.83 -0.020974157405 
-8.83 -0.021056401707 
-6.83 -0.021065517811 
-5.83 -0.020992571816 
-4.83 -0.020867828448 
-1.83 -0.02069158012 

Теперь терминал печатает -1 для iostat и постоянно меняющегося числа для m.

+0

Какой другой пост? В общем, использование 'iostat' не волшебным образом предотвращает ошибку, оно просто позволяет вам обрабатывать его, а не прерывать выполнение. – francescalus

+0

Хорошо, я понял. Но можете ли вы представить, почему я получаю ошибку EOF. Я не могу найти ошибку в моем исходном файле. Ошибка должна быть в команде чтения. – songwriter93

+0

Я не уверен, что это только ваш примерный файл, не являющийся реальным файлом, но у вас есть только 10 записей данных в файле примера, но ваш код попытается прочитать 12 строк, это то, что может дать вам конец ошибка файла. –

ответ

0

Если первая команда чтения вызывает ошибку, проверьте наличие посторонних символов до или после «12» в вашем входном файле, особенно если вы создали ее на одной платформе (Windows?) И использовали ее на другой платформе (Linux? Mac?)

+0

Ваш ответ выглядит как комментарий. –

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