2017-09-21 55 views
0

我目前正在研究Fortran中構建的多層次仿真過程,該仿真沒有評論得很好,加上我對fortran的知識缺乏,使得這是一項艱鉅的任務。我主要了解一個關於fortran讀命令的陳述。該聲明的框架如下。Fortran讀入多個變量

read(somestring, *, iostat = iospara) outstring, & 
(someint, somearray(index), index = 1, statenum) 

現在somestring從輸入文件中讀取,並具有以下形式:

'label  1 2' 

其中對數字取決於被從在輸入文件中一個不同的線讀取statenum。例如,如果statenum = 2那麼somestring的形式爲:

'label  1 2 2 2' 

我的問題是如何在輸出變量列表中的括號影響讀取聲明?那將是:

(someint, somearray(index), index=1, statenum) 

我一直沒有能夠通過閱讀文件找到任何關於這方面的信息。這是在fortran 2008.我也不能真正提供一個完整的工作示例,因爲代碼非常大,我試圖單獨重新創建此語句沒有成功。

回答

0

這是一個暗示做,你會發現這個網站上有關這個功能的許多問題和答案。有時候人們稱它也是隱含的,但這不是標準名稱。

它重複索引前的部分:someint, somearray(index),索引i的值的值從1statenum

這轉化輸入列表如下:

outstring, someint, somearray(1) 

statenum = 1,並

outstring, someint, somearray(1), someint, somearray(2) 

statenum = 2

請注意,someint不應出現在相同的輸入列表中的兩次或其值將是未定義的。

+0

非常感謝,我試圖弄清楚如何引用這個聲明,並遇到一些麻煩。我感謝您的幫助。 –

+0

爲什麼你說'someint'會變得不確定? – francescalus

+0

或者可能不是......有時我記得錯誤的東西。 –