气象程序设计及绘图期末复习ppt.ppt_第1页
气象程序设计及绘图期末复习ppt.ppt_第2页
气象程序设计及绘图期末复习ppt.ppt_第3页
气象程序设计及绘图期末复习ppt.ppt_第4页
气象程序设计及绘图期末复习ppt.ppt_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

期末复习 气象程序设计及绘图 学习目标 通过学习 了解FORTRAN语言的特点 基本成份及使用方法 具有阅读程序 编制程序 调试程序的基本能力 在此基础上 根据气象数据处理与分析的特点 切实地掌握用GrADS软件对数据进行图形化显示的基本方法 初步具备编程绘图的能力 气象程序设计及绘图 专业基础课 程序设计 FORTRAN语言 GrADS 绘图 气象数据资料 分析 基本程序结构programmainimplicitnoneintegerrealcharactercomplexlogical FORTRAN程序设计 主程序开始 不采用I N规则 变量 包括数组 申明及初始化 基本程序结构programmainimplicitnoneinteger real character complex logical FORTRAN程序设计 主程序开始 不采用I N规则 变量 包括数组 申明及初始化 注意 character类型的使用方法 赋值语句data变量列表 初值列表 read open 文件号 file 路径及文件名 read 文件号 格式 顺序结构选择结构循环结构 获取数据 程序算法 单分支IF 条件 THENIF块ENDIF 双分支IF 条件 THENIF块ELSEELSE块ENDIF 多分支IF 条件1 THEN块1ELSEIF 条件2 THEN块2ELSEIF 条件3 THEN块3 ELSEIF 条件n THEN块n ELSE块n 1 ENDIF 逻辑if语句IF 条件 语句 SELECTCASE 选择表达式 CASE 控制表达式1 块1CASE 控制表达式2 块2 CASE 控制表达式n 块n CASEDEFAULT默认块 ENDSELECT 可以相互嵌套 DO循环变量 E1 E2 E3循环体ENDDO R MAX INT E2 E1 E3 E3 0 DOWHILE 逻辑表达式 循环体ENDDO 可以相互嵌套 print 输出列表write 输出列表open 文件号 file 路径及文件名 write 文件号 格式 输出数据 注意 带格式的输入输出方式 二进制数据 open 文件号 file 路径及文件名 form binary read 文件号 格式 write 文件号 格式 End programmain 主程序结束 程序入口 需要被调用 子程序包括 函数子程序 function 子例行程序 subroutine 子程序又分为 外部子程序和内部子程序 外部函数子程序 由一个实现某种特定功能的子程序组成 调用程序单元调用它得到一个函数值 定义形式 类型说明 FUNCTION函数名 虚参1 虚参2 说明语句执行语句 END FUNCTION 函数名 表示函数子程序定义开始 表示函数子程序定义结束 外部子例行程序 子例行程序不仅可求一个值 还可求多个值或不求值而执行某种操作 因此具有更广泛的用途 定义形式 SUBROUTINE子例行程序名 虚参1 虚参2 说明语句执行语句 END SUBROUTINE 子例行程序名 表示子例行程序定义开始 表示子例行程序定义结束 调试FORTRAN程序 语法错误 syntaxerror 如拼写错或标点符号错 在编译时被编译器检测出来 运行错误 run timeerror 当程序执行时企图做非法运算操作 则发生运行错误 例如 除以0 这些错误导致程序执行时异常中断 逻辑错误 logicalerror 程序能够正常编译和运行 但结果是错误的 例题 利用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月蒙古高压强度与我国气温的同期相关数据 2020 3 17 15 可编辑 integer parameter n 60 start 1951 character 10char1integeri integer 4 station nstationreala n b n c 160 n coopen 1 file d aa test1 h p dat form formatted open 2 file d aa test1 t1601 txt form formatted open 3 file d aa test1 mh t 1 dat form formatted open 4 file d aa test1 mh t 1 grd form binary read 1 a i i 1 n close 1 read 2 c i j i 1 160 j 1 n close 2 doi 1 160doj 1 60b j c i j enddocallCOR2 n a b co write 3 f12 5 cowrite 4 co colev returnsco 0 9548129 colev 0 1952enddoclose 3 close 4 end 主程序变量申明 获取数据 循环嵌套 调用子程序 输出数据 主程序结束 注释 求相关系数rsubroutineCOR2 n a b co integernrealcoreala n b n 标准化a i b i suma sum a 1 n nsumb sum b 1 n nab 0a2 0b2 0doi 1 nab ab a i suma b i sumb a2 a2 a i suma 2b2 b2 b i sumb 2enddoco ab sqrt a2 b2 print coreturnend 子程序开始 子程序变量申明 子程序算法 子程序结束 准备数据文件 包括前期数据处理 编写及检查数据描述文件 ctl 设定图样进行绘图 可编写脚本文件 gs 保存结果 GrADS绘图流程 在 写字板 或者 记事本 中编写 现有ASCII码 十进制数据格式 数据资料文件u850 dat和v850 dat 其空间范围 60 150 E 0 40 N 层次 u v为850Pa 时段 1982 1 1985 12 分辨率 2 5 2 5 数据排放顺序满足GrADS要求 要求编写出将这2个文件转换成1个二进制 binary 文件的Fortran程序 例题6 6 GrADS要求数据如何排放 v850 dat数据内容 时间说明 PROGRAMPROCESSINGIMPLICITnoneinteger parameter m0 37 n0 17 tim 48realv m0 n0 tim u m0 n0 tim integeri j kopen 1 file d cvf v850 dat open 2 file d cvf u850 dat dok 1 timread 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 enddo1000format 2i7 2000format 37F6 2 读时间说明 准备数据文件 利用fortran将十进制文件转换为二进制文件 十进制数据 循环顺序 经度 纬度 层次 时间 write 2000 v i j 1 i 1 m0 j 1 n0 open 3 file d cvf wind850 grd form binary dok 1 timwrite 3 v i j k i 1 m0 j 1 n0 write 3 u i j k i 1 m0 j 1 n0 enddoend 二进制数据 针对wind850 grd二进制数据文件 如果给出如下数据说明文件 即可用GrADS绘图dsetd cvf wind850 grdundef 9 99E 33titleNCEP NCARREANALYSISPROJECTxdef37linear60 0002 500ydef17linear0 0002 500zdef1levels850tdef48linearJAN19821movars2v199vwind m s u199uwind m s endvars CTL文件 编写ctl文件 编写gs文件 reinit opend cvf wind850 ctl enableprintd cvf wind850 1 gmf setgradsoff setgridoff sett13 setparea1101 57 5 setxlopts140 16 setylopts140 16 setxlint10 setylint10 defineuave1 ave u t 1 t 48 12 definevave1 ave v t 1 t 48 12 setgxoutvector setarrscl0 510 0 duave1 vave1 print disableprint 编写gs文件 reinit opend cvf wind850 ctl 打开二进制数据文件的文件 enableprintd cvf wind850 1 gmf 打开存图文件 setgradsoff 去掉画图角标 setgridoff 去掉网格线 sett13 设置固定于某个时次 以便绘制二维图形 setparea1101 57 5 设置绘图区域 setxlopts140 16 设置x轴标记 setylopts140 16 设置y轴标记 setxlint10 设置x轴标记间隔单位 setylint10 设置x轴标记间隔单位 defineuave1 ave u t 1 t

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论