天气学诊断实习程序_天气学诊断分析实习
天气学诊断实习程序由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“天气学诊断分析实习”。
实习资料: 该过程的观测资料和再分析资料,实习要求用micaps资料进行计算和分析。
1、观测资料:计算范围:东经30-160,北纬10-80,格距 2.5*2.5。所给要素为高度场,风场,温度以及温度露点差,共11层。时次是2013年5月21日08时到2013年5月31日18时,每12小时一次,共22个时次。
2、再分析资料:东经30-160,北纬10-80,格距 2.5*2.5。所给要素为高度场,风场,温度以及比湿(单位为:kg/kg),共17层,时次是2013年1月1日00时到2013年5月31日20时,每6小时一次,共604个时次。
实习内容:
1.利用所给资料和绘图软件绘制等高线、等压线、等温线,了解当时环流形势(主要是500和850hPa)。
2.计算涡度和散度(主要是300,500,850hPa),500hPa实测风涡度平流,计算850hPa温度平流并绘图,利用高空和地面形势预报方程,从热力和动力因子分析南方气旋生成、发展的原因,以及散度高低层的配置。
3.计算850,700,500hPa水汽通量并绘图,分析水汽通量输送较大的层次及水汽通量散度,指出水汽输送通道大致范围,并说明水汽辐合区域的位置,什么位置有利于降水的发生,原因是什么。比较水汽通量中水汽平流和风的散度项的大小
4.编制计算垂直速度程序,并绘制500hPa垂直速度。用第二种修正方案,其中大气层顶的垂直速度可以直接采用0,也可以用绝热法。
5.以上任务完成后,有兴趣的同学可以编写计算流函数和势函数的程序。也可以对以上计算结果模仿文献绘制一些垂直剖面图等,从不同角度对该次过程进行分析.程序1 读取保存数据
program duqushuju real h(53,29,11,8),t(53,29,11,8),u(53,29,11,8),v(53,29,11,8),ttd(53,29,11,8)integer,parameter::nz=11,nt=8,nx=53,ny=29 character z(11)*4,sj(8)*12 sj(1)='13052508.000' sj(2)='13052520.000' sj(3)='13052608.000' sj(4)='13052620.000' sj(5)='13052708.000' sj(6)='13052720.000' sj(7)='13052808.000' sj(8)='13052820.000' z(1)='1000' z(2)='925' z(3)='850' z(4)='700' z(5)='500' z(6)='400' z(7)='300' z(8)='250' z(9)='200' z(10)='150' z(11)='100' do iz=1,nz do it=1,nt
open(1,file='j:tianzhenmicapsheight'//trim(z(iz))//'/'//sj(it))do i=1,4 read(1,*)enddo do j=ny,1,-1 read(1,*)(h(i,j,iz,it),i=1,nx)enddo open(2,file='j:tianzhenmicapstemper'//trim(z(iz))//'/'//sj(it))do i=1,4 read(2,*)enddo do j=ny,1,-1 read(2,*)(t(i,j,iz,it),i=1,nx)enddo open(3,file='j:tianzhenmicapst-td'//trim(z(iz))//'/'//sj(it))do i=1,4 read(3,*)enddo do j=ny,1,-1 read(3,*)(ttd(i,j,iz,it),i=1,nx)enddo open(4,file='j:tianzhenmicapsuv'//trim(z(iz))//'/'//sj(it))do i=1,3 read(4,*)enddo do j=ny,1,-1 read(4,*)(u(i,j,iz,it),i=1,nx)enddo do j=ny,1,-1 read(4,*)(v(i,j,iz,it),i=1,nx)enddo enddo enddo!存放数据
open(5,file='j:tianzhenhoutput.grd',form='binary')write(5)((((h(i,j,iz,it),i=1,nx),j=1,ny),iz=1,nz),it=1,nt)open(6,file='j:tianzhentoutput.grd',form='binary')write(6)((((t(i,j,iz,it),i=1,nx),j=1,ny),iz=1,nz),it=1,nt)open(7,file='j:tianzhenttdoutput.grd',form='binary')write(7)((((ttd(i,j,iz,it),i=1,nx),j=1,ny),iz=1,nz),it=1,nt)open(8,file='j:tianzhenuoutput.grd',form='binary')write(8)((((u(i,j,iz,it),i=1,nx),j=1,ny),iz=1,nz),it=1,nt)open(9,file='j:tianzhenvoutput.grd',form='binary')write(9)((((v(i,j,iz,it),i=1,nx),j=1,ny),iz=1,nz),it=1,nt)end
程序2 涡度、散度、涡度平流和温度平流
program woduwendupingliu parameter(a=6371000.,nx=53,ny=29,nz=11,nt=8,d=2.5,dd=2.5*3.14159/180.)real wd(nx,ny,nz,nt),sd(nx,ny,nz,nt),wopl(nx,ny,nz,nt),wnpl(nx,ny,nz,nt),u(nx,ny,nz,nt),v(nx,ny,nz,nt),t(nx,ny,nz,nt)open(1,file='j:tianzhenuoutput.grd',form='binary')open(2,file='j:tianzhenvoutput.grd',form='binary')open(3,file='j:tianzhentoutput.grd',form='binary')do it=1,nt do iz=1,nz do j=1,ny do i=1,nx
read(1)u(i,j,iz,it)read(2)v(i,j,iz,it)read(3)t(i,j,iz,it)enddo enddo enddo enddo!计算涡度 do it=1,nt do iz=1,nz do j=2,ny-1 do i=2,nx-1 wd(i,j,iz,it)=1./(2*a)*((v(i+1,j,iz,it)-v(i-1,j,iz,it))/cos((10+d*(j-1))*3.14159/180)/dd-(u(i,j+1,iz,it)-u(i,j-1,iz,it))/dd+2*u(i,j,iz,it)*tan((10+d*(j-1))*3.14159/180))enddo enddo enddo enddo!计算散度 do it=1,nt do iz=1,nz do j=2,ny-1 do i=2,nx-1 sd(i,j,iz,it)=1./(2*a)*((u(i+1,j,iz,it)-u(i-1,j,iz,it))/cos((10+d*(j-1))*3.14159/180)/dd+(v(i,j+1,iz,it)-v(i,j-1,iz,it))/dd-2*v(i,j,iz,it)*tan((10+d*(j-1))*3.14159/180))enddo enddo enddo enddo!保存涡度和散度
open(4,file='j:tianzhenwd.grd',form='binary')write(4)((((wd(i,j,iz,it),i=1,nx),j=1,ny),iz=1,nz),it=1,nt)open(5,file='j:tianzhensd.grd',form='binary')write(5)((((sd(i,j,iz,it),i=1,nx),j=1,ny),iz=1,nz),it=1,nt)!计算涡度平流 do it=1,nt do iz=1,nz do j=2,ny-1 do i=2,nx-1 wopl(i,j,iz,it)=-1./(2*a)*(u(i,j,iz,it)*(wd(i+1,j,iz,it)-wd(i-1,j,iz,it))/cos((10+d*(j-1))*3.14159/180)/dd+v(i,j,iz,it)*(wd(i,j+1,iz,it)-wd(i,j-1,iz,it))/dd)enddo enddo enddo enddo!计算散度平流 do it=1,nt do iz=1,nz do j=2,ny-1 do i=2,nx-1 wnpl(i,j,iz,it)=-1./(2*a)*(u(i,j,iz,it)*(t(i+1,j,iz,it)-t(i-1,j,iz,it))/cos((10+d*(j-1))*3.14159/180)/dd+v(i,j,iz,it)*(t(i,j+1,iz,it)-t(i,j-1,iz,it))/dd)enddo enddo enddo enddo!保存涡度平流和散度平流
open(6,file='j:tianzhenwopl.grd',form='binary')write(6)((((wopl(i,j,iz,it),i=1,nx),j=1,ny),iz=1,nz),it=1,nt)open(7,file='j:tianzhenwnpl.grd',form='binary')write(7)((((wnpl(i,j,iz,it),i=1,nx),j=1,ny),iz=1,nz),it=1,nt)end
程序3 水汽通量及其散度
program shuiqitongliang parameter(a=6371000.,nx=53,ny=29,nz=11,nt=8,d=2.5,dd=2.5*3.14159/180.)real aa,b dimension t(nx,ny,nz,nt),ttd(nx,ny,nz,nt),td(nx,ny,nx,nt),u(nx,ny,nz,nt),v(nx,ny,nz,nt),tt(nx,ny,nz,nt),ttdd(nx,ny,nz,nt),e(nx,ny,nz,nt),q(nx,ny,nz,nt),tl(nx,ny,nz,nt),tlx(nx,ny,nz,nt),tly(nx,ny,nz,nt),ts(nx,ny,nz,nt),p(nz)p(1)=1000 p(2)=925 p(3)=850 p(4)=700 p(5)=500 p(6)=400 p(7)=300 p(8)=250 p(9)=200 p(10)=150 p(11)=100
!读取温度、温度露点差、风速u和v open(1,file='j:tianzhentoutput.grd',form='binary')open(2,file='j:tianzhenttdoutput.grd',form='binary')open(3,file='j:tianzhenuoutput.grd',form='binary')open(4,file='j:tianzhenvoutput.grd',form='binary')do it=1,nt do iz=1,nz do j=1,ny do i=1,nx
read(1)t(i,j,iz,it)read(2)ttd(i,j,iz,it)read(3)u(i,j,iz,it)read(4)v(i,j,iz,it)enddo enddo enddo enddo!计算露点温度 do it=1,nt do iz=1,nz do j=1,ny do i=1,nx
td(i,j,iz,it)=t(i,j,iz,it)-ttd(i,j,iz,it)enddo enddo enddo enddo!摄氏温度转换成绝对温度 do it=1,nt do iz=1,nz do j=1,ny do i=1,nx
tt(i,j,iz,it)=t(i,j,iz,it)+273.16 ttdd(i,j,iz,it)=td(i,j,iz,it)+273.16 enddo enddo enddo enddo!计算水汽压 do it=1,nt do iz=1,nz do j=2,ny-1 do i=2,nx-1 if(t(i,j,iz,it)>0)then aa=17.2693882 b=35.86 elseif(t(i,j,iz,it)
open(5,file='j:tianzhensqtlx.grd',form='binary')write(5)((((tlx(i,j,iz,it),i=1,nx),j=1,ny),iz=1,nz),it=1,nt)open(6,file='j:tianzhensqtly.grd',form='binary')write(6)((((tly(i,j,iz,it),i=1,nx),j=1,ny),iz=1,nz),it=1,nt)open(7,file='j:tianzhensqts.grd',form='binary')write(7)((((ts(i,j,iz,it),i=1,nx),j=1,ny),iz=1,nz),it=1,nt)end
程序4 垂直速度及其订正
program chuizhisudu parameter(a=6371e3,d=2.5,nx=53,ny=29,nz=11,nt=8)real sd(nx,ny,nz,nt),w(nx,ny,nz,nt),ww(nx,ny,nz,nt),dp(nz-1)dp(1)=75 dp(2)=75 dp(3)=150 dp(4)=200 dp(5)=100 dp(6)=100 dp(7)=50 dp(8)=50 dp(9)=50 dp(10)=50!读取散度数据
open(1,file='j:tianzhenwssd.grd',form='binary')do it=1,nt do iz=1,nz do j=1,ny do i=1,nx
read(1)sd(i,j,iz,it)enddo enddo enddo enddo!地面平坦,地面垂直速度设为0 do it=1,nt do i=1,nx do j=1,ny w(i,j,1,it)=0 enddo enddo enddo!计算未订正速度 do it=1,nt do iz=2,nz do i=1,nx do j=1,ny w(i,j,iz,it)=w(i,j,iz-1,it)+0.5*(sd(i,j,iz-1,it)+sd(i,j,iz,it))*dp(iz-1)enddo enddo enddo enddo!订正速度 do it=1,nt do iz=1,nz do i=1,nx do j=1,ny ww(i,j,iz,it)=w(i,j,iz,it)-iz*(iz-1)/110*w(i,j,11,it)enddo enddo enddo enddo!保存订正好的速度 open(2,file='j:tianzhenwww.grd',form='binary')write(2)((((ww(i,j,iz,it),i=1,nx),j=1,ny),iz=1,nz),it=1,nt)end