1

FORTRAN について 2 つの質問があります (この言語は初めてです)。

次のコード行があります。

  OPEN(UNIT=79, FILE='sampling.txt', FORM='FORMATTED')
  READ(79,*) NP1,NP2,IW 

NP1、NP2、IW は整数として宣言されます。

開いている「FORMATTED」とは何ですか? そして、私が読んでいるデータは何ですか?READ 行は 1 行を読み取り、データを NP1、NP2、IW に配置しますか? データはカンマ区切りですか? スペース区切り?

私の次の質問は:

D_IN = (RD/1000000)**(2./3.)/9.81**(1./3.) 

この行は何をしますか?? (D_IN と RD は REAL*8 です) 誰かこれを C に翻訳できますか?

4

2 に答える 2

3

「フォーマット済み」とは、基本的にテキスト出力、つまり人間が読める形式を意味します。別の方法は「フォーマットなし」です。これにより、プロセッサはテキストではなくビットとバイト (またはそれに相当するもの) を使用してファイルを書き込むことができます。C では、区別はライブラリ呼び出しレベルで行われます - fprintf (~formatted) 対 fwrite (~unformatted)。

read ステートメントは、リスト指示フォーマット (*かっこで囲まれたリストの 2 番目の位置で指名される) と呼ばれるものを使用します。入力のフォーマットは、プログラマーによって明示的に指定されるのではなく、入力内の項目のリストに基づいて決定されます。 . この言語には、リスト指定の書式設定で入力がどのように変換されるかに関する一連のルールがあります。これは、パンチカードの時代には非常に理にかなっているルールですが、今日のユーザーを驚かせる可能性があります。非常に不完全な要約として - 3 つの値が読み込まれるまで、レコード (複数行になる場合があります) がファイルから読み込まれます。これらの値は整数として解釈されます。レコード内の値は、コンマまたはブランクで区切ることができます。

太字の書式設定が不注意であったと仮定すると (そうでない場合、行は構文エラーです。Fortran 90 プロセッサが診断を行います。C 言語で構文エラーを取得する方法はかなり多くあります)。D_IN代入文です。の右側の式の値は=、左側の変数に割り当てられます。同等の C は、ほぼ文字どおりの書き起こしです (通常f、類似の数値型を使用するには、浮動小数点定数の後に追加する必要がありますが、これは Fortran プロセッサと C 実装の仕様によって異なります)。

于 2012-09-24T22:58:36.210 に答える
0

フォーマットされたファイルは、多かれ少なかれテキスト ファイルです。フォーマット済みとは、数値やその他の変数が文字として格納されることを意味します。それ以外の場合、ファイルの実際のフォーマットはユーザー次第です。あなたの例では、 read ステートメントの * は、いわゆる「リスト指示形式」を意味し、書き込みおよび読み取り時にプロセッサに多くの自由を与えます。さらに必要な場合は、フォーマットされた I/O は Fortran のより難しい側面の 1 つであり、Web上の多数のリソースを調べてください。


もう 1 つの質問: オペレーター**はパワー オペレーターです。2 番目のオペランドが短精度整数でない場合は、pow()変換時に C の関数を使用します。

于 2012-09-24T22:57:46.680 に答える