- 积分
- 1770
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2012-4-12
- 最后登录
- 1970-1-1
|
楼主 |
发表于 2012-4-20 09:49:15
|
显示全部楼层
mofangbao 发表于 2012-4-20 08:50
算出你需要的月份对应的时次是哪个,然后就累加平均什么的了
我现在是那样弄得。在.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
|
|