中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助
鲲鹏小智

Fortran大小端问题

Fortran对二进制文件进行读写的时候存在大小端的问题,在前期的编译阶段不容易被发现,在后续的程序运行测试的时候,由于大小端差异引起读取的数据异常,导致程序运行coredump或者计算结果错误,因此建议在迁移前梳理迁移程序中有关二进制文件读写的流程,确认是否存在平台差异导致的大小端问题。

例如:

在从IBM(PowerPC)平台(大端字节序),迁移到鲲鹏平台(小端字节序),需要注意大小端字节序的转换。转换方式如下。

  • 方法一:GFortran增加编译选项-fconvert=big-endian使用大端字节序。
  • 方法二:open中增加参数类型convert='big_endian'。
    OPEN(11,file=TRIM(bin_name),status='old',access='direct',form="Unformatted",&recl=181*360*124*4,convert='big_endian',IOSTAT=io_err)