气象程序设计及绘图期末复习

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

程序设计
绘图
FORTRAN语言 GrADS
分析
气象数据资料
FORTRAN程序设计
• 基Leabharlann Baidu程序结构
program main implicit none integer real character complex logical
主程序开始 不采用I-N规则
变量(包括数组)申明 及初始化
FORTRAN程序设计
例题:
利用1951-2010年1月蒙古高压强度指数(data/h-p.dat)(备注:需要
标准化以后使用)和1951-2010年1月中国160站气温资料 (data/t1601.dat)(备注:实际存放的资料是61年的,只读60即可, 需要标准化以后使用),根据3.5节计算1月蒙古高压强度与中国160 站气温的相关关系。要求以“*.dat”和“*.grd”两种格式保存19512010年1月蒙古高压强度与我国气温的同期相关数据。
外部子例行程序
子例行程序不仅可求一个值,还可求多个值或 不求值而执行某种操作,因此具有更广泛的用途
定义形式:
表示子例行程序定义开始
SUBROUTINE 子例行程序名([虚参1,虚参2,…])
说明语句
执行语句

END [SUBROUTINE [子例行程序名]]
表示子例行程序定义结束
调试FORTRAN程序
rxy
1
n
n t 1
( xt

x )( yt

y)
1
n
n t 1
( xt

x )2. 1 n
n
(yt
t 1
y )2
1 n (x x)
(y y)
integer,parameter:: n=60,start=1951
!character*10 char1 注释
integer i
• 语法错误(syntax error)。如拼写错或标点符号错,在编译时被 编译器检测出来;
• 运行错误(run-time error)。当程序执行时企图做非法运算操作, 则发生运行错误(例如,除以0)。这些错误导致程序执行时异 常中断。
• 逻辑错误(logical error)。程序能够正常编译和运行,但结果是 错误的。
二进制数据:
open(文件号,file=‘路径及文件名’,form=‘binary’ read(文件号,格式)。。。。。 write(文件号,格式)。。。。
End [program main]
主程序结束
程序若 一干 个子 主程 程序 序(prog需ra要m)被调用 程序入口
子程序包括:函数子程序(function) 子例行程序(subroutine)
close(2)
do i=1,160

do j=1,60

b(j)=c(i,j)

enddo

call COR2 ( n, a, b, co)
调用子程序
write(3,'(f12.5)') co
输出数据
write(4) co !,colev !returns co=0.9548129; colev=0.1952
enddo
子程序又分为:外部子程序和内部子程序
外部函数子程序
由一个实现某种特定功能的子程序组成,调用程 序单元调用它得到一个函数值
定义形式:
表示函数子程序定义开始
[类型说明] FUNCTION 函数名([虚参1,虚参2,…])
说明语句
执行语句
。。。
END [FUNCTION [函数名]]
表示函数子程序定义结束
期末复习
气象程序设计及绘图
• 学习目标
通过学习,了解FORTRAN语言的特点,基本成 份及使用方法,具有阅读程序、编制程序、调试 程序的基本能力。在此基础上,根据气象数据处 理与分析的特点,切实地掌握用GrADS软件对数 据进行图形化显示的基本方法,初步具备编程绘 图的能力。
《气象程序设计及绘图》专业基础课
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)
• 基本程序结构
program main implicit none integer:: real:: character:: complex:: logical::
主程序开始 不采用I-N规则
变量(包括数组)申明 及初始化
注意:character类型的使用方法
赋值语句 data 变量列表/初值列表/ read *,……… open(文件号,file=‘路径及文件名’) read(文件号,格式)。。。。
主程序变量申明
!integer(4) station,nstation
real a(n), b(n), c(160,n),co
open(1,file='d:\aa\test1\h-p.dat',form='formatted')
open(2,file='d:\aa\test1\t1601.txt',form='formatted')
R = MAX ( INT ( ( E2 - E1 + E3 ) / E3 ),0 )
DO WHILE (逻辑表达式) 循环体
END DO
可以相互嵌套
print *,输出列表
write(*,*) 输出列表
输出数据
open(文件号,file=‘路径及文件名’)
write(文件号,格式)。。。。
注意:带格式的输入输出方式
顺序结构 选择结构 循环结构
程序算法
获取数据
单分支
双分支
多分支
IF(条件) THEN IF块
END IF
IF(条件)THEN IF块
ELSE
IF(条件1)THEN 块1
ELSE IF(条件2)THEN
ELSE块
块2
END IF
ELSE IF(条件3)THEN
SELECT CASE (选择表达式) CASE(控制表达式1)
块3
.
块1 CASE(控制表达式2)
块2
.
.
逻辑if语句
IF(条件) 语句
.
ELSE IF(条件n)THEN 块n
[ELSE
CASE(控制表达式n) 块n
[CASE DEFAULT
块n+1]
END IF
默认块]
END SELECT
可以相互嵌套
DO 循环变量 = E1,E2,E3 循环体
END DO
相关文档
最新文档