爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3545|回复: 2

[求助] Fortran读入gs提取的grd数据文件

[复制链接]
发表于 2017-9-25 15:21:02 | 显示全部楼层 |阅读模式

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

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

x
gs文件
'reinit'
'open /data/era-interim/era-40-interim.ctl'
'set fwrite test4.grd'
'set gxout fwrite'
i=18381
while(i<=18505)
j=1
while(j<=32)
'set t 'i''
'set z 'j''
'set lon 0 358.5'
'set lat -90 90'
'd Uprs'
j=j+1
endwhile
j=1
while(j<=32)
'set t 'i''
'set z 'j''
'set lon 0 358.5'
'set lat -90 90'
'd Vprs'
j=j+1
endwhile
j=1
while(j<=32)
'set t 'i''
'set z 'j''
'set lon 0 358.5'
'set lat -90 90'
'd Wprs'
j=j+1
endwhile
j=1
while(j<=32)
'set t 'i''
'set z 'j''
'set lon 0 358.5'
'set lat -90 90'
'd Zprs'
j=j+1
endwhile
i=i+1
endwhile
'disable fwrite'
;

Fortran读入数据,输出高度场
  program file_1
      program file_1
      integer,parameter::nx=240,ny=121,nz=32,nt=125
      integer i,j,k
      real u(nx,ny,nz),v(nx,ny,nz),w(nx,ny,nz),z(nx,ny,nz)
      open(12,file='test4.grd',form='unformatted',access='direct' &
            ,convert='big_endian',recl=nx*ny*4)
      open(12,file='hgt.grd',form='unformatted',access='direct' &
          ,recl=nx*ny*4)
     ! total=32*3+1=97
       irec=97
       irec1=1
       do it=1,nt
          read(12,rec=irec)(((z(i,j,k),i=1,nx),j=1,ny),k=1,nz)
          write(13,rec=irec1)(((z(i,j,k),i=1,nx),j=1,ny),k=1,nz)
          irec=irec+128
          irec1=irec+1
          t=t+1
       enddo
       close(12)
       close(13)
       end

是不是记录读错了,或是数组应该定义成4维?
密码修改失败请联系微信:mofangbao
发表于 2017-9-25 16:23:50 | 显示全部楼层
谁告诉你是big_endian?
密码修改失败请联系微信:mofangbao
发表于 2017-9-25 18:14:37 | 显示全部楼层
彭国伦版的Fortran书中没有convert参数的介绍,能给讲讲么?
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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