2013-03-10 83 views
0

我試圖用一些舊的Fortran代碼一些新的Java代碼在Windows中工作(作爲一個exe),但不是在OS X中我嘗試建立它在Eclipse中,我得到Fortran I/O,首先讀取的是EOF?

make: *** [all] Segmentation fault: 11 

所以我去終端做這樣的說法,甚至不同的編譯器,但仍是同樣的結果:

運行OS X 10.7.5和gfortran-4.2標準-c和-o取得 命令

Program foo 
open(unit = 1, file = 'variables.txt',IOSTAT= iost) 
    write(*,*)iost 
    read(1,*) P 
    write(*,*)P 
... 
end program foo 

該程序手動構建,但出賣出期權:

0 
At line 13 of file Cubic42.f 
Fortran runtime error: End of file 

我也看到了這個錯誤:

list in: end of file 
apparent state: unit 88 named variables 
last format: list io 
lately reading sequential formatted external IO 
Abort 

這表明IOSTAT返回0,這意味着文件是好的? 但它不會讀取文件,即使我更改單位#來說,88 ..並且即使我將CR更改爲mac,windows或unix。

它似乎只是輸入/輸出的問題,如果我硬編碼變量,例如,該程序的作品。

有關如何解決此問題的任何想法? 在此先感謝。

EDIT1 這裏是variables.txt文件

-9999 
15.6 
500 
150.9 
48.98 
0.000 

有在最後一個回車,如果我改變9999不要緊積極

編輯2

我從目錄中刪除了文本文件,並將.f改爲如下所示:

program foo 
    implicit none 
    real a, b, c, d 
    open(unit = 1, file = 'variables.2txt', action='write') 
    write(1, *) -6666 
    write(1, *) 6.15 
    write(1, *) -321 
    write(1, *) 5.16 
    close(1) 

    open(unit = 2, file = 'variables.2txt', action='read',form='FORMATTED') 
    read(2, *) a 
      write(*,*) a 
    read(2, *) b 
      write(*,*) b 
    read(2, *) c 
      write(*,*) c 
    read(2, *) d 
      write(*,*) d 
    close(2) 

end program foo 

然後我編譯它。
輸出是:預期

-6666.000  
    6.150000  
    -321.0000  
    5.160000 

,但variables.2txt是無處可尋!我很困惑,請幫忙。

編輯3 我找到了幻影文件。它位於/users/me/phantom.txt 所以問題是,如何將文件保存在與可執行文件相同的目錄中?

+0

您可以顯示輸入文件的內容(前幾行)嗎? – 2013-03-10 14:18:35

+0

輸入文件在編輯1 – tricknology 2013-03-10 19:29:15

回答

1

我得到一個非常類似的錯誤信息到你的

  0 
At line 4 of file proba.f (unit = 1, file = 'variables.txt') 
與文件 variables.txt,我根據舊的MAC公約 ^M明確設置的行結束字符(而不是在Linux上運行代碼時

Unix的^J)。所以,我猜,這是一個EOL慣例問題。你最終可能會嘗試寫兩行到一個文件,並調查文件,以決定哪些EOL-約定gfortran期待您的系統上:

program foo 
    implicit none 
    open(unit = 1, file = 'variables.txt', action='write') 
    write(1, *) -9999 
    write(1, *) 15.6 
    close(1) 
end program foo 

而且,我肯定會去更近的gfortran編譯器(目前的穩定版是4.7.2版)。

+0

好的,這似乎工作得更好,但是,文本文件既不創建(如果缺少)或重寫(如果存在)非常感謝! – tricknology 2013-03-10 16:39:51

+0

好吧,現在我有一些修補程序,我發現運行該程序後,只有兩個值創建了一個名爲variables.txt的文件,現在我的後續嘗試(具有相同名稱的不同文本文件)在兩次讀取後失敗(EOF)當我知道有更多的條目比。 – tricknology 2013-03-10 18:31:29

+0

我現在遇到了一個輕微和非常奇怪的問題:文本文件似乎被寫入和讀取但不可見。更新位於edit2 – tricknology 2013-03-10 19:10:32