气象程序设计及绘图实习报告

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

实习要求:•根据所提供的实习说明和资料,按要求完成实习内容;•将完成的实习内容按步骤写入实习报告中,包括资料说明、Fortran程序、CTL文件、gs文件、绘制的图形(要求在图形上方用drawtitle的方式添加标题,注明姓名拼音及学号)•根据所绘图形及查找相关文献,说明本次实习所求物理量场的意义。实习内容:•Nino34海温指数与海平面气压相关图•Nino34海温指数与中国160站降水相关图1.绘制1月份Nino34海温指数与1月份海平面气压相关图1.1资料说明Nino34指数:Nino34.txt是1951年1月至2013年12月Nino3.4区(热带太平洋:西经170度~西经120度、北纬5度~南纬5度)区域平均海温指数资料,共有63行数据,每行数据第一个数字为年份,后面12个数字为该年1-12月的海温指数;全球海平面气压月平均数据:slp.jan.grd为1951至2013年的1月全球海平面气压场二进制数据,年数为63年,格点数144*73,水平分辨率2.5︒*2.5︒;1.2步骤:1用Fortran编写corr.grid.f90文件,计算1951-2013年1月Nino34海温指数与海平面气压相关系数,计算结果保存于corr.slp.grd文件中;corr.grid.f90文件:programcximplicitnonerealt(63),p(73,144,63),r(73,144),relation,z(63)character*12c(63)character*7a(63)integeri,j,kopen(5,file='D:\expriments\grads\slp.jan.grd',form='binary')open(6,file='D:\expriments\grads\nino34.txt')doi=1,63read(6,'(A12)')c(i)enddodoi=1,63read(c(i),'(A7,F5.2)')a(i),t(i)enddodok=1,63read(5)((p(i,j,k),j=1,144),i=1,73)enddo!print*,pdoi=1,73doj=1,144dok=1,63z(k)=p(i,j,k)enddor(i,j)=relation(z,t,63)enddoenddo!print*,ropen(7,file='D:\expriments\grads\corr.slp.txt')open(8,file='D:\expriments\grads\corr.slp.grd',form='binary')write(7,'(144F5.2)')((r(i,j),j=1,144),i=1,73)write(8)((r(i,j),j=1,144),i=1,73)endfunctionrelation(a,b,n)implicitnoneinteger,intent(in)::nreal,intent(in)::a(n),b(n)real::relation!返回的相关系数integer::i,j!循环控制变量real::sfenzi,sfenmu1,sfenmu2,s!加法器real::amean,bmean!a,b向量的平均值!计算平均值s=0.doi=1,ns=s+a(i)enddoamean=s/ns=0.doi=1,ns=s+b(i)enddobmean=s/n!计算相关系数sfenzi=0.sfenmu1=0.sfenmu2=0.doi=1,nsfenzi=sfenzi+(a(i)-amean)*(b(i)-bmean)sfenmu1=sfenmu1+(a(i)-amean)**2sfenmu2=sfenmu2+(b(i)-bmean)**2enddorelation=sfenzi/sqrt(sfenmu1*sfenmu2)endfunctionrelation保存于corr.slp.grd文件中。书写corr.slp.grd的数据描述文件1.ctl:dsete:\grads\20150706qimo\test1\corr.slp.grdtitleslpundef-9.99e33xdef144linear-1802.5ydef73linear-902.5zdef1levels1000tdef63linearjun19511yrvars1slp00sealevelpressureendvars编写1.gs文件:'reinit''opene:\grads\20150706qimo\test1\1.ctl''setlev1000''setlon-180180''setlat-9090''sett1''setgxoutshaded''setgradsoff''setblack-0.20.2''dslp''setgxoutcontour''dslp''drawtitleLuYu20131301070''cbar1.00''printime:\grads\20150706qimo\test1\1.pngwhite';绘制1951-2013年1月Nino34海温指数与海平面气压相关系数图:1951-2013年1月Nino34海温指数与海平面气压相关系数图2绘制1月份Nino34海温指数与7月份中国160站降水相关图:2.1资料说明Nino34指数:Nino34.txt是1951年1月至2013年12月Nino3.4区(热带太平洋:西经170度~西经120度、北纬5度~南纬5度)区域平均海温指数资料,共有63行数据,每行数据第一个数字为年份,后面12个数字为该年1-12月的海温指数;160站降水资料:r1607.txt是中国160站1951~2013年共63年7月降水资料,数据是1951年7月各站降水量按照id.txt中各站顺序写入,该年160站都写入后再写下1952年7月各站降水量,...................,直至2013年7月各站降水量按照id.txt中各站顺序写入;160站站点资料:id.txt是160站站号和纬度、经度资料,共有160行。每行第一个数据为8位字符型的站号,后面两个数字分别为该站点纬度和经度;2.2步骤:用Fortran编写corr.station.f90文件,计算1951-2013年1月Nino34海温指数与7月160站降水相关系数,计算结果保存于corr.7.txt和corr.7.grd文件中;programcximplicitnoneintegerp(160,63),i,j,kreals(63),r(160),relation,t(63),lon(160),lat(160),timcharacter*12c(63)character*7a(63)character*8stid(160)integernlev,nflagopen(6,file='E:\grads\20150706qimo\test2\nino34.txt')open(5,file='E:\grads\20150706qimo\test2\r1607.txt')open(10,file=E:\grads\20150706qimo\test1\id.txt')doi=1,160read(10,*)stid(i),lat(i),lon(i)enddoprint*,stiddoj=1,63read(5,*)(p(i,j),i=1,160)enddodoi=1,63read(6,'(A12)')c(i)enddodoi=1,63read(c(i),'(A7,F5.2)')a(i),t(i)enddodoi=1,160doj=1,63s(j)=p(i,j)enddor(i)=relation(s,t,63)enddo!print*,rtim=0nlev=1nflag=1open(7,file='E:\grads\20150706qimo\test2\corr.7.txt')open(8,file='E:\grads\20150706qimo\test1\corr.7.grd',form='binary')doi=1,160write(7,*)stid(i),lon(i),lat(i),tim,nlev,nflag,r(i)enddodoi=1,160write(8)stid(i),lat(i),lon(i),tim,nlev,nflag,r(i)enddonlev=0write(8)stid(160-1),lat(160-1),lon(160-1),tim,nlev,nflag,r(160-1)endfunctionrelation(a,b,n)!本程序计算两列向量的相关系数!a,b分别是待计算的向量!n是向量的长度,要求两列向量等长implicitnoneinteger,intent(in)::nreal,intent(in)::a(n),b(n)real::relation!返回的相关系数integer::i,j!循环控制变量real::sfenzi,sfenmu1,sfenmu2,s!加法器real::amean,bmean!a,b向量的平均值!计算平均值s=0.doi=1,ns=s+a(i)enddoamean=s/ns=0.doi=1,ns=s+b(i)enddobmean=s/n!计算相关系数sfenzi=0.sfenmu1=0.sfenmu2=0.doi=1,nsfenzi=sfenzi+(a(i)-amean)*(b(i)-bmean)sfenmu1=sfenmu1+(a(i)-amean)**2sfenmu2=sfenmu2+(b(i)-bmean)**2enddorelation=sfenzi/sqrt(sfenmu1*sfenmu2)endfunctionrelation书写corr.7.grd的数据描述文件2.ctl;dsetE:\grads\20150706qimo\test2\corr.7.datdtypestationstnmapE:\grads\20150706qimo\test2\corr7.mapUNDEF2.5E33TITLEcorrTDEF1linearjan19511moVARS1r099relationendvars准备corr.7.grd的站点映射文件corr7.map;准备GrADS画站点图时插值时所需格点数据Grid.grd和及其描述文件Grid161.ctl(已提供);编写2.gs文件,绘制1951-2013年1月Nino34海温指数与7月中国160站降水相关系数图,保存于corr.7.gmf文件中。'reinit'‘openE:\grads\20150706qimo\test2\grid161.ctl''openE:\grads\20150706qimo\test2\2.ctl''setlat354''setlon70135''definea=oacres(g,r.2)''definea1=maskout(a,g-0.5)''defineaa=smth9(a1)''setgradsoff''setmpdsetcnworld''setmap111''enableprintE:\grads\20150706qimo\test1\corr7.gmf''setgxoutshaded''setcmin0''daa''setgxoutcontour''setccolor2''daa''drawtitleLuYu20131301070''print''disableprint'1951-2013年1月Nino34海温指数与7月我国160站降水相关系数图分析:图1是1951-2013年1月Nino34海温指数与海平面气压相关系数图,从图中可以看出,赤道中东太平洋地区海温指数和海平面气压成明显正相关,最大相关系数已超过0.8;而赤道锡太平洋地区海温指数和海平面气压则成负相关,最小相关系数低于-0.6。由此可以解释当发生厄尔尼诺事件时

1 / 6
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功