爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 8068|回复: 16

[求助] Fortran读ncep资料转换成的.grd数据,读取不到时次信息

[复制链接]

新浪微博达人勋

发表于 2014-3-9 20:44:38 | 显示全部楼层 |阅读模式

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

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

x
编程小菜求助,将ncep资料用grads提取出变量保存的后缀名是.grd,我用Fortran将其转成txt的时候,程序运行总是提示遇到文件结束。我调试了一下程序,好像是程序读不到时次,我提取的是248个时次的数据,但是Fortran里面设置t=0是才能读取,而且读出来也写不出来。只要t>0,就会遇到文件结束,肿么回事啊?

提数据的gs和Fortran程序如下:
gs:

parameter(nx=12,ny=9,nz=1,nt=0)
dimension sst(nx,ny,nz,nt)                  
real sst

open(10,file='fnl201378_CWATclm.grd',form='binary')
open(20,file='fnl201378_CWATclm.txt')

do it=1,nt
        do iz=1,nz
                read(10)((sst(i,j,iz,it),i=1,nx),j=1,ny)                 
        enddo                                                                                       
enddo

do it=1,nt
        do iz=1,nz
                write(20,*)((sst(i,j,iz,it),i=1,nx),j=1,ny)   
        enddo
enddo

close(10)
close(20)

end

密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2014-3-9 20:45:27 | 显示全部楼层
晕,还没打完就点发出去了。
gs文件:
'reinit'
'open E:/zxl/fnl/fnl_201378.ctl'
'set fwrite E:/zxl/fnl/fnl_201378CWATclm.grd'
'set gxout fwrite'

'set lat 26 34'
'set lon 98 109'

tt=1
while(tt<=247)
'set t 'tt

zz=1
while(zz<=1)
'set z 'zz
'd CWATclm'
zz=zz+1
endwhile

tt=tt+1
endwhile
'disable fwrite'
;




程序:

parameter(nx=12,ny=9,nz=1,nt=0)
dimension sst(nx,ny,nz,nt)                  
real sst

open(10,file='fnl201378_CWATclm.grd',form='binary')
open(20,file='fnl201378_CWATclm.txt')

do it=1,nt
        do iz=1,nz
                read(10)((sst(i,j,iz,it),i=1,nx),j=1,ny)                 
        enddo                                                                                       
enddo

do it=1,nt
        do iz=1,nz
                write(20,*)((sst(i,j,iz,it),i=1,nx),j=1,ny)   
        enddo
enddo

close(10)
close(20)

end
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 成长值: 0
发表于 2014-3-9 20:50:02 | 显示全部楼层
将程序段:
do it=1,nt
        do iz=1,nz
                read(10)((sst(i,j,iz,it),i=1,nx),j=1,ny)                 
        enddo                                                                                       
enddo

修改为如下形式试试:


               read(10)((((sst(i,j,iz,it),i=1,nx),j=1,ny),iz=1,nz),it=1,nt)
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2014-3-9 20:54:45 | 显示全部楼层
密码修改失败请联系微信:mofangbao
微博评论 该用户已被删除
发表于 2014-3-9 21:16:49 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
密码修改失败请联系微信:mofangbao
微博评论 该用户已被删除
发表于 2014-3-9 22:16:57 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
密码修改失败请联系微信:mofangbao
微博评论 该用户已被删除
发表于 2014-3-9 22:16:57 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-3-9 22:22:10 | 显示全部楼层
akun 发表于 2014-3-9 20:45
晕,还没打完就点发出去了。
gs文件:
'reinit'

提取的资料你确定是对的吗?有没有画一下图试试呢。还有就是把set lat 和set lon 改成用set x 和set y,并且放在循环里面。
密码修改失败请联系微信:mofangbao
微博评论 该用户已被删除
发表于 2014-3-9 23:32:18 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
密码修改失败请联系微信:mofangbao
微博评论 该用户已被删除
发表于 2014-3-10 00:02:23 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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