我正在尝试从文件中读取二进制数据。
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 工作正常。所以我确信输入文件在正确的位置。但是我在第二个 READ 的行中收到此错误:
Fortran runtime error: End of file
我的变量的数据类型与编写文件的程序中的相同。无论如何,文件> 3000 KB,所以我很确定在读取四个整数值后无法到达文件末尾。
编辑:正如下面的评论中提到的,问题是字节序。OPEN 语句中的一个简单的 CONVERT='SWAP' 解决了这个问题。感谢所有的帮助...