- 积分
- 3704
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2018-6-12
- 最后登录
- 1970-1-1
|
登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
最近毕设要计算急流区域1979-2018年300hPa7月的纬向风侯平均值,所使用的是日平均资料。我先用grads计算了第一侯的数据,程序如下(grads不能一次性读40年数据,我就分成两段时间提取了):
***1979-2018年300hPa7月第一侯平均uwnd
'reinit'
'set fwrite f:\002\05\PWJ_fir_uwnd1979-2010.grd'
'set gxout fwrite'
year=1979
while(year<=2010)
'sdfopen f:\002\uwnd.'year'.nc'
'set lat -90 90'
'set lon 0 357.5'
'set lev 300'
***闰年
if(((math_fmod(year,4)=0)&(math_fmod(year,100)!=0))|(math_fmod(year,400)=0))
'define u1=ave(uwnd,t=183,t=187)'
'define u2=aave(u1,lon=70,lon=90,lat=60,lat=65)'
'd u2'
else
***平年
'define u1=ave(uwnd,t=182,t=186)'
'define u2=aave(u1,lon=70,lon=90,lat=60,lat=65)'
'd u2'
endif
year=year+1
endwhile
'disable fwrite'
'c'
'reinit'
'set fwrite f:\002\05\PWJ_fir_uwnd2011-2018.grd'
'set gxout fwrite'
year=2011
while(year<=2018)
'sdfopen f:\002\uwnd.'year'.nc'
'set lat -90 90'
'set lon 0 357.5'
'set lev 300'
***闰年
if(((math_fmod(year,4)=0)&(math_fmod(year,100)!=0))|(math_fmod(year,400)=0))
'define u1=ave(uwnd,t=183,t=187)'
'define u2=aave(u1,lon=70,lon=90,lat=60,lat=65)'
'd u2'
else
***平年
'define u1=ave(uwnd,t=182,t=186)'
'define u2=aave(u1,lon=70,lon=90,lat=60,lat=65)'
'd u2'
endif
year=year+1
endwhile
'disable fwrite'
;
然后我又用FORTRAN读取了一下我计算的数据,程序如下:
program ceshi
implicit none
integer k
parameter(k=40)
integer i,j,it
real PWJ(k)
open(10,file='f:\002\05\PWJ_fir_uwnd1979-2010.grd',form='binary')
open(11,file='f:\002\05\PWJ_fir_uwnd2011-2018.grd',form='binary')
do it=1,32
read(10)PWJ(it)
enddo
do it=33,k
read(11)PWJ(it)
enddo
print*,PWJ
end
结果如图所示,数据刚好就以2011年为分界,而且照常理来说每个月数据重复率不会这么高,已经苦思冥想了好几天了,还是不知道哪里有问题,希望得到大家指点
|
-
计算结果
|