2016-06-11 109 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

你的答案看起來像一條評論。 –

相關問題