1、气象统计实习报告实习一 求500hPa高度场气候场、距平场和均方差场1、实习内容有一500hPa高度场资料,文件名h500.dat,范围:60150E,040N.时段:1982.11985.12共48个月。水平分辨率:2.5*2.5,格点数:37*17。 编fortran程序,求500hPa高度场的(1)气候场;(2)距平场;(3)均方差场。并能用Grads做出图形,实习报告中气候场、距平场、均方差场任意给出两张图,图注要清楚,即要注明是哪个时间的图形,并做简单分析。2、fortran程序 program main implicit none integer ii,jj,mo,yr param
2、eter(ii=37,jj=17,mo=12,yr=4) real var(ii,jj,mo,yr) real climate(ii,jj,mo),juping(ii,jj,mo,yr),junfang(ii,jj,mo) integer i,j,m,iy open(5,file=d:1h500.dat) open(1,file=d:1h500aver.grd,form=binary) open(2,file=d:1h500juping.grd,form=binary) open(3,file=d:1h500junfang.grd,form=binary) do iy=1,4 !读数据资料 h
3、500 do m=1,12 read(5,1000) read(5,3000) (var(i,j,m,iy),i=1,ii),j=1,jj) End do End do1000 format(2i7)2000 FORMAT(37F6.2)3000 format(37f8.1)4000 format(37f7.2) do m=1,mo !气候场 do j=1,jj do i=1,ii climate(i,j,m)=0 do iy=1,yr climate(i,j,m)=climate(i,j,m)+var(i,j,m,iy) end do climate(i,j,m)=climate(i,j,m
4、)/4 end do end do end do write(1)(climate(i,j,m),i=1,ii),j=1,jj),m=1,mo) do i=1,ii !距平场 do j=1,jj do m=1,mo do iy=1,yr juping(i,j,m,iy)=var(i,j,m,iy)-climate(i,j,m) end do end do end do end do write(2)(juping(i,j,m,iy),i=1,ii),j=1,jj),m=1,mo),iy=1,yr) do m=1,mo !均方差场 do i=1,ii do j=1,jj junfang(i,j,
5、m)=0 do iy=1,yr junfang(i,j,m)=junfang(i,j,m)+juping(i,j,m,iy)*2 end do junfang(i,j,m)=sqrt(junfang(i,j,m)/yr) end do end do end do write(3)(junfang(i,j,m),i=1,ii),j=1,jj),m=1,mo) End3、图形显示 1、气候场:t=7分析:7月份多年平均场在东部海面有高压中心,西部有低压中心。 2、距平场:T=1982.7分析:对于7月份而言,1982年的高度场偏低,大部分地区为负距平。实习二 计算给定数据资料的简单相关系数和自相关
6、系数一、实习内容根据下表中年平均气温和冬季平均气温的等级数据进行下列计算:1)计算两个气温之间的简单相关系数。2)分别找出两个气温数据自相关系数绝对值最大的滞后时间长度。(滞后长度最大取10)二、fortran程序program main implicit noneinteger i,j,maxireal:k=0,sumx=0,sumy=0,xa,ya,sx,sy,r1,y(20),x(20),rx(10),ry(10)real:data1(20)=(/3.4,3.3,3.2,2.9,3.4,2.8,3.6,3.0,2.8,3.0,3.1,3.0,2.9,2.7,3.5,3.2,3.1,2.8
7、,2.9,2.9/)real:data2(20)=(/3.24,3.14,3.26,2.38,3.32,2.71,2.84,3.94,2.75,1.83,2.8,2.81,2.63,3.2,3.6,3.4,3.07,1.87,2.63,2.47/)do i=1,20sumx=sumx+data1(i)sumy=sumy+data2(i)end doxa=sumx/20;ya=sumy/20sumx=0;sumy=0do i=1,20sumx=sumx+(data1(i)-xa)*2;sumy=sumy+(data2(i)-ya)*2end do sx=sqrt(sumx/20);sy=sqrt
8、(sumy/20)sumx=0;sumy=0do i=1,20x(i)=(data1(i)-xa)/sx;y(i)=(data2(i)-ya)/syend dodo i=1,20 sumx=sumx+x(i)*y(i)end dor1=sumx/20;sumx=0print *,简单相关系数为,r1do j=1,10 do i=1,20-j sumx=sumx+x(i)*x(i+j);sumy=sumy+y(i)*y(i+j) end do rx(j)=abs(sumx/(20-j); ry(j)=abs(sumy/(20-j) sumx=0;sumy=0end domaxi=1do i=1,
9、10 if(rx(i)=rx(maxi) then maxi=i end ifend doprint *,年平均气温对应的j为,maximaxi=1do i=1,10 if(ry(i)=ry(maxi) then maxi=i end ifend doprint *,冬季平均气温对应的j为,maxiend 三、运行结果显示实习三 计算给定数据的落后交叉相关系数和偏相关系数 一、实习内容根据下表北京冬季(12月2月)气温资料计算:12月气温与1月和2月气温的落后交叉相关系数(滞后长度最大取10)和偏相关系数。在实习报告中给出程序。年份12月1月2月19511.0-2.7-4.31952-5.3-
10、5.9-3.51953-2.0-3.4-0.81954-5.7-4.7-1.11955-0.9-3.8-3.11956-5.7-5.3-5.91957-2.1-5.0-1.619580.6-4.30.21959-1.7-5.72.01960-3.6-3.61.31961-3.0-3.1-0.819620.1-3.9-1.11963-2.6-3.0-5.21964-1.4-4.9-1.71965-3.9-5.7-2.51966-4.7-4.8-3.31967-6.0-5.6-4.91968-1.7-6.4-5.11969-3.4-5.6-2.01970-3.1-4.2-2.91971-3.8-4
11、.9-3.91972-2.0-4.1-2.41973-1.7-4.2-2.01974-3.6-3.3-2.01975-2.7-3.70.11976-2.4-7.6-2.21977-0.9-3.5-2.31978-2.7-4.2-0.51979-1.6-4.5-2.91980-3.9-4.8-1.4二、fortran程序program main implicit noneinteger iy,t,j,ireal:var(30,3),s12(10),s13(10),s1=0,s2=0,s3=0,a1,a2,a3,sum1=0,sum2=0,sum3=0,r12(10),r13(10),p12,p1
12、3,t12,t13,t23open(18,file=d:gradsshiyan3.txt) !读入数据 read(18,*) (var(iy,t),t=1,3),iy=1,30)do iy=1,30 !求均值和标准差 s1=s1+var(iy,1) s2=s2+var(iy,1) s3=s3+var(iy,1)end doa1=s1/30;a2=s2/30;a3=s3/30do iy=1,30 sum1=sum1+(var(iy,1)-a1)*2 sum2=sum2+(var(iy,2)-a2)*2 sum3=sum3+(var(iy,3)-a3)*2end do s1=sqrt(sum1/3
13、0);s2=sqrt(sum2/30);s3=sqrt(sum3/30);sum1=0;sum2=0;sum3=0do j=1,10 !求12月和1月落后交叉相关系数r12以及12月和2月系数r13do i=1,30-j sum1=sum1+(var(i,1)-a1)*(var(i+j,2)-a2) sum2=sum2+(var(i,1)-a1)*(var(i+j,3)-a3)end dor12(j)=sum1/(30-j)/s1/s2;r13(j)=sum2/(30-j)/s1/s3sum1=0;sum2=0end dosum1=0;sum2=0;sum3=0print *,12月和1月落后
14、交叉相关系数r12(j) !输出12月和1月落后交叉相关系数r12(j)以及12月和2月系数r13(j)do j=1,10 print *,j=,j,时,r12=,r12(j)end do print * print *,12月和2月落后交叉相关系数r13(j)do j=1,10 print *,j=,j,时,r13=,r13(j)end do print *do i=1,30 !求12月和1月简单相关系数t12,求12月和2月t13,以及1月和2月t23 sum1=sum1+(var(i,1)-a1)*(var(i,2)-a2) sum2=sum2+(var(i,1)-a1)*(var(i,3)-a3) sum3=sum3+(var(i,2)-a2)*(var(i,3)-a3)end dot12=sum1/30/s1/s2;t13=sum2/30/s1/s3;t23=
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1