2017-09-21 12 views
0

私は現在、非常によくコメントされていないfortranで構築されたmutliscaleシミュレーションのプロセスを理解しています。そして、fortranに関する知識が不足しているため、これは難しい作業です。私は主に、fortranの読み取りコマンドに関する1つのステートメントを理解することに問題があります。ステートメントのスケルトンは以下の通りです。今somestringFortran複数の変数を読み込む

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

は、入力ファイルから読み取らの形有する:

'label  1 2' 

番号のペアは、入力ファイル内の異なる行から読み出されstatenumに依存します。

'label  1 2 2 2' 

私の質問は、出力変数リストの中括弧は、READ文には影響を与えない方法である:例えばstatenum = 2、その後somestringは、フォームを持っている場合はどうなりますか?

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

READのドキュメントを参照して、これに関する情報を見つけることができませんでした。これはfortran 2008にあります。コードが非常に大きく、このステートメントを個別に再作成しようとしても成功しなかったため、完全な実際の例は実際には提供できません。

答えて

0

これは暗黙のdoであり、このサイトに関するこの機能に関する多くの質問と回答があります。時には人々はそれを暗黙のdoとも呼んでいますが、それは標準的な名前ではありません。

インデックスの値が1からstatenumの値の場合、インデックスの前の部分が、someint, somearray(index)の部分を繰り返します。 statenum = 1ため

outstring, someint, somearray(1) 

、及びstatenum = 2ため

outstring, someint, somearray(1), someint, somearray(2) 
に:として入力リストを変換

someintは、同じ入力リストに2回表示しないでください。値が定義されていないことに注意してください。

+0

ありがとう、私はこの声明を参照する方法を理解しようとしていて、何か問題があった。私はあなたの助けに感謝します。 –

+0

なぜ 'someint'が未定義になるとお考えですか? – francescalus

+0

そうでないかもしれません...時々私は間違ったものを覚えています。 –

関連する問題