Fortran Coder

查看: 11152|回复: 9
打印 上一主题 下一主题

[文件读写] Fortran 读取SEGY文件 提示(95)浮点数转换失败

[复制链接]

1963

帖子

12

主题

5

精华

论坛跑堂

臭石头雪球

F 币
1357 元
贡献
574 点

美女勋章热心勋章星光勋章新人勋章贡献勋章管理勋章帅哥勋章爱心勋章规矩勋章元老勋章水王勋章

楼主
发表于 2021-6-16 17:47:07 | 显示全部楼层
应该是你的sgy里有道头或卷头。你直接读了地震记录,编译器错误的把道头或卷头里的其他数据类型,当作IBM浮点数转换成IEEE浮点,造成出错。

1963

帖子

12

主题

5

精华

论坛跑堂

臭石头雪球

F 币
1357 元
贡献
574 点

美女勋章热心勋章星光勋章新人勋章贡献勋章管理勋章帅哥勋章爱心勋章规矩勋章元老勋章水王勋章

沙发
发表于 2021-6-17 14:34:12 | 显示全部楼层
把sgy文件传上来(附件,如果太大就百度网盘分享地址)

1963

帖子

12

主题

5

精华

论坛跑堂

臭石头雪球

F 币
1357 元
贡献
574 点

美女勋章热心勋章星光勋章新人勋章贡献勋章管理勋章帅哥勋章爱心勋章规矩勋章元老勋章水王勋章

板凳
发表于 2021-6-20 23:03:11 | 显示全部楼层
你的这个文件是 IBM 浮点数大端的数据。
你的编译器没有提供直接的方法读取。convert 只有 'BIG_ENDIAN' , 'IBM' 而没有 IBM_Big_Endian

你可以当作 IEEE浮点数大端,先读进来,然后找一个IBM浮点转IEEE浮点的子程序再转一下。
  

1963

帖子

12

主题

5

精华

论坛跑堂

臭石头雪球

F 币
1357 元
贡献
574 点

美女勋章热心勋章星光勋章新人勋章贡献勋章管理勋章帅哥勋章爱心勋章规矩勋章元老勋章水王勋章

地板
发表于 2021-6-21 17:59:01 | 显示全部楼层
如果你 convert="big_endian" 了,那么编译器会帮你转换字节序。
否则,你需要自己转换字节序
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )

GMT+8, 2024-5-2 20:16

Powered by Tencent X3.4

© 2013-2024 Tencent

快速回复 返回顶部 返回列表