ファイルからバイナリ データを読み込もうとしています。
INTEGER MAX_LAT,MAX_LON,MAX_SHELL,MAX_ORB_PNTS
INTEGER YYYY1,MON1,DD1,HH1,MIN1,DOY1
REAL*8 SEC1
OPEN(20,FILE=INPUTFILE,STATUS='OLD',FORM='UNFORMATTED')
READ(20)MAX_LAT,MAX_LON,MAX_SHELL,MAX_ORB_PNTS
...
READ(20)YYYY1,MON1,DD1,DOY1,HH1,MIN1,SEC1
...
CLOSE(20)
その間に(「...」を入れたところ)、読み取ったデータのバイトスワッピングと印刷を行っているだけです。
このコードを実行すると、最初の READ は正常に機能します。したがって、入力ファイルが正しい場所にあると確信しています。しかし、2番目のREADの行でこのエラーが発生します:
Fortran runtime error: End of file
私の変数のデータ型は、ファイルを書き込んだプログラムと同じです。とにかく、ファイルは 3000 KB を超えているため、4 つの整数値を読み取った後、ファイルの終わりに到達できないと確信しています。
編集:以下のコメントで述べたように、問題はエンディアンでした。OPEN ステートメントの単純な CONVERT='SWAP' で問題が解決しました。すべての助けをありがとう...