爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 2808|回复: 3

[求助] 请教各位fortran将grd格式转化成txt格式出现数据不正确的情况

[复制链接]

新浪微博达人勋

发表于 2017-2-20 20:12:23 | 显示全部楼层 |阅读模式

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

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

x
原本的数据格式是nc文件,想提取某个格点925hPa的相对湿度,首先是将nc转化成grd格式,gs如下:
'reinit'
'sdfopen E:\keti\wumai\ncep\Pressurelevel\rhum.2016.nc'
'set gxout fwrite'
'set fwrite E:\keti\wumai\grd\925rh_2016.grd'
it=1
while(it<=728)
'set lon 122.5'
'set lat 40'
'set lev 925'
'set t 'it''
'd rhum'
it=it+1
endwhile
'disable fwrite'
;

由编写了ctl文件,并画图对比,是两个一样的
然后又将grd格式转化成txt,fortran程序如下
PROGRAM EX01 !grd文件转化成txt文件
integer,parameter::year=3,num=1460
integer n(year),rh(1,1,1,1460),iy,it
character name(year)*16
data n/1460,1460,728/
data name/"925rh_2014.grd","925rh_2015.grd", "925rh_2016.grd"/
open(2,file='E:\keti\wumai\rh.txt')
do iy=1,year
   open(1,file='E:\keti\wumai\grd\'//trim(name(iy)),form='binary')
   ! open(1,file='E:\keti\wumai\grd\925rh_2016.grd',form='binary')
   do it=1,n(iy)
      read(1) rh(1,1,1,it)
   enddo
   close(1)
   do it=1,n(iy)
    write(2,*)rh(1,1,1,it)
   enddo
enddo
close(2)
print*,rh(1,1,1,1)
end
但是输出来的相对湿度明显数据不对,如下:
1099956224
  1108869120

  1098907648
  1104150528
  1108869120
  1112801284
  1109131264
  1115160580
  1109655552
  1101529088
  1100480512
。。。。。相对湿度不应该是100以内的数吗,请教大神们帮忙!!!
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2017-2-21 09:37:54 | 显示全部楼层
不懂Fortran,这个可以用matlab读出来
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2017-2-23 14:12:15 | 显示全部楼层
看云淡风清 发表于 2017-2-21 09:37
不懂Fortran,这个可以用matlab读出来

哦,没用过matlab,还是谢谢你
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2017-2-23 15:24:17 | 显示全部楼层
已解决,是因为应该讲rh数组定义为字符型
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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