爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 3128|回复: 1

[经验总结] 为何他们打开二进制文件的格式和顺序要这样写?

[复制链接]

新浪微博达人勋

发表于 2017-3-29 13:24:20 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
以前没遇到过,也没怎么用过,为什么这个程序里读取文件OPEN后面要这样写啊?不是二进制吗,为什么不写成binary就好了,后面还要加上 direct recl之类的?我用来读取我的格点场就会报错forrtl severe 36,然后我把他改成form=binary, 后面的都去掉 就不会报错了,但是不懂这是为什么啊?功率谱程序里也是这样的读法,可是功率谱读取的是时间序列,就没有报错。读空间场会错,读时间序列为什么不会错呢?我的改法不会对结果造成什么影响吧?下面红色部分不是很懂,我就都去掉了。
parameter(it=12419,iz=1,it1=10,it2=30,dt=1,ixy=81*81)
  real x(ixy,it),y(ixy,it),w1,w2,h(it)
  pi=3.1415926
  w1=2*pi/real(it1)
  w2=2*pi/real(it2)
      open(1,file='../data/rain.grd'
     & ,form='unformatted',access='direct',recl=ixy*4)
open(2,file='../data/rain-1030.grd',
     & form='unformatted',access='direct',recl=ixy*4)
irec=1
do k1=1,iz
print*,k1
  do k=1,it
irec=(k-1)*iz+k1
  read(1,rec=irec)(x(i,k),i=1,ixy)
  enddo
do i=1,ixy
       call responseBF2(it,dt,w1,w2,a,b1,b2,h)
       call Bfilter2(it,x(i,1:it),y(i,1:it),a,b1,b2)
enddo
  do k=1,it
irec=(k-1)*iz+k1
  write(2,rec=irec)(y(i,k),i=1,ixy)
  enddo
enddo
  end
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2017-3-31 12:37:48 | 显示全部楼层
求解答~~~~~~~~~~
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

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