资源描述:
《GrADS实习报告4资料.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、南京信息工程大学实验(实习)报告实验(实习)名称蒙古高压特征分析日期2016.9得分指导教师孙晓娟系大气科学专业大气科学班次长望实验班姓名夏新露一、实验目的(1)掌握气象要素气候异常特征的基本方法。(2)进一步巩固Fortran顺序结构和循环结构的程序设计方法,重点掌握文件、变量、函数、数组的使用方法、数据的有格式输入输出方法。(3)了解并掌握GrADS的使用流程。(4)学习并掌握数据描述文件(*.ctl文件)的书写方法。(5)学习书写简单的“*.gs”文件。(6)掌握GrADS中open,reinit,d,c,quit,q,run等基本命令的使用方法。(7)掌握GrADS维数环境设置方法。(
2、8)掌握GrADS绘制“line”、“bar”图形类型的方法,绘制1951-2010年蒙古高压强度异常的时间序列图。(9)掌握保持GrADS绘制图形的一种方法。二、实验内容2.1问题描述已知1951-2010年1月蒙古高压强度、面积、经度、维度指数序列,计算蒙古高压各指数的气候值、变率和距平,绘制蒙古高压强度、面积、位置指数距平的时间序列图,分析冬季蒙古高压的异常规律。2.2问题分析已知:1951-2010年1月蒙古高压强度、面积、经度、维度指数序列资料p.dat、s.dat、lon.dat、lat.dat。计算:蒙古高压各指数的气候值、变率和距平值。绘制:1948-2010年1月蒙古高压强度
3、、面积、位置指数距平的时间序列图。通过分析,根据公式求得蒙古高压1月环流指数气候及异常值。根据GrADS中line和bar两种图形格式绘制方法,绘制蒙古高压环流指数距平的时间序列图。一、实验步骤3.1蒙古高压环流指数的气候和异常值计算1.分析问题,理清算法和程序,设计程序流程图并编写程序。2.启动软件开发环境MicrosoftDeveloperStudio。3.在D盘上创建新工作区shixi04。4.在工作区shixi3内创建新项目shixi04。5.在项目shixi04内创建源程序文件“mh.f90”,编辑输入源程序文本。6.在源程序文本中打开数据文件“p.dat”、“s.dat”、“lon
4、.dat”、“lat.dat”,并将其值读入到相应的数组中。7.编写计算均值、变率和距平的子程序。8.调用子程序分别计算强度、面积、经度、纬度环流指数的均值、变率和距平。9.将蒙古高压环流指数的均值和变率写入到“mh1.dat”和“mh1.grd”两个文件中。将蒙古高压环流指数的距平值写入到“mh2.dat”和“mh2.grd”两个文件中。10.编译、构建、运行、调试Fortran程序。3.2蒙古高压环流指数距平时间序列图绘制1.为蒙古高压环流指数距平数据文件“mh2.grd”书写数据描述文件“mh2.ctl”,在此文件中定义四个变量p、s、lo、la。2.编写“mh2.gs”可执行文件,利用
5、GrADS基本操作命令和line、bar两种绘图类型的绘图要素设置,以不同颜色和线形显示蒙古高压强度和面积时间序列图(曲线),分别以不同颜色显示蒙古高压经度和纬度时间序列图(柱状)。3.将蒙古高压强度和面积时间序列图(曲线)保存到“mhline.gmf”,将蒙古高压经度和纬度时间序列图(柱状)分别保存到“mhlonbar.gmf”和“mhlatbar.gmf”中。4.启动GrADS,调试、执行“mh2.gs”。5.分析蒙古高压气候及其异常特征。3.3实习关键技术及方法某数据资料时间序列距平x’为数据资料与其平均值之差某数据资料的变率为其均方差,反映变量围绕平均值的平均变化程度,其计算公式为:3
6、.4实验程序编写以下FORTRAN程序用于蒙古高压环流指数气候及异常值计算。programmhimplicitnoneinteger,parameter::ny=60!p(ny)、pa(ny)、pav和pd分别为强度指数原序列、距平序列、均值和标准差,其他参数量类似定义realp(ny),s(ny),lon(ny),lat(ny),pa(ny),sa(ny),lona(ny),lata(ny),pav,sav,lonav,latav,pd,sd,lond,latdintegeri,j,k!利用open语句打开强度、面积、经度、纬度指数数据open(1,file='D:GrAdsshixiG
7、rAdschap4p.dat')open(2,file='D:GrAdsshixiGrAdschap4s.dat')open(3,file='D:GrAdsshixiGrAdschap4lon.dat')open(4,file='D:GrAdsshixiGrAdschap4lat.dat')!将打开数据保存到对应数组中doi=1,nyread(1,*)p(i)read(