Fortran Coder

查看: 8528|回复: 3
打印 上一主题 下一主题

[原创] 地震勘探SEG-Y格式文件Fortran90读写代码,献给物探初学者!

[复制链接]

6

帖子

1

主题

0

精华

入门

F 币
40 元
贡献
21 点
跳转到指定楼层
楼主
发表于 2017-9-22 13:56:17 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yunhong125 于 2017-9-22 13:57 编辑

SEG-Y文件是学物探地震勘探中经常打交道的数据格式,Fortran90以前的标准,要求每次读取文件长度要一致,使得在读取标准SGY文件时非常麻烦,Fortran90标准提出了使用 stream 方式读写文件,这使得读写SGY文件更加方便快捷。附件是本人初步尝试写的一个读写SEG-Y文件的模块,支持IBM格式SGY、IEEE格式SGY及无卷头的PC格式SGY文件,均给出了一个测试文件,还有很大的修改空间。现拿出来与大家分享,希望对初学物探的童学们有所帮助。大家可以在此版本基础上进一步按自己的思路修改!
!C+-----------------------------------------------------------------------+
!C| Module        : SGY文件读写模块(简版)                                       |
!C| Last modified : 09-22-2017                                                          |
!C| 主要功能:    1、支持IBM格式、IEEE格式、无卷头PC格式             |
!C|                      2、自动判断文件格式                                                |
!C|                      3、自动读取采样长度、采样率及道数                        |
!C+-----------------------------------------------------------------------+
!C| 联系方式:QQ:308993124                                                          |
!C+-----------------------------------------------------------------------+

1.jpg (31.7 KB, 下载次数: 259)

SGYReadModule

SGYReadModule

2.jpg (60.24 KB, 下载次数: 267)

主程序

主程序

3.jpg (201.97 KB, 下载次数: 274)

测试数据波形

测试数据波形

SGY文件读写代码.zip

795.44 KB, 下载次数: 67

SGY文件读写代码及测试数据

评分

参与人数 1F 币 +3 贡献 +4 收起 理由
fcode + 3 + 4 赞一个!

查看全部评分

分享到:  微信微信
收藏收藏 点赞点赞 点踩点踩

1958

帖子

12

主题

5

精华

论坛跑堂

臭石头雪球

F 币
1341 元
贡献
565 点

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

沙发
发表于 2017-9-22 18:17:49 | 只看该作者
楼主可以学习一下结构体,用结构体读取卷头道头,就非常非常容易了。
此外,查询文件大小,不需要用 DFLib 的扩展函数。标准的 Inquire( File = name , size = n ) 就可以了

6

帖子

1

主题

0

精华

入门

F 币
40 元
贡献
21 点
板凳
 楼主| 发表于 2017-9-22 22:41:50 | 只看该作者
fcode 发表于 2017-9-22 18:17
楼主可以学习一下结构体,用结构体读取卷头道头,就非常非常容易了。
此外,查询文件大小,不需要用 DFLib  ...

谢谢指点,下来慢慢完善!
我查了一下INQUIRE函数,似乎没有Size属性,不能查询文件大小。请指点!
INQUIRE(UNIT=number, FILE=filename, IOSTAT=stat, ERR=label, EXIST=exist, OPENED=opened, NUMBER=number, NAMED=named, ACCESS=access, SEQUENTIAL=sequential, DIRECT=direct, FORM=form, FORMATTED=formatted, UNFORMATTED=unformatted, RECL=recl)

6

帖子

1

主题

0

精华

入门

F 币
40 元
贡献
21 点
地板
 楼主| 发表于 2017-9-22 22:54:45 | 只看该作者
yunhong125 发表于 2017-9-22 22:41
谢谢指点,下来慢慢完善!
我查了一下INQUIRE函数,似乎没有Size属性,不能查询文件大小。请指点!
INQUI ...

试了一下可以,INQUIRE(FILE=filename,SIZE=file_size),非常方便!
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

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

GMT+8, 2024-4-25 06:09

Powered by Tencent X3.4

© 2013-2024 Tencent

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