爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3466|回复: 6

[分享资料] grads作图数据文件转换的时候,fortran程序里的recl为什么设成nx*ny*4?

[复制链接]
发表于 2013-4-2 22:04:09 | 显示全部楼层 |阅读模式

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

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

x
十分不理解这个4是怎么回事???哪位能帮忙解答一些,谢谢了!!!!
密码修改失败请联系微信:mofangbao
发表于 2013-4-2 22:39:18 | 显示全部楼层
不用设置*4吧
密码修改失败请联系微信:mofangbao
发表于 2013-4-2 23:27:17 | 显示全部楼层
问问版主吧
密码修改失败请联系微信:mofangbao
发表于 2013-4-3 08:33:09 | 显示全部楼层
http://bbs.06climate.com/forum.php?mod=viewthread&tid=7773
这个教材的234页有具体说明。
希望对你有帮助~~~~~
密码修改失败请联系微信:mofangbao
 楼主| 发表于 2013-4-3 10:07:40 | 显示全部楼层
例子:现有ASCII码(十进制存放格式)数据资料文件u.dat、v.dat和SST.dat,其空间范围:60-150°E,0-40°N;层次:u、v为850、 200hPa;时段:1982.1-1985.12;分辨率:2.5*2.5。要求编写出将这三个文件转换成二进制无格式直接存取(Grads格式.grd)文件的Fortran程序。
程序:c   打开原始数据文件
open(1,file='u.dat')
open(2,file='v.dat')
open(3,file='sst.dat')
c   打开目标文件,recl为记录的长度,对于直接存取文件必须指定记录长度 。
open(12,file=‘mhy.grd',form='unformatted',
#         access='direct', recl=nx*ny*4)
c 将数据资料写入新文件中, irec重新进行记录累
irec=0      
do 200 it=1,nt
do 30 iz=1,nz
    irec=irec+1
   write(12,rec=irec) ((u(i,j,iz,it),i=1,nx),j=1,ny)
30 Continue
  do 31 iz=1,nz
     irec=irec+1
   write(12,rec=irec) ((v(i,j,iz,it),i=1,nx),j=1,ny)
31 continue
    irec=irec+1
   write(12,rec=irec) ((sst(i,j,it),i=1,nx),j=1,ny)
200   continue
end
有的需要,有的不需要,但是不知道为什么????
密码修改失败请联系微信:mofangbao
 楼主| 发表于 2013-4-3 10:08:19 | 显示全部楼层

按教材的理论,只需设置成nx*ny 就行。。
密码修改失败请联系微信:mofangbao
发表于 2015-10-13 20:15:09 | 显示全部楼层
一般要看你用的编译器,如果是intel的,则不用乘以4。如果是在intel编译器中调通了,换到pgi编译器中则要乘以4,否则会提示超出范围。
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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