2

このwrite関数は、列間に多くのスペースを入れてパラメーターを出力します。これにより、最終的に非常に巨大なファイルが得られます。単一のスペースのように、出力をトリミングするにはどうすればよいですか。

open(unit=1,file='gfortran.txt')
write(1,ERR=1001)1,2,3 
4

2 に答える 2

5

Fortranの編集記述子を使用して出力フォーマットを制御する必要があります。1行に3つの整数を書き込みたいだけの場合は、次を使用できます。

write(1,fmt='(3i2)',err=1001) 1, 2, 3

これにより、出力ファイルの2文字幅のフィールドに整数が書き込まれます。精通している必要のある編集記述子には多くのバリエーションがあります。いくつかの例:

fmt='(i4.2)'  ! 1 integer is written into a 4-character wide field, with at least 2 digits so a leading 0 is written if necessary
fmt='(6f9.4)' ! 6 reals are written into 9-character fields, with 4 digits after the decimal point

これ以外にもたくさんありますが、コンパイラのドキュメントですべてが説明されています。

于 2012-08-21T21:21:54.533 に答える
3

これは、ハイ パフォーマンス マークが書いたものに加えて、単なる説明コメントです。ステートメントで明示的な書式指定子を指定しない場合、WRITEいわゆるリスト指示出力が使用されます。各 Fortran プロセッサ (コンパイラの Fortran 語) は、リスト内のすべての要素が完全に出力されることを保証する出力形式を自由に選択できます。これにより、非常に広い (そしてコンパイラに依存する) フィールドが使用されることがよくあります。

于 2012-08-22T07:06:53.860 に答える