




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、期 末 复 习期 末 复 习气象程序设计及绘图学习目标通过学习,了解FORTRAN语言的特点,基本成份及使用方法,具有阅读程序、编制程序、调试程序的基本能力。在此基础上,根据气象数据处理与分析的特点,切实地掌握用GrADS软件对数据进行图形化显示的基本方法,初步具备编程绘图的能力。 气象程序设计及绘图学习目标通过学习,了解FORTRAN语言的气象程序设计及绘图专业基础课程序设计FORTRAN语言GrADS绘 图气象数据资料分析气象程序设计及绘图专业基础课程序设计FORTRAN语言G基本程序结构program mainimplicit noneintegerrealcharactercomple
2、xlogicalFORTRAN程序设计主程序开始不采用I-N规则变量(包括数组)申明及初始化基本程序结构FORTRAN程序设计主程序开始不采用I-N规则基本程序结构program mainimplicit noneinteger:real:character:complex:logical:FORTRAN程序设计主程序开始不采用I-N规则变量(包括数组)申明及初始化注意:character类型的使用方法基本程序结构FORTRAN程序设计主程序开始不采用I-N规则赋值语句data 变量列表/初值列表/read *,open(文件号,file=路径及文件名)read(文件号,格式)。顺序结构选择结
3、构循环结构获取数据程序算法赋值语句获取数据程序算法单分支IF(条件) THENIF块END IF双分支IF(条件)THENIF块ELSEELSE块END IF多分支IF(条件1)THEN块1ELSE IF(条件2)THEN块2ELSE IF(条件3)THEN块3 .ELSE IF(条件n)THEN块nELSE块n+1END IF逻辑if语句IF(条件) 语句SELECT CASE (选择表达式)CASE(控制表达式1) 块1CASE(控制表达式2) 块2.CASE(控制表达式n) 块nCASE DEFAULT默认块END SELECT可以相互嵌套单分支双分支多分支逻辑if语句SELECT CA
4、SE (选择DO 循环变量 = E1,E2,E3 循环体END DOR = MAX ( INT ( ( E2 - E1 + E3 ) / E3 ),0 )DO WHILE (逻辑表达式) 循环体 END DO可以相互嵌套DO 循环变量 = E1,E2,E3R = MAX ( Iprint *,输出列表write(*,*) 输出列表open(文件号,file=路径及文件名)write(文件号,格式)。输出数据注意:带格式的输入输出方式二进制数据:open(文件号,file=路径及文件名,form=binary)read(文件号,格式)。write(文件号,格式)。End program main
5、主程序结束print *,输出列表输出数据注意:带格式的输入输出方式二程序入口需要被调用子程序包括:函数子程序(function) 子例行程序(subroutine) 子程序又分为:外部子程序和内部子程序程序入口需要被调用子程序包括:函数子程序(function)外部函数子程序 由一个实现某种特定功能的子程序组成,调用程序单元调用它得到一个函数值定义形式:类型说明 FUNCTION 函数名(虚参1,虚参2,) 说明语句 执行语句 。 END FUNCTION 函数名表示函数子程序定义开始表示函数子程序定义结束外部函数子程序 由一个实现某种特定功能的子程序组外部子例行程序 子例行程序不仅可求一个
6、值,还可求多个值或不求值而执行某种操作,因此具有更广泛的用途定义形式:SUBROUTINE 子例行程序名(虚参1,虚参2,) 说明语句 执行语句 END SUBROUTINE 子例行程序名表示子例行程序定义开始表示子例行程序定义结束外部子例行程序 子例行程序不仅可求一个值,还可求调试FORTRAN程序语法错误(syntax error)。如拼写错或标点符号错,在编译时被编译器检测出来;运行错误(run-time error)。当程序执行时企图做非法运算操作,则发生运行错误(例如,除以0)。这些错误导致程序执行时异常中断。逻辑错误(logical error)。程序能够正常编译和运行,但结果是错
7、误的。调试FORTRAN程序语法错误(syntax error)。例题: 利用1951-2010年1月蒙古高压强度指数(data/h-p.dat)(备注:需要标准化以后使用)和1951-2010年1月中国160站气温资料(data/t1601.dat)(备注:实际存放的资料是61年的,只读60即可,需要标准化以后使用),根据3.5节计算1月蒙古高压强度与中国160站气温的相关关系。要求以“*.dat”和“*.grd”两种格式保存1951-2010年1月蒙古高压强度与我国气温的同期相关数据。例题: 利用1951-2010年1月蒙古高压强度指数(d气象程序设计及绘图期末复习课件integer,pa
8、rameter: n=60,start=1951!character*10 char1integer i!integer(4) station,nstationreal a(n), b(n), c(160,n),coopen(1,file=d:aatest1h-p.dat,form=formatted)open(2,file=d:aatest1t1601.txt,form=formatted)open(3,file=d:aatest1mh-t-1.dat,form=formatted)open(4,file=d:aatest1mh-t-1.grd,form=binary)read(1,*)(a
9、(i),i=1,n)close(1)read(2,*)(c(i,j),i=1,160),j=1,n)close(2)do i=1,160do j=1,60b(j)=c(i,j)enddocall COR2 ( n, a, b, co)write(3,(f12.5) cowrite(4) co !,colev !returns co=0.9548129; colev=0.1952enddoclose(3)close(4)end主程序变量申明获取数据循环嵌套调用子程序输出数据主程序结束注释integer,parameter: n=60,start!求相关系数rsubroutine COR2 ( n
10、, a, b, co )integer nreal coreal a(n),b(n)!标准化a(i),b(i)suma=sum(a(1:n)/nsumb=sum(b(1:n)/n ab=0a2=0b2=0do i=1,nab=ab+(a(i)-suma)*(b(i)-sumb)a2=a2+(a(i)-suma)*2b2=b2+(b(i)-sumb)*2enddo co=ab/sqrt(a2*b2)print*,coreturnend子程序开始子程序变量申明子程序算法子程序结束!求相关系数r子程序开始子程序变准备数据文件(包括前期数据处理)编写及检查数据描述文件*.ctl设定图样进行绘图(可编写
11、脚本文件*.gs)保存结果GrADS绘图流程在“写字板”或者“记事本”中编写准备数据文件(包括前期数据处理)编写及检查数据描述文件*.c 现有ASCII码(十进制数据格式)数据资料文件u850.dat和v850.dat,其空间范围:60-150E,0-40N;层次:u、v为850Pa;时段:1982.1-1985.12;分辨率:2.5*2.5;数据排放顺序满足GrADS要求。 要求编写出将这2个文件转换成1个二进制( binary)文件的Fortran程序。 例题6-6GrADS要求数据如何排放? 现有ASCII码(十进制数据格式)数v850.dat数据内容:时间说明v850.dat数据内容:
12、时间说明 PROGRAM PROCESSING IMPLICIT none integer,parameter: m0=37,n0=17,tim=48 real v(m0,n0,tim),u(m0,n0,tim) integer i,j,k open(1,file=d:cvfv850.dat) open(2,file=d:cvfu850.dat) do k=1,tim read(1,1000) read(1,2000) (v(i,j,k),i=1,m0),j=1,n0) read(2,1000) read(2,2000) (u(i,j,k),i=1,m0),j=1,n0) end do1000
13、 format(2i7)2000 format(37F6.2)读时间说明准备数据文件:利用fortran将十进制文件转换为二进制文件十进制数据循环顺序:经度、纬度、层次、时间 PROGRAM PROCESSING读时间说明准备数据文件 write(*,2000) (v(i,j,1),i=1,m0),j=1,n0)open(3,file=d:cvfwind850.grd,form=binary) do k=1,tim write(3) (v(i,j,k),i=1,m0),j=1,n0) write(3) (u(i,j,k),i=1,m0),j=1,n0) end doend二进制数据 write
14、(*,2000) (v(i,j,1),i=1,针对wind850.grd二进制数据文件,如果给出如下数据说明文件,即可用GrADS绘图dset d:cvfwind850.grdundef -9.99E+33title NCEP/NCAR REANALYSIS PROJECTxdef 37 linear 60.000 2.500ydef 17 linear 0.000 2.500zdef 1 levels 850tdef 48 linear JAN1982 1movars 2v 1 99 v wind (m/s)u 1 99 u wind (m/s)endvarsCTL文件编写ctl文件针对wi
15、nd850.grd二进制数据文件,如果给出如下数据说编写gs文件reinitopen d:/cvf/wind850.ctlenable print d:/cvf/wind850-1.gmfset grads offset grid offset t 13set parea 1 10 1.5 7.5set xlopts 1 4 0.16set ylopts 1 4 0.16set xlint 10set ylint 10define uave1=ave(u,t=1,t=48,12)define vave1=ave(v,t=1,t=48,12)set gxout vectorset arrscl
16、0.5 10.0d uave1;vave1printdisable print;编写gs文件reinit编写gs文件reinitopen d:/cvf/wind850.ctl 打开二进制数据文件的文件enable print d:/cvf/wind850-1.gmf 打开存图文件set grads off 去掉画图角标set grid off 去掉网格线set t 13 设置固定于某个时次,以便绘制二维图形set parea 1 10 1.5 7.5 设置绘图区域set xlopts 1 4 0.16 设置x轴标记set ylopts 1 4 0.16 设置y轴标记set xlint 10 设置x轴标记间隔单位set ylint 10 设置x轴标记
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年全国汽车知识技能大赛理论知识竞赛题库及答案
- 2025年行政管理经济法试题及答案解析
- 2025年二级消防工程师模拟练习及答案
- 2025年低压电工作业安全生产模拟考试题库及答案
- 2025年安徽初级保育员理论及技能知识竞赛题库及答案
- 2025年高校教师岗前培训高等教育心理学知识竞赛考试题库80题及答案
- 2025年传染病疫情信息报告管理培训考核试题及答案
- 语音合成系统的人机交互设计原则考核试卷
- 医药行业风险管理中的新兴技术影响分析考核试卷
- 专科护理人文关怀教育考核试卷
- DB32∕T 4327-2022 化工消防救援站建设规范
- 道路清扫合同
- 会-解盾构区间施工测量监理实施细则(终)
- DB37∕T 5081-2016 住宅厨房卫生间排烟气系统应用技术规程
- 乒乓球赛程编排方法
- FZ∕T 63013-2021 涤纶长丝织带
- 单跨转子实验台说明书
- 雅思翻译练习
- 与客户接触的六个阶段
- 上海正高级教师职务任职资格申请表
- t+amusicplayer说明书
评论
0/150
提交评论