爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 5120|回复: 6

[求助] 关于nc的若干问题

[复制链接]

新浪微博达人勋

发表于 2012-4-19 23:06:01 | 显示全部楼层 |阅读模式

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

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

x
    求各位大侠指点!!!
    我现在用的资料是ncep的月平均的资料。现在的问题是我要求出不连续年的春季3~5月的各个月的合成图。对于这一块我现在是一点眉目都没有。请求一点提示,拜谢!
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 成长值: 19710
发表于 2012-4-19 23:40:53 | 显示全部楼层
不连续就打开不连续的文件被
密码修改失败请联系微信:mofangbao

新浪微博达人勋

0
早起挑战累计收入
发表于 2012-4-20 08:50:00 | 显示全部楼层
算出你需要的月份对应的时次是哪个,然后就累加平均什么的了
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2012-4-20 09:49:15 | 显示全部楼层

  我现在是那样弄得。在.gs里面把51~11年的3月份挑选出来,然后在.f90里挑选年份,然后累加平均。最后不是要有一个合成图嘛,我要画出这个图,保存的是.dat格式,请帮忙看看我写得对不对,谢谢大侠了!!!(我刚学习劳烦您了)


.f90
integer,parameter::n=61,nx=61,ny=29 !n表示时间,nx/ny表示经纬格点数
real hgt(nx,ny,n)
real::dry_sum,wet_sum,dry_ave(nx,ny),wet_ave(nx,ny)
integer::i,j,k

open(1,file='f:\program\ncep\hgt_3.mon.mean.grd',form='binary')
do k=1,n
        read(1) ((hgt(i,j,k),i=1,nx),j=1,ny)
enddo
close(1)


do i=1,nx
        do j=1,ny
                dry_sum=0.0         
                wet_sum=0.0
                dry_ave(i,j)=0.0
                wet_ave(i,j)=0.0
                do k=1,n
                        if(n==5.or.n==8.or.n==10.or.n==12.or.n==19.or.n==29.or.n==32.or.n==36.or.n==37.or.n==38.or.n==45.or.n==61)then
                                dry_sum=dry_sum+hgt(i,j,k)                          !!!典型重春旱年(12年)的高度场总和
                        elseif(n==2.or.n==4.or.n==6.or.n==17.or.n==20.or.n==22.or.n==23.or.n==28.or.n==40.or.n==52.or.n==54)then
                                wet_sum=wet_sum+hgt(i,j,k)                          !!!典型无春旱年(11年)的高度场总和
                        endif       
                enddo
                dry_ave(i,j)=dry_sum/12
                wet_ave(i,j)=wet_sum/11                                           !!!计算典型重春旱年和典型无春旱年的高度场平均
        enddo
enddo
print *,"dry_ave(3,3)=",dry_ave(3,3),"wet_ave(3,3)=",wet_ave(3,3)


open(1,file='f:\program\ncep\hgt_dry3.mon.mean.dat',form='binary')
write(1) ((dry_ave(i,j),i=1,nx),j=1,ny)
close(1)
open(1,file='f:\program\ncep\hgt_wet3.mon.mean.dat',form='binary')
write(1) ((wet_ave(i,j),i=1,nx),j=1,ny)
close(1)
end


.gs
'reinit'
'c'

'sdfopen f:\program\ncep\hgt.mon.mean.nc'

'set gxout fwrite'
'set fwrite f:\program\ncep\hgt_3.mon.mean.grd'

it=39
while(it<=768)
'set t ' it
'set lev 500'
'set lat -10 60'
'set lon 30 180'
'd hgt'
it=it+12
endwhile
'disable fwrite'
'reinit'


.ctl
dset  F:\program\necp\hgt_dry3.mon.mean.dat
title 61's year ave 46sta hgt_dry3
undef -2.56e33
xdef  61 linear -10 60
ydef  29 linear 30 180
zdef  1 levels 500
tdef 11 linear 00Z01jan1951 1yr
vars 1
hgt_dry3 1 99 hgt_dry3
endvars

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

新浪微博达人勋

发表于 2012-4-20 09:58:05 | 显示全部楼层
quentin011099 发表于 2012-4-20 09:49
我现在是那样弄得。在.gs里面把51~11年的3月份挑选出来,然后在.f90里挑选年份,然后累加平均。最后不是 ...

直接在gs中计算干旱年与非干旱年的值就好了,为什么还要用fortran挑选?gs中define一下这些干旱年的时次,加起来求平均
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2012-4-20 10:31:50 | 显示全部楼层
majianyong 发表于 2012-4-20 09:58
直接在gs中计算干旱年与非干旱年的值就好了,为什么还要用fortran挑选?gs中define一下这些干旱年的时次, ...

不懂诶···现在是一点思路都没有。请指点!!!先拜谢
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2012-4-24 12:15:40 | 显示全部楼层
嗯,编程把数据读出来,计算后写成文件即可。
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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