2011年12月实习一:求500hPa高度场气候场、距平场和均方差场1.资料介绍:500hPa高度场,资料文件名h500.dat范围:60~150E,0~40N.时段:1982.1~1985.12共48个月分辨率:2.5*2.5,格点数:37*172.实习要求:编fortran程序,求500hPa高度场的(1)气候场;(2)距平场;(3)均方差场。
H500.For给出了如何用fortran读取资料h500.dat.并能用Grads做出图形。
3.实习原理:1.气候场:所谓的气候场即气象资料的平均场,资料中给出4年的500hpa 高度场的资料,需要求的气候场即四年资料的每个月一个平均的高度场,最终得出一共有12个平均场,这12个高度场即12个月的气候场。
求气候场的计算公式也就是求平均值的公式:。
2.距平场:距平值反映数据偏离平均值的状况,也是通常所说的异常,距平值是用来表征某个气象要素的波动幅度。
距平更明显地看出异常,消除了季节的变化。
距平场的计算公式为:,。
我们需要计算的距平场是原始数据与平均值之差,4年中一共有48个月,每月一个距平场,共由48个距平场。
3.均方差场:均方差用来描述样本中资料与平均值差异的平均状况,反映变量围绕平均值的平均变化程度(离散程度)。
均方差的计算公式:,。
4.实习步骤①利用Fortran程序进行数据处理和计算,Fortran编写的程序如下:program mainparameter(ii=37,jj=17,tt=48)real var(ii,jj,tt)integer i,j,texternal averageopen(5,file='d:\shixi\1\h500.dat')open(11,file='d:\shixi\1\ave.grd',form='binary')open(12,file=' d:\shixi\1\h5001.grd',form='binary')open(13,file=' d:\shixi\1\h5002.grd',form='binary')open(14,file=' d:\shixi\1\h5003.grd',form='binary')DO t=1,48read(5,1000)read(5,3000) ((var(i,j,t),i=1,ii),j=1,jj) !读取数据end docall average(var)1000 format(2i7)2000 FORMAT(37F6.2)3000 format(37f8.1)4000 format(37f7.2)close(5)close(11)close(12)close(13)end program!求气候场subroutine average(var)integer rreal var(37,17,48),av(37,17,12),jp(37,17,48),jfc(37,17,12)real bc(37,17,12)av(37,17,12)=0.0jfc(37,17,12)=0.0do r=1,12do t=r,48,12do i=1,37do j=1,17av(i,j,r)=av(i,j,r)+var(i,j,t)/4end doend doend dowrite(11) ((av(i,j,r),i=1,37),j=1,17)end do!求距平场r=0do t=1,48r=mod((r+1),12)if(r/=0) thendo i=1,37do j=1,17jp(i,j,t)=var(i,j,t)-av(i,j,r)end doend doelsedo i=1,37do j=1,17jp(i,j,t)=var(i,j,t)-av(i,j,12)end doend doend ifwrite(12) ((jp(i,j,t),i=1,37),j=1,17)end do!求均方差do r=1,12do t=r,48,12do i=1,37do j=1,17jfc(i,j,r)=jfc(i,j,r)+(var(i,j,t)-av(i,j,r))**2/4end doend doend dodo i=1,37do j=1,17jfc(i,j,r)=sqrt(jfc(i,j,r))end doend dowrite(13) ((jfc(i,j,r),i=1,37),j=1,17)end do!求变差系数do r=1,12do i=1,37do j=1,17bc(i,j,r)=jfc(i,j,r)/av(i,j,r)end doend dowrite(14) ((bc(i,j,r),i=1,37),j=1,17)end doend subroutine average②利用grads进行绘图,gs文件及绘出图像如下:'open d:\shixi\1\aver.ctl''set lat 0 40''set lon 60 150''set lev 500''enable print d:\shixi\1\aver.gmf'i=1while(i<=12)'set t 'i'''d aver''print''c'i=i+1endwhile'disable print';'open d:\shixi\1\h5001.ctl''set lat 0 40''set lon 60 150''set lev 500''enable print d:\shixi\1\h5001.gmf' i=1while(i<=12)'set t 'i'''d sx''print''c'i=i+1endwhile'disable print''open d:\shixi\1\h5002.ctl''set lat 0 40''set lon 60 150''set lev 500''enable print d:\shixi\1\vp.gmf' i=1while(i<=12)'set t 'i'''d vp''print''c'i=i+1endwhile'disable print''open d:\shixi\h5003.ctl''set lat 0 40''set lon 60 150''set lev 500''enable print d:\shixi\1\xd.gmf'i=1while(i<=48)'set t 'i'''d xd''print''c'i=i+1endwhile'disable print'实习二1.实习要求:根据表中给出的年平均气温和冬季平均气温的等级数据进行下列计算:1)计算两个气温之间的相关系数。