- 积分
- 5118
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2011-10-31
- 最后登录
- 1970-1-1
|
登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
我要画500hpa高度距平场。图画出来了,但是和原图不一样。不知道数据处理的问题还是什么,大家帮看看FORTRAN写的对不对。
program main
implicit none
integer,parameter:: iix=145,iiy=73,mt=696,m=12,y=58
integer i,j,t,yr,mo,kk
integer::anum=0,bnum=0
real atemp(mt),hgt(iix,iiy,mt),zhgt(iix,iiy),phgt(iix,iiy),zzhgt(iix,iiy),jphgt(iix,iiy),hgt1(iix,iiy,m,y),ghgt(iix,iiy),num(iix,iiy)
open(13,file='f:\1\hgt.grd',form='binary')
open(14,file='f:\1\temp1.grd',form='binary')
open(15,file='f:\1\ghgt.txt')
open(16,file='f:\1\ghgt.grd',form='binary')
do yr=1,y
read(14) (atemp(yr))
enddo
do t=1,mt
read(13) ((hgt(i,j,t),i=1,iix),j=1,iiy)
enddo
do yr=1,y
do mo=1,m
kk=(yr-1)*12+mo
do j=1,iiy
do i=1,iix
hgt1(i,j,mo,yr)=hgt(i,j,kk)
enddo
enddo
enddo
enddo
do yr=1,y
if(atemp(yr)>1.0)then
anum=anum+1
endif
enddo
do yr=1,y
if(atemp(yr)<1.0.and.atemp(yr)>-1.0)then
bnum=bnum+1
endif
enddo
do j=1,iiy
do i=1,iix
num(i,j)=0
do yr=1,y
do mo=6,8
if(hgt1(i,j,mo,yr)<=-9.9e+08)then
num(i,j)=num(i,j)+1
endif
enddo
enddo
enddo
enddo
do j=1,iiy
do i=1,iix
zhgt(i,j)=0
do mo=6,8
do yr=1,y
if(atemp(yr)>1.0.and.hgt1(i,j,mo,yr)>-9.9e+08)then
zhgt(i,j)=zhgt(i,j)+hgt1(i,j,mo,yr)
endif
enddo
enddo
enddo
enddo
do j=1,iiy
do i=1,iix
phgt(i,j)=zhgt(i,j)/(3*anum-num(i,j))
enddo
enddo
do j=1,iiy
do i=1,iix
zzhgt(i,j)=0
do mo=6,8
do yr=1,y
if(hgt1(i,j,mo,yr)>-9.9e+08)then
zzhgt(i,j)=hgt1(i,j,mo,yr)+zzhgt(i,j)
endif
enddo
enddo
enddo
enddo
do j=1,iiy
do i=1,iix
zzhgt(i,j)=zzhgt(i,j)/(3*y-num(i,j))
enddo
enddo
do j=1,iiy
do i=1,iix
jphgt(i,j)=phgt(i,j)-zzhgt(i,j)
enddo
enddo
write(15,*) ((jphgt(i,j),i=1,iix),j=1,iiy)
write(16) ((jphgt(i,j),i=1,iix),j=1,iiy)
end
令再附上CTL 和 GS文件
dset F:\1\ghgt.grd
undef -9.9e+08
xdef 145 linear 0.000 2.50
ydef 73 linear -90.000 2.50
zdef 1 levels 500
tdef 1 linear JAN1951 1yr
vars 1
ghgt 0 99
endvars
'reinit'
'open f:\1\ghgt.ctl'
'enable print f:\1\ghgt.gmf'
'set xflip on'
'set lon 180 300'
'set lat -20 70'
'set lev 500'
'set gxout contour'
'set clevs 0 10 15 25'
'd ghgt'
'print'
'disable print'
|
|