24小时热门版块排行榜    

查看: 1259  |  回复: 3

200620304069

新虫 (初入文坛)

[求助] 用fortran将文本数据写成segy格式 已有1人参与

文本中所有数据是按1列存放的
程序如下:program main
        !该程序是将数据按列存放的文本数据写成segy格式
      real,allocatable::x(:,
      integer m,n
      integer (2) head(120)  
        m=2048 !采样点数
        n=60 !道数
        allocate(x(m,n))
      open(10,file='2.txt',status='old')

         do j=1,n    !先是道循环
           do i=1,m            
            read(10,*) x(i,j)                      
           end do
         end do

      open(11,file='positive1.sgy',form='formatted',access='direct',       
     &recl=240+m*4)
      
        head=0
        head(58)=2048  !采样点数
      head(59)=500  !采样间隔(us)
             
          do i=1,n
                write(11,rec=i)head,(x(i,j),j=1,m)            
          end do  
            
      close(11)
      close(10)
      deallocate(x)
      end program
运行后有错误

W4T~@]L3TL$D$4663ND$KC2.jpg
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

baobiao007

木虫 (职业作家)

中国特色

xzhdty: 谢谢参与 2012-09-23 19:46:26
提示信息显示了:数组超界。

楼主进行单步调试,看看哪个地方数组下标出问题了吧。

碰到搞勘探地震的不容易啊
我同意叔本华的观点,人们投身艺术和科学领域的强烈愿望之一就是逃离痛苦、残酷和枯燥无味的现实生活,逃离自己飘忽不定的七情六欲的桎梏。--爱因斯坦
2楼2012-09-02 18:30:04
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dongzhi1230

铜虫 (初入文坛)

【答案】应助回帖

xzhdty: 谢谢参与 2012-09-23 19:46:33
do i=1,n
                write(11,rec=i)head,(x(i,j),j=1,m)            
          end do
你这里的i和j有问题,因为你的x定义是x(m,n),这里用的是x(n,m)
3楼2012-09-22 09:40:56
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

Been

新虫 (初入文坛)

【答案】应助回帖

可否将这个完整程序发给我?谢谢
4楼2018-08-27 16:00:49
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 200620304069 的主题更新
信息提示
请填处理意见