2013-03-21 59 views
0

嘿,我很新的Fortran和堆棧溢出..我想用Fortran的分配,但我堅持運行時錯誤.. 任何幫助將不勝感激讀變到一個打開的文件

我想讀取兩個變量到我打開的文件。這是我的教授給我的示例代碼,但它顯示運行時錯誤。請幫助

subroutine input_data 
    implicit none 
    real*8 a, b 
    open(unit = 5, file = 'inputdata.dat', status = 'unknown') 
    read(5,*) a,b 
    close(5) 
    return 
    end 

它顯示讀取行的運行時錯誤。

+0

它會產生什麼錯誤?您嘗試閱讀的文件的內容是什麼?你應該指定更多的細節。 (也許你還應該考慮問你的主管,爲什麼他的代碼不工作...) – 2013-03-21 11:22:53

+0

只是爲了確保,你的意思是你想讀取*文件中的變量*?假設這就是你的意思,代碼是標準的FORTRAN,所以問題必須在文件中。但沒有人可以告訴你沒有這個錯誤信息的問題是什麼。另外,由於您正在閱讀文本,因此您可以向我們顯示文件的內容,因爲它必須是文本文件。另一件事:5號單位有點危險,因爲默認情況下FORTRAN認爲5是STDIN。就個人而言,我從不使用小於10的單位數。 – 2013-03-21 20:19:03

+0

還有一件事,當您返回時,a和b將會丟失。但也許你不想擔心這一點。 – 2013-03-21 20:26:04

回答

0

我假設您正在從讀取該文件。如果是這樣,你在公開聲明中的地位不是未知數,而是「舊」。如:

open(unit = 5, file = 'inputdata.dat', status = 'old') 

狀態「未知」將創建文件,如果它不存在,然後嘗試讀取它。但是,由於它剛剛創建,因此該文件中沒有任何內容,因此出現錯誤。

狀態「舊」會給你一個aruntime錯誤,說明該文件不存在,如果該文件......不存在:)