0

次のコマンドを使用して、初期データ ファイルを fortran 90 プログラムに読み込もうとしています。

!---- 初期データファイルを開く ----
open(50,file=FILE_INITIAL)

!---- 読み取りステータス ----
read(50,'(a3)') tmp3

最初の行を読み取ろうとすると、次のエラーが発生します。

Fortran ランタイム エラー: ファイルの終わり

「end=」ステートメントでこれを修正できますが、次のデータ行を読み取ることができません。

このコードは別のサーバーではうまく機能しましたが、実行しようとしている別のサーバーは機能していないことに注意してください。

ファイルの内容は次のとおりです。

CNT $
0.0000000E+00 $
105000 $
1 1 0.6000000E+19 0.2302255E+06 -0.8082365E+06 -0.1359744E+07 -0.1569188E+03 0.1889497E+ 0.0000000E+00 0.1317501E+07 $
2 1 0.600000000E+19 0.4091322E+06 -0.7740022E+06 -0.1390028E+07 -0.1547697E+03 0.1907412E+03 0.105918E+0642E+0642E+062E 0000000E+00 0.132030302E+07 $
3 1 0.600000000E+19 0.5670843E+06 -0.7934081E+06 -0.1364818E+07 -0.1560887E+03 0.1897379E+03 0.145752060052060055206457052 0.0000000E+00 0.1214425E+07$

4

2 に答える 2

0

あなたが報告した症状は、あなたが開こうとしているファイルが存在すると確信しているにもかかわらず、存在しないことを示唆しています。ファイルの名前と場所が正しいことを確認してください。プログラムの作業ディレクトリを調べて、開こうとしている名前のファイルがサイズ 0 で作成されているかどうかを確認します。Fortran は通常、存在しないファイルを開こうとすると、空のファイルを作成します。

この推測が間違っている場合は、INQUIRE ルーチンを使用して状況を把握し、STATUS およびその他の OPEN の引数を試してみてください。

于 2012-05-13T09:10:33.147 に答える
0

レコードに収まるはずの 1D 配列がレコードよりも長い場合、ファイルの最後まで後続のレコードで埋められます。私の推測では、それを入れるための非常に長い配列があると思いますeor=450。たとえば、レコードの最後で停止するように指定する必要があり、450 で次の行を読み取ります。これを行う場合は、配列の書き込まれていないエントリにランダムなデータが含まれないように、最初に配列に 0 や -1 などの何かを入力してください。

于 2016-07-07T22:19:42.153 に答える