气象信息系统工程 - 实习篇
date
Jul 3, 2024
slug
fortran-2
status
Published
tags
fortran
summary
type
Post
实习一 Fortran文件的读取与处理
实习1a:已知1951-2010年1月蒙古高压强度指数、面积指数、经度指数、纬度指数序列资料分别为p.dat、s.dat、lon.dat和lat.dat。利用Fortran语言编写程序,调用子程序计算这四个指数的气候态(均值)、变率(均方差)和距平值,并将这四个指数的均值和变率写入十进制文件mh1.dat和二进制文件mh1.grd,将这四个指数的距平值写入十进制文件mh2.dat和二进制文件mh2.grd. 文件均保存于sx01文件夹下。
实习1b:已有实习生成的1951-2010年1月蒙古高压强度指数、面积指数、经度指数、纬度指数这四个指数的距平值二进制文件mh2.grd,数据描述文件mh2.ctl 保存于sx01文件夹下。利用Grads下列语句输出这四个指数距平的一维时间分布图,并逐一截屏保存。
- 编写fortran文件生成数据
- 编写gs文件
mh1.ctl
- 已有实习生成的1951-2010年1月蒙古高压强度指数、面积指数、经度指数、纬度指数这四个指数的距平值二进制文件
mh2.grd
,数据描述文件mh2.ctl
保存于sx01文件夹下。
- 利用Grads基本语句输出这四个指数距平的一维时间分布图,并逐一截屏保存。
mh2.ctl
- 编写gs文件
实习二 数据文件的转换及数据描述文件的建立、基本操作命令
现有sx02文件夹下有十进制月平均风场数据:200hPa纬向风u200.dat、经向风v200.dat;850hPa纬向风u850.dat、经向风v850.dat。时间范围:2002.1-2005.12共48个月,经纬度范围:60-150°E,0-40°N,分辨率为2.5°×2.5°。
(1)编写Fortran程序,将十进制数据资料文件转换成二进制月平均风场文件:uv.grd;
(2)写出二进制文件相应的数据描述文件:uv.ctl;
(3)利用GrADS基本操作命令显示该地区显示2002年7月850hPauv风场和200hPa uv风场,并逐一保存图形。
编程时数组大小:
- X方向格点数:(初始经度-结束经度)/格距+1
(150-60)/2.5+1=37
- Y方向格点数:(初始纬度-结束纬度)/格距+1
(40-0)/2.5+1=17
- Z方向层数: u、v为850、 200hPa ,Z为2
- T时次:月平均资料,4年,共48个月
sx02.f90
uv.ctl
uv-1.gs
uv-2.gs
实习三 GrADS绘图要素的设置和基础绘图命令
(1)一维单变量绘图
1951-2010年1月蒙古高压强度指数、面积指数、经度指数、纬度指数这四个指数的距平已按照GrADS要求写入二进制文件
mh2.grd
,其数据描述文件为mh2.ctl
,mh2.grd
和mh2.ctl
保存于sx03文件夹下。请将1951-2010年强度指数距平和面积指数距平绘制为折线,将经度指数距平和纬度指数距平绘制为直方图。(2)二维单变量绘图
NCEP/NCAR再分析纬向风月平均数据的二进制数据uwnd.mon.mean.nc存于sx03文件夹下。绘制2023年7月120 °E、 0-90N 、1000~100hPa纬向风的纬度-层次剖面图,并以120 °E为标题,将图形保存为u.png。
mh2.gs
u.gs
实习四 GrADS 变量与函数及描述语言的应用
sx04文件夹下有:
全球月平均降水数据pr_wtr.eatm.mon.mean.nc,1层。
时间从1948年1月开始,水平格距 2.5*2.5
- nc文件打开:sdfopen filename.nc
- nc文件的维数设置、格距、缺测值的查询:
- q ctlinfo
编写gs文件提取1951年至2010年 60年 7月降水数据pre7.grd
编写
pre7.grd
的数据描述文件pre7.ctl
;- 计算7月降水的60年平均值,绘制70-140ºE、15-55ºN区域降水的多年平均值,并在我国降水带大值中心(117.5E,32.5N)标注字母W,存为.png图形
4)计算1951年至2010年 7月降水距平,绘制1998年7
月全球降水距平场,要求:
A、正距平区填色,画色标;
B、设置等值线线间隔为2;
C、保存为.png图形,白底。
注:1998年为强厄尔尼诺年次年夏天。2000年夏天为
拉尼娜年次年夏天。有兴趣的同学可以再绘制2000年
7月降水距平,与1998年7月降水距平对比看看。
实习五 Nino3.4海温指数与全球降水相关分析
1、所用数据:
- 1951年1月至2013年12月Nino3.4区(热带太平洋西经170度西经120度、北纬5度南纬5度)区域平均海温指数资料Nino34.txt。共有63行数据,每行数据第一个数字为年份,后面12个数字为该年1-12月的海温指数;
- 1951年至2010年 60年7月全球降水数据pre7.grd,x、y方向格点数分别为144和73,水平格距2.5*2.5,为地面变量。相应ctl文件为pre.ctl。
2、实习要求:
1) 用Fortran编写corr.grid.f90文件,计算1951-2010年 1月Nino34海温指数与7月降水的相关系数,计算结果保存于corr.txt和corr.grd 文件中;
2) 编书写corr.grd 的数据描述文件corr.ctl;
3) 编写corr.gs文件,绘制1951-2010年 1月Nino34海温指数与7月降水的相关系数等值线图,通过95%置信度检验的区域填色(60年相关系数95%、99%置信度检验的临界值分别为0.25和0.325)。
2、
ctl
文件3、gs 文件