天气学诊断实习程序

更新时间:2023-12-20 10:09:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

实习资料:

该过程的观测资料和再分析资料,实习要求用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:\\tianzhen\\micaps\\height\\'//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:\\tianzhen\\micaps\\temper\\'//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:\\tianzhen\\micaps\\t-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:\\tianzhen\\micaps\%uv\\'//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:\\tianzhen\\houtput.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:\\tianzhen\\toutput.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:\\tianzhen\\ttdoutput.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:\\tianzhen\%uoutput.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:\\tianzhen\\voutput.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:\\tianzhen\%uoutput.grd',form='binary') open(2,file='j:\\tianzhen\\voutput.grd',form='binary') open(3,file='j:\\tianzhen\\toutput.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:\\tianzhen\\wd.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:\\tianzhen\\sd.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:\\tianzhen\\wopl.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:\\tianzhen\\wnpl.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:\\tianzhen\\toutput.grd',form='binary') open(2,file='j:\\tianzhen\\ttdoutput.grd',form='binary') open(3,file='j:\\tianzhen\%uoutput.grd',form='binary') open(4,file='j:\\tianzhen\\voutput.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

本文来源:https://www.bwwdw.com/article/fvw5.html

Top