
wrf模式
运动会投稿词-汉语拼音音标
2023年2月20日发(作者:带座外球面轴承)WRF模式运行指南
(2006.3.13~2006.3.22)
国家气象中心数值预报室
(内部资料请勿扩散)
二○○六年三月十三日
目录
模式简介……………………………………………………..1
模式的安装……………..……………………………………..2
2.1安装环境………………….……………………………………..2
2.2模式源程序…………………...…………………………………..2
2.3NetCDF函数库的安装……………………………………………2
2.4标准初始化(SI)的安装…………………………………………6
2.5WRF模式的安装……………….……………….….…………..…9
模式与T213模式嵌套…………………………….…………...17
3.1嵌套方案……………………………………………………….17
3.2嵌套程序设计………………………………………………….17
3.3编译嵌套程序…………………………………………………..21
3.4嵌套的实现…………………………………………………….22
模式系统的运行……………...………………………………..29
4.1理想大气方案………………………………………………..….29
4.2真实大气方案………………………………………………….32
模式系统作业卡……………...………………………………..47
5.1源程序………………………………………………………..….47
5.2真实大气方案………………………………………………….48
6.模式结果的显示处理……………………………….……………..61
6.1Vis5D格式……….…………………….………………………..61
6.2MICAPS格式……………………………….……………………62
6.2GrADS格式……….…………………….……………………...65
附录模式参数配置说明…………………….……………….68
附录2.T213场库参数表……………………………………………..78
word格式-可编辑-感谢下载支持
WRF模式系统安装/调试技术报告
数值预报室邓莲堂
模式简介
WRF(WeatherResearchForecast)模式系统是由许多美国研究部门及大学的
科学家共同参与进行开发研究的新一代中尺度预报模式和同化系统。WRF模式
系统的开发计划是在1997年由NCAR中小尺度气象处、NCEP的环境模拟中心、
FSL的预报研究处和奥克拉荷马大学的风暴分析预报中心四部门联合发起建立
的,并由国家自然科学基金和NOAA共同支持。现在,这项计划,得到了许多
其他研究部门及大学的科学家共同参与进行开发研究。WRF模式系统具有可移
植、易维护、可扩充、高效率、方便的等诸多特性,将为新的科研成果运用于业
务预报模式更为便捷,并使得科技人员在大学、科研单位及业务部门之间的交流
变得更加容易。
WRF模式系统将成为改进从云尺度到天气尺度等不同尺度重要天气特征预
报精度的工具。重点考虑1-10公里的水平网格。模式将结合先进的数值方法和
资料同化技术,采用经过改进的物理过程方案,同时具有多重嵌套及易于定位于
不同地理位置的能力。它将很好的适应从理想化的研究到业务预报等应用的需
要,并具有便于进一步加强完善的灵活性。
WRF模式作为一个公共模式,由NCAR负责维护和技术支持,免费对外发
布。第一版的发布在2000年11月30日。随后在2001年5月8日,第二次发布
了WRF模式,版本号为1.1。2001年11月6日,很快进行了模式的第三次发布,
只是改了两个错误,没有很大的改动,因此版本号定为1.1.1。直到2002年4月
24日,才正式第四次发布,版本号为1.2。同样,在稍微修改一些错误后,2002
年5月22日第五次版发布模式系统,版本号为1.2.1。原定于2002年10月份左
右的第六次发布,直到2003年3月20才推出,版本号为1.3。2003年11月21
日进行了更新。2004年5月21日推出了嵌套版本V2.0。2004年6月3日进行
了更新。到2006年1月30日为止最新版本为2.1.2。
word格式-可编辑-感谢下载支持
2.WRF模式的安装
2.1安装环境
2.1.1硬件环境
WRF模式是一个多机型、跨平台、标准化的模式。可以在IBMAIX,SGI
IRIX,PCLINUX等机型上运行。
2.1.2软件环境
WRF模式的运行系统中的一般需要的安装软件环境包括:
UNIX(LINUX)操作系统
Perl5.003以上
Fortran程序编辑器(包括Fortran90和Fortran77编译器)
C程序编译器
NetCDF函数库,版本在3.3.1以上(必须包含Fortran77,Fortran90
以及C的程序调用接口)
MICAPS图形显示系统、VIS5D图形显示系统、GrADS或者RIP等
2.2模式源程序
WRF模式系统运行所需要的程序包括:
标准初始化(SI):WRF模式的数据前处理部分。可从写成GRIB码的
AVN数据文件中读取模式区域所需的数据,并插值
成WRF所需的变量场。
WRF模式:WRF模式的初始场/边界条件生成以及模式积分计算部分。
2.3NetCDF函数库的安装
2.3.1文件获取
目前,由于WRF模式的数据处理格式主要是应用较为常见的NetCDF数据
格式。因此,在安装WRF模式的标准初始化以及WRF主模式前,必须在操作
系统环境中先安装NetCDF程序包,生成NetCDF函数库。在运行的系统环境中,
如果没有安装NetCDF函数库,则必须自己安装。NetCDF程序包的下载地址为
/packages/netcdf/
从网站中,可以获得NetCDF的压缩程序包或者.Z。
2.3.2安装环境
不同平台要求也不一样,但必需有25兆的可用空间用来解压、编译和运行
测试。由于WRF模式的程序采用了C,Fortran77和Fortran90编写,所以也
要求操作平台具有FORTRAN77,FORTRAN90和标准C(或C++)编译器。
netCDF将会编译并测试相应的语言接口。
2.3.3指定编译环境
首先要选择并指定一个恰当的编译环境。如果需要,可设置CC,CFLAGS,
FC,FFLAGS,CXX,CXXFLAGS,F90和F90FLAGS中任何环境变量,
word格式-可编辑-感谢下载支持
以指明相应的编译环境。环境变量也就是用户外壳程序(shell)管理的参数,并
被shell程序用于运行应用程序(例如设置脚本程序)。一些环境变量的说明可参
见下表(表1)。
表1编译NetCDF的一些环境变量及其说明
变量描述Notes
CCC编译器
如果未指定,设置脚本程序将试图找出合适的C编译器,如:
cc,c89,xlc,orgcc。
FC
Fortran编译
器
(如果存在)
如果未指定,设置脚本程序将试图找出合适的Fortran90or
Fortran77编译器。如果不需要Fortran接口,则可将FC设
置为""。
F90
Fortran90编
译器
(如果存在)
如果未指定,设置脚本程序将试图找出合适的Fortran90编译
器。如果指定了Fortran90编译器,则不需要FC参数。如果
不需要Fortran90接口,则可将F90设置为""。
CXXC++编译器
如果未指定,设置脚本程序将试图找出合适的C++编译器。不
需要C++接口时,可将CXX设置为""。
CFLAGS
C编译器参
数选项
例如"-0"或"-g"
CPPFLAGS
C预处理参
数选项
例如"-DNDEBUG"是忽略声明部分的检测(assertion)
FFLAGS
Fortran编译
器参数选项
例如"-O"或"-g"
F90FLAGS
Fortran90
编译器参数
选项
例如"-O"或"-g"。如果未指定,则采用FFLAGS的值。
CXXFLAGS
C++编译器
标志
例如"-O"或"-g"
ARFLAGS
NMFLAGS
FPP
M4FLAGS
LIBS
FLIBS
混合参数选
项
在一些操作平台中可能用到这些参数中的一个或几个。
值得注意的是,如果不设置环境变量,那么配置脚本程序将会试图找出相应
合理的设置值。但在IBMSP机器上,如果用户不设置Fortran90的编译和编译
选项,那么配置脚本往往找不到正确的Fortran90编译器和编译选项,从而造成
NetCDF函数库中没有Fortran90的程序接口。
word格式-可编辑-感谢下载支持
环境变量也就是用户外壳程序(shell)管理的参数,并被shell程序用于运行应
用程序(例如设置脚本程序)。典型的环境变量有:
环境变量名变量值
USERsteve
HOME/home/steve
PATH/bin:/usr/bin:/home/steve/bin
执行命令行命令“env”,可得到当前环境中的环境变量列表。
定义和设置环境变量的方式取决于用户所用的外壳(Shell)类型。Csh类shell
(如csh、tcsh)用户设置方式如下:
setenvCCc89
setenvCPPFLAGS“-0-DNDEBUG”
而标准UNIXshell(例如sh、ksh、bash)用户要设置上面同样的环境变量,可
如下设置:
exportCC=c89
exportCPPFLAGS=”-0-DNDEBUG”
以上两种方式中,参数值中带有将值的各部分分开的空格分隔符时,双引号不能
省略。否则,参数值只是设置为所要取值得一部分。
标准shell用户还有一种额外的快捷方式为单一命令定义和设置环境变量。环境
变量可在命令行中定义和设置,并只在这一行中生效。例如:
exportFOO=foo
env|grepFOO
FOO=foo
FOO=barenv|grepFOO
FOO=bar
env|grepFOO
FOO=foo
测试系统时,环境变量及其赋值可列表式给出。标准UNIXshell用户可直
接使用标准语法。例如,标准shell用户可以用(以IBMSPAIX为例):
exportCC=xlcCPPFLAGS=-DNDEBUGCFLAGS=-OFC=f77
FFLAGS=-OCXX=xlCF90=xlf90F90FLAGS=-qsuffix=f=f90
在IBMAIXSP环境下,编译NetCDF所需要的一些相应的系统环境变量有:
CC=/bin/xlc
CPPFLAGS=-DNDEBUG
CFLAGS=-O
FC=/bin/xlf
FFLAGS=-O
F90=/bin/xlf90
F90FLAGS=-qsuffix=f=f90#Note:no"-O"option
CXX=/bin/xlC
CXXFLAGS=-O
因为有些机器的AIX系统在用F90编译器编译时,选用“-O”优化编译会产生
word格式-可编辑-感谢下载支持
错误信息为“1501-229Compilationendedduetolackofspace”的错误。通常是由
于编译时优化消耗内存太多,以至于超出计算机内存。解决方法之一是用ulimit
命令将数据段(data)、堆栈段(stack)以及内存段(memory)设置成足够大或
者设置成无限制(unlimited)。另一种解决方法就是,在设置F90编译选项时,
不要用“-O”优化选项。另外,如果要用64位模式编译程序,则除了在C和Fortran
编译选项中添加“-q64”外,还要设置以下环境变量:
ARFLAGS='-X64cru'
NMFLAGS='-X64'
2.3.4编译和安装NetCDF
要生成编译netCDF所需的Makefile文件,必须先运行配置脚本程序
(configure)。它存放在netCDF目录的src子目录中。
首先,选择安装的目录。用这个目录作为配置脚本程序参数“――prefix=”
的指定值。程序默认的安装目录(prefix参数值)是“..”,即将程序包安装在..
/bin,../lib和../man,这些目录是相对于netCDF的src/目录。
执行设置脚本格式如下:
./configure--prefix=目录名
这里“--prefix=...”是可选的;如果省略的话,程序将默认地将当前目录的父
目录“..”设为安装目录。
运行配置脚本程序时,程序会检测系统的与编译netCDF程序包相关的属性
设置。检测结果将会显示在标准输出设备上(如显示器)。
配置脚本程序还会创建一个记录文件“”。它包含了配置脚本程序
检测系统属性设置时发现的错误信息。由于系统检测可能会导致一些错误,因此
在记录文件中可能会记录一些错误信息。这些错误信息未必表明是有问题(严重
的错误标志会导致下一步编译“make”程序失败)。不过,记录文件中的编译器
不能启动的错误信息例外,这是一个编译环境的严重错误,必须改正,否则不会
产生相应编译环境的程序接口。
运行编译命令“make”。此命令将创建一个或多个netCDF库。它包括基本
的netCDF库“libsrc/libnetcdf.a”。如果系统有Fortran77或者Fortran90编译器,
那么Fortran接口程序会包含在此库中。如果系统有C++编译器,那么C++
接口程序会创建在库“cxx/libnetcdf_c++.a”中。命令创建的库还包括netCDF应
用程序库ncgen和ncdump。
如果第一步的编译通过,则可以用命令“maketest”来检验netCDF库和可
执行程序创建得正确与否。系统会建立和运行各种测试C、Fortran和C++的程
序,以及应用程序“ncdump”和“ncgen”。以“***”开头的输出显示行中,列
出了测试成功与否的信息。任何错误都会明确列出,并终止程序的运行。测试过
程中的编译器和连接器警告会被忽略掉。
如果编译和测试都正确,这时就可以安装程序库和可执行程序了。安装时,
运行命令“makeinstall”即可,它将连接系统的函数库和应用程序,安装到指定
的目录中。
在进行编译安装的时候,可以编写一个shell脚本程序。这样,在安装的时
候,只需执行这个批处理命令就行。这里给出一个在AIX系统上编译安装的例
子,比如取名为:
word格式-可编辑-感谢下载支持
makedistclean
exportCC='/usr/bin/xlc'
exportCPPFLAGS=-DNDEBUG
exportCFLAGS=-O
exportFC='/usr/bin/xlf90'
exportFFLAGS='-O3-qfixed'
exportF90FLAGS='-O3-qfree-qsuffix=f=f90'
exportF90='/usr/bin/xlf90'
exportCXX='/usr/bin/xlC'
exportCXXFLAGS=-O
configure--prefix=/u/wrf_xp/netcdf
make
maketest
makeinstall
2.3.5问题处理
(1)详细阅读本安装文档。
(2)转到netCDF的顶级目录下的源程序目录SRC。
(3)执行命令“makedistclean”,即使执行失败也不会造成什么错误。
(4)如果存在“”文件,则将它删除。
(5)按上面描述的方法设置相应的环境变量。
(6)重新执行配置脚本程序。
(7)执行命令“make”。
(8)执行命令“maketest”。
(9)执行命令“makeinstall”。
值得注意的是,设置和编译系统应该具有较新的“sh”shell、“make”程序
以及C和Fortran编译器。在曙光机器上,就存在Fortran90编译器版本比较陈旧,
不能编译后缀名为“.F90”的程序,导致运行配置脚本时,无法通过对Fortran90
编译器的检测,故不能生成Fortran90程序接口。
2.4标准初始化(SI)的安装
2.4.1文件和资料的获取
标准初始化是WRF模式的数据前处理部分,也是WRF模式的三维变分系
统建立使用之前为WRF模式提供初/边值的部分。SI主要的具有两大功能:
(1)模式区域的定义和创建
在这里,用户可以定义计算区域(投影参数,范围大小,区域位置等)。
根据这些定义设置,SI的“gridgen_”程序会产生一个名为“static”
的文件。它是NetCDF格式的文件,包含模式格点定义信息和一些静态数据
场(如地形、土地利用、土壤类型、月叶面积指数、经度和纬度等)。
(2)将数据插值到WRF模式的计算格点(包括水平方向和垂直方向)上,为WRF
模式提供初始场和边界条件。
这项功能是由“”和“”程序来完成。另外,
“”程序是将标准的GRIB码格式的数据文件转换成“”
word格式-可编辑-感谢下载支持
程序能识别的格式。也可以不用“”程序,而是直接将其他数据
格式的数据写成“”所能识别的格式即可。
安装之前,首先需从WRF模式的提供网站()下
载标准初始化(SI)的压缩程序包、AVN模式的试验数据
以及模式所需的静态数据(如地形、土地利用类型、土壤温度等):
greenfrac_-10分的植被指数数据
pctland_-10分的土地利用数据
soiltemp_-1度的全球深层土壤温度数据
topo_-10分的地形数据
另外,还应该下载如下四个文件夹及其其中的数据文件:
-landuse_30s/USGS24-categorylandusefractions
-soiltype_bot_30s/WMO/FAO16-category2-layersoiltypes
-soiltype_top_30s/
-topo_30s/
解压这些文件后,应该得到八个目录:
greenfrac_10m/
pctland_10m/
topo_10m/
soiltemp_1deg/
landuse_30s/
soiltype_bot_30s/
soiltype_top_30s/
topo_30s/
解压后的各目录中所得到的数据文件大多数都是10°×10°的数据块文件。用
户大约需要1.8Gb的磁盘空间来存储这些数据。其目录在WRFSI的参数配置文
件中需要做相应的设定。
2.4.2安装环境
编译时,要求系统装有Perl(5.003以上的版本)和make(3.75以上的版
本)。由于WRFSI模式的程序采用了C,Fortran77和Fortran90编写,所以也要
求操作平台具有FORTRAN77,FORTRAN90和标准C(或C++)编译器。SI
的数据格式采用了NetCDF的格式,要求系统安装了NetCDF函数库。
2.4.3SI的目录结构
在进行编译和运行SI前,有必要先熟悉SI的目录结构。在SI的编译和运
行当中,有四个“顶级”路径环境变量。这里“顶级”的意思是指每一个路径都
是一个总的路径,在其下面,编译和运行时可能会创建许多子目录。从这个意义
上来说,这四个目录分别相当于他们的子目录的顶级目录。这四个“顶级”目录
分别为:
(1)SRCROOT
这个目录在编译和安装SI时要用到,它是包含SI源程序代码的目录,也就
word格式-可编辑-感谢下载支持
是在用户解压tar源程序包时所创建的目录。比如用户解压
WRFSI_文件时,最终会创建一个名为wrfsi_20020328的
SRCROOT目录。当然,用户也可以根据自己的喜好,将其改为自己喜欢的名称。
通常,SRCROOT目录中包含用perl写成的安装脚本文件“install_”。编
译和安装时,应该提供大约10兆空间给SRCROOT目录。
(2)INSTALLROOT
这个目录是在编译和安装SI时用到。它是指定SI的安装目录,存放SI的
可执行程序(包括可执行的二进制文件和可执行的perl脚本)。在INSTALLROOT
目录下,安装后会创建三个目录:bin、data和etc。子目录bin中存放可执行的
二进制文件;data存放相关的配置信息文件;etc存放可执行的perl脚本文件。
INSTALLROOT和SRCROOT可以相同,这样的话,INSTALLROOT目录下的
三个子目录会创建在SRCROOT的目录下。如果INSTALLROOT目录缺省,则
系统会认为INSTALLROOT与SRCROOT相同。INSTALLROOT需要的空间大
约为5兆。
(3)MOAD_DATAROOT
这个目录在运行SI时使用。“MOAD”的意思是“所有计算区域之源(Mother
ofAllDomains)”,当然也包括以后嵌套技术实现后的粗/细网格。
MOAD_DATAROOT可以和INSTALLROOT以及SRCROOT相同,但将
MOAD_DATAROOT与这二者区分开来是非常有用的。它可以使用户在一次编
译后,处理不同的模式区域。MOAD_DATAROOT的默认目录为
INSTALLROOT/data。如果要设置不同路径时,只需将INSTALLROOT/data目录
下的cdl和static两个子目录拷贝到新的目录下即可。
(4)EXT_DATAROOT
这个目录在运行SI时使用。它是用来存放一些所谓的“外部”数据。数据
前处理程序grib_产生的结果文件就是存放的在这个目录的子目录extprd
目录下,而运行grib_程序时所创建的记录文件也放在这个目录的子目录
log下面。同样,当用户不用个grib_程序处理数据,而是自定义生成
程序所能识别的数据文件时,用户所生成的数据文件也应该放在这个
目录的extprd子目录下,插值程序则从这个子目录下读取输入数据。
对于1.3版本的SI来说,则这个目录已经被提供初始场(ANALPATH)和边界条
件(LBCPATH)的路径所代替。并且,在1.3版本中,初始场和边界条件可以分开,
使用两个不同的路径。
2.4.4编译和安装SI
编译和安装前,需查看一下“src/include/makefile_”文件。比如查
看编译器的名字(如FC),cpp选项(CPPFLAGS特殊情况下为
-DFORTRANDOUBLEUNDERSCORE,而有些计算机(比如AlphaUnix工作站)
则要求为-DFORTRANUNDERSCORE)。用户还需为gcc库函数指定确切的路径。
同时,用户还可以根据需要,设定一些相应的编译选项。
要求用户找到计算机安装netCDF和perl的路径。没有的话,则需必须下载
正确的版本进行安装。
word格式-可编辑-感谢下载支持
找到正确的netCDF和perl的安装路径后,SI最简单的安装就是在安装在当
前源代码相同目录下。这时只需设置一下环境变量NETCDF,将其指到包含
netCDF库函数的正确目录,例如:
setenvNETCDF/usr/local/netcdf-3.4
然后,输入以下安装命令:
perlinstall_
上面是最为简单的安装方式,但是如果用户没有找到netCDF和Perl的安装目录
的话,则会退出安装。因此,还可以根据用户选择配置来安装。执行安装命令时,
其他的一些参数选项如下:
perlinstall_
--srcroot=/u/denglt/wrfsi_src
--installroot=/u/denglt/wrfsi
--dataroot=/u/denglt/wrfsi/data
--path_to_netcdf=/usr/local/netcdf
--path_to_perl=/usr/local/perl
--machine=ibm>log
其中,srcroot是指提供安装WRFSI源代码的目录,installroot是指将要接受安
装WRFSI的目录,dataroot是以后运行SI程序的输出结果存放目录,如果用户
没有指定dataroot的目录,则会在安装目录($installroot)中创建一个“/data”
目录。特别注意的是,在perl命令行的续行符“”前,最好留一个空格。因为,
如果不留空格,而在后续行的第一列也没有空格的话,则程序会将两行不留空格
地合并起来,造成语法错误。
成功安装后,在安装目录下会创建一个名为“/bin”的目录,并且创建有如
下四个可执行文件:
-rwxr-xr-x1wrfhelpusers458752Apr1715:36grib_
-rwxr-xr-x1wrfhelpusers647168Apr1715:36gridgen_
-rwxr-xr-x1wrfhelpusers614400Apr1715:
-rwxr-xr-x1wrfhelpusers63120Apr1715:37siscan
-rwxr-xr-x1wrfhelpusers630221Apr1715:(v2.0以上才有)
-rwxr-xr-x1wrfhelpusers188416Apr1715:
其中,“grib_”文件是读取GRIB码数据文件,并将数据输出成“”
所能识别的数据格式。“gribgen_”是模式区域定义和创建的文件。在这
里,用户可以定义计算区域(投影参数,范围大小,区域位置等)。“”
和“”文件分别是水平和垂直插值程序,它们将用户的输入场插值到
“gridgen_”所创建的模式区域格点上,为WRF模式的运行准备初始
场和边条件。“siscan”是一个调试程序,它可以查看“”和“”
所产生的文件的详细信息。“”将“gridgen_”的运行结果
.d01提取其中一些物理量按照NetCDF的格式重新写了一遍成
wrfstatic_d01。
在进行编译安装的时候,可以编写一个shell脚本程序。这样,在安装的时
候,只需执行这个批处理命令就行。这里给出一个在AIX系统上编译安装的例
子,比如取名为:
#!/bin/sh
word格式-可编辑-感谢下载支持
my_homeroot=/u/wrf_xp/denglt/wrfsys
my_dataroot=/dgpfs/fs2/wrf_xp/ddeng/wrfsys
exportNETCDF="/u/wrf_xp/denglt/netcdf"
exportSOURCE_ROOT="$my_homeroot/sisrc"
exportINSTALLROOT="$my_homeroot/wrfsi"
exportDATAROOT="$my_dataroot/moad"
exportEXT_DATAROOT="$my_dataroot/moad/extroot"
exportTEMPLATES="$my_dataroot/moad/temp"
exportGEOG_DATAROOT="$my_dataroot/geog"
install_--install_ui=y
2.4.5问题处理
(1)如果失败,则可以用makerealclean来清除失败的安装程序。
(2)进入到src目录下的各个子目录(如grib_prep、hinterp、vinterp以及grid
等)下,输入make命令对单个目录进行编译。这样就相对容易找出编
译安装时的错误所在。
2.5WRF模式的安装
2.5.1安装环境
编译时,要求系统装有Perl(5.003以上的版本)和make(3.75以上的版本)。
由于WRFSI模式的程序采用了C,Fortran77和Fortran90编写,所以也要求操
作平台具有FORTRAN77,FORTRAN90和标准C(或C++)编译器。SI的数
据格式采用了NetCDF的格式,要求系统安装了NetCDF函数库。
因此,在编译WRF代码之前,应检查一下系统有没有安装netCDF。WRF
输入/输出(I/O)模块需要使用netCDF的数据格式。如果netCDF安装的目录不
是常用的系统目录(如/usr/local/),则必须指明netCDF函数库以及引用
(include/)函数库的路径。如果未安装,则必须先下载安装netCDF。
2.5.2安装程序的获取
WRF模式的安装程序是一个压缩程序包,可从WRF模式网站获得
()。1.2版的WRF压缩程序包名称为;
最近发布的2.1.2版的WRF压缩程序包名称为。
压缩程序包包括两部分,一部分是将输入数据生成WRF模式的输入场;另
一部分则是模式的积分计算。
2.5.3编译环境配置
WRF模式的顶级目录中包含配置脚本文件“configure”(使用标准shell:sh)
和一个编译脚本“compile”(使用Csh类shell:csh)。配置脚本在配置系统的时
候,也用到在arch目录中的Perl脚本(arch/),还用到了UNIX系统
的应用程序“make”。在arch子目录中包含了大量不同结构和设置选项的设置模
板文件“ts”。这些配置模板在配置脚本运行时用于在不同的运行
word格式-可编辑-感谢下载支持
平台上创建“”文件。在IBMAIXSP机器上,会启用设置模板文
件中的关于AIX的十一个配置模块:
ARCHAIX(single-threaded)
#FC=xlf_r
CC=xlc_r
......
ARCHAIX(single-threaded)(NONETCDF)
#FC=xlf_r
CC=xlc_r
......
ARCHAIXSM(OpenMP)
#OMP=-qsmp=noauto-qthreaded
OMPCPP=-D_OPENMP
......
ARCHAIXDM(RSL-IO,IBM-MPI)
#DMPARALLEL=1
OMP=
SFC=xlf_r
......
ARCHAIXDM(RSL-IO,IBM-MPI)(NONETCDF)
#DMPARALLEL=1
......
ARCHAIXDM/SM(RSL-IO,IBM-MPI,OpenMP)
#DMPARALLEL=1
OMP=-qsmp=noauto-qthreaded
......
word格式-可编辑-感谢下载支持
这十一个配置模块分别对应着不可嵌套串行编译、不可嵌套OpenMP并行
编译、可嵌套带RSL_LITE库MPI方式并行编译、可嵌套带RSL库MPI方式并
行编译、带RSL和HDF5库可嵌套MPI方式并行编译、带RSL库可嵌套MPI
和OpenMP方式并存的并行编译、带RSL和MCEL库MPI并行编译、带RSL
库与ESMF耦合不可嵌套MPI方式编译、不用MPI但带RSL库可嵌套串行编译
以及带RSL库可嵌套OpenMP方式并行编译。每一个模块都设置了对应的WRF
模式的编译器配置、编译选项、编译规则等。
进行WRF的编译环境配置时,进入WRF模式的顶级目录中,键入
“./configure”。假设设置脚本可以找到相应版本(5.004或更高版本)的Perl程
序,那么设置文件“arch/ts”中的模板将会被扫描检测,提取相
应的配置模块信息,并且会列出一个选择菜单共用户选择:
$configure
checkingforperl5...no
checkingforperl...found/usr/bin/perl(perl)
WilluseNETCDFindir:/usr/local/netcdf
------------------------------------------------------------------------
Plea lectfromamongthefollowingsupportedplatforms.
(single-threaded,nonesting)
(OpenMP,nonesting)
-Parallel(RSL_LITE,IBM-MPI,Allowsnesting)
-Parallel(RSL,IBM-MPI,allowsnesting)
-Parallel(RSL,IBM-MPI,allowsnesting)(PARALLELHDF5)
-Parallel(RSL_LITE,IBM-MPI,Allowsnesting)(PARALLELHDF5)
-Parallel/SM-Parallel(notrecommended)(RSL,IBM-MPI,OpenMP,allowsnesting)
-Parallel(RSL,IBM-MPI,MCEL)May2003,EXPERIMENTAL
-ParallelESMF(RSL,IBM-MPI,ESMFcoupling,nonesting)EXPERIMENTAL
(single-threaded,nestingusingRSLwithoutMPI)
(OpenMP,nestingusingRSLwithoutMPI)
Enterselection[1-11]:
用户输入一个1~11的整数,然后按回车。如果选择有效,则所作的选择和
提示符会显示出来。用户选择结束后,正常运行脚本程序时,会在顶级目录中创
建文件“”,并退出程序,回到操作系统。如果在选择时要退出设置
脚本程序,用shell的中断命令即可(如按“Control-C”)。
配置脚本“configure”会试图在编译主机上查找netCDF函数库以及引用文
件。也可通过设置环境变量NETCDF来强制定义到系统中安装netCDF的正确目
录。如果没有设置环境变量,而设置脚本也没有找到netCDF,那么程序将会要
求用户输入一个路径。如果所有这些尝试都失败的话,程序将尝试以没有netCDF
的状态来进行编译;不过,由于当前版本的程序只能用netCDF的输出/输入接口,
所以必然会造成程序的运行失败。
模式目录中还提供了用于卸载的清除程序clean(Csh类shell脚本)。安装失
败时,可以使用这一程序来恢复到最初的状态。当未指定任何参数时,清除程序
word格式-可编辑-感谢下载支持
“clean”将删除src目录中的目标文件(*.o)以及编译时产生的一些中间文件,
文件“”会保留。当指定“-a”为“clean”的参数时,则会连同文
件“configure”以及一些在“external”目录中的库函数一起删除。所以,用带
参数“-a”的清除命令,则会将模式恢复到模式的安装最原始的状态,而文件
“”中的一些修改信息都会丢失。(注意,清除程序并不会将run或
test子目录中的数据文件或可执行文件删除掉)。
在“”创建后,还可以根据需要来修改编译选项。值得注意的
是,WRF模式可实时配置计算范围大小,处理器数量,以及其他选项,并且仅
需要在运行程序之前通过修改文件“”即可。而针对这些选项设置,
并没有修改文件“”的必要。只是在编译器、编译选项或者编译规
则需要变动时,才有必要对“”文件进行修改。
在WRF模式调试运行过程中,发现由于WRF模式采用动态分配数组的方
式来分配模式中的数组单元,因此对计算机的逻辑内存、堆栈段内存以及数据段
内存开销较大。在IBMSP上编译时,默认的内存设置可能满足不了模式计算时
的内存需求。而“”中没有设置内存编译选项(-bmaxdata,-bmaxstack
和-qmaxmem),这就需要用户对其进行修改。通常将他们的限制值设置的稍微大
些比较好。例如,可以将“”的原始设置:
FCBASEOPTS=-qarch=auto-qfree=f90-qzerosize-qnosave
-qmaxmem=-1-qspill=20000$(FCDEBUG)$(OMP)
......
LDFLAGS=
......
wrfio_nf:
(cd../external/io_netcdf;makeNETCDFPATH=/u/denglt/netcdf
FC="$(SFC)$(FCDEBUG)-qarch=auto-qfree=f90-qzerosize
-qnosave";/bin/cpwrf_io__status_codes.h../../inc)
wrfio_int:
(cd../external/io_int;
makeCC=$(CC)FC="$(SFC)$(FCDEBUG)-qarch=auto
-qfree=f90-qzerosize-qnosave"alldiffwrf)
solve_interface.o:solve_interface.F
$(RM)$@
$(CPP)-I../inc$(CPPFLAGS)$*.F>$*.f
$(FC)-c-qfree=f90-qspillsize=32767-I.$(MODULE_DIRS)$*.f
修改为:
word格式-可编辑-感谢下载支持
FCBASEOPTS=-qarch=auto-qfree=f90
-bmaxdata:0x80000000-bmaxstack:0x10000000-qzerosize-qnosave
-qmaxmem=-1-qspill=20000$(FCDEBUG)$(OMP)
......
LDFLAGS=-bmaxdata:0x80000000
-bmaxstack:0x10000000-qmaxmem=-1
......
wrfio_nf:
(cd../external/io_netcdf;makeNETCDFPATH=/u/denglt/netcdf
FC="$(SFC)$(FCDEBUG)-qarch=auto-qfree=f90
-bmaxdata:0x80000000-bmaxstack:0x10000000-qmaxmem=-1
-qzerosize-qnosave";/bin/cpwrf_io_flags.h
wrf_status_codes.h../../inc)
wrfio_int:
(cd../external/io_int;
makeCC=$(CC)FC="$(SFC)$(FCDEBUG)-qarch=auto
-qfree=f90-bmaxdata:0x80000000-bmaxstack:0x10000000
-qmaxmem=-1-qzerosize-qnosave"alldiffwrf)
solve_interface.o:solve_interface.F
$(RM)$@
$(CPP)-I../inc$(CPPFLAGS)$*.F>$*.f
$(FC)-c-qfree=f90-bmaxdata:0x80000000-bmaxstack:0x80000000
-qmaxmem=-1-qspillsize=32767-I.$(MODULE_DIRS)$*.f
由于以上的修改,在运行清除程序clean后会被自动删除掉,造成修改信息
丢失。有鉴于此,用户除了修改外,还可以直接修改arch子目录
中的ts文件。找到ts文件中与AIX相关的十一个
配置模块,按在中的修改方法一样修改。这样做好修改后,以后的
每次清除编译环境重新配置编译环境时,都不会丢失修改好的信息。
在编译1.3版时,发现有些程序在选用“优化”编译时,往往会编译很慢,
甚至会由于优化消耗内存,造成内存不足后而导致编译失败。因此,一种解决方
法是可以在编译选项中去掉优化选项“-O2”;另一种解决方法就是将优化编译时
耗时很长或者耗内存很大的程序加入到优化的编译规则中。这一修改,也可以在
arch子目录中的ts中进行。在IBMSP2机器上,要添加的的目标
文件有:
module_io_e_si_e_io_e_domain.o
module_e_e_initialize_b_wave.o
module_initialize_hill2d_e_initialize_quarter_ss.o
word格式-可编辑-感谢下载支持
module_initialize_squall2d_e_initialize_squall2d_y.o
module_initialize_e__domain.o
mediation_force_tion_interp_domain.o
mediation_feedback__interface.o
当文件中的ARCHFLAG标志参数包含-DDM_PARALLEL参
数值,并且连接好相应的消息传递库函数时,可用分布式内存并行机制进行编译。
目前连接库只有一种可供选择:external/RSL/RSL/librsl.a。此时,其他一些必须
设置生效的参数值包括:-DWRF_RSL_IO和_DRSL。CFLAGS参数必须取有
-DWRF_RSL_IO,-DMAXDOM_MAKE=$(MAX_DOMAINS),
DMAXPROC_MAKE=$(MAX_PROC),DMAXPROC_MAKE=$(MAX_PROC),
-I../external/RSL/RSL。在设置文件arch/ts的用于设置分布式内存
并行编译的模板中包含了上面这些参数值。而在文件中设置相应的
编译标志参数时,就可以用共享式内存并行机制来进行编译。内存共享式并行机
制采用OpenMP线程形式。
2.5.4编译代码
在配置完编译环境变量之后,就可以输入编译命令“compile”进行程序代
码编译了。首先,输入“compile”,则会出现以下帮助选项:
Usage:
compilewrfcompilewrfinrundir
testcases(seeREADME_test_cases):
compileem_b_wave(欧拉质量坐标斜压波方案)
compileem_grav2d_x(欧拉质量坐标重力波方案)
compileem_hill2d_x(欧拉质量坐标二维钟形山体方案)
compileem_quarter_ss(欧拉质量坐标三维超级单体云体方案)
compileem_real(欧拉质量坐标真实大气方案)
compileem_squall2d_x(欧拉质量坐标x-z平面二维飚线方案)
compileem_squall2d_y(欧拉质量坐标y-z平面二维飚线方案)
compileexp_real(真实大气试验方案)
compilenmm_real(欧拉高度坐标真实大气方案)
compile-h(帮助信息)
上面的帮助信息里,列出了目前WRF模式中可以编译运行的方案选择。其
中em表示“欧拉质量坐标”模式动力框架。当模式从一个方案转到其他方案时,
必须重新编译。重新编译后,不变,但初始化程序(比如和
)会有所不同。除了“nmm_real”和“em_real”两个编译方案是真实大
气方案外,其他方案都是用理想数据进行大气模拟试验的方案。
编译时,输入带参数的编译命令“compile”,命令格式为:
$compilecase_name
比如说要编译质量动力框架下的二维飚线方案时,则可键入命令:
$compileem_squall2d_x
然后,编译程序启用注册机制:在“tools/directory”目录中的c程序会根据
文件Registry/Registry中的列表内容创建文件,放在inc目录中。然后,编译程
word格式-可编辑-感谢下载支持
序会编译一些源程序目录中的源代码,产生目标文件“.o”以及一些中间文件(如
“.f”)。注意,其中目录“frame/”中的一个源代码文件
(“frame/module_state_description.F”)不是随模型源程序一起发布的,而是在编
译时由注册机制自动创建的。如果想要在下一次编译时强制重新运行注册机制,
则将文件“frame/module_state_description.F”移除掉即可。
成功编译后,会产生两个可执行文件“”和“”,放置目录为
“main/”,并且在目录“test/em_squall2d_x”中有他们的连接文件。对于每一个不
同理想大气试验方案,都会不同,这是因为它们建立方案时是编译了不
同的模块“module_initialize”。如果用户想修改试验方案,则需对目录“dyn_em/”
或者“dyn_eh/”中的“module_initialize”进行修改。可以改变它们的初始状态,
比如边界环境、热力湍流(thermalbubble)、模式层数以及地形等。如果模式动
力框架不同,那么“”也会不同。
当编译失败或者要重新编译时,可用模式提供的清除命令clean来进行。当
未指定任何参数时,清除程序“clean”将删除源程序目录中的目标文件(*.o)
以及编译时产生的一些中间文件,文件“”会保留。当指定“-a”
为“clean”的参数时,则会连同文件“configure”以及一些在“external”目录
中的库函数一起删除。所以,用带参数“-a”的清除命令,则会将模式恢复到模
式的安装最原始的状态,而文件“”中的一些修改信息都会丢失。
(注意,清除程序并不会将run或test子目录中的数据文件或可执行文件删除
掉)。
对发布的原始代码或运行了清除程序“clean-a”后的代码进行第一次编译
时,编译程序会在“external”目录中创建一些库函数。
另外,编译错误时显示的行号是中间文件“.f”的对应行号,但不一定都是
源程序目录中的“.F”文件的对应行号。这可能会给查找错误所在地位置带来一
些麻烦。
F90编译器允许在向外部子程序传递实参时,产生f90型伪形
(assumed-shape)数组的副本。一些F90编译器即使整个数组(无需分割成子
集)被作为实参传递时也会产生这种副本。这样的话,产生副本是非常浪费内存
的。-DDEREF_KLUDGE指示注册机制在构建调用子程序的实参列表时创建一个
额外标志信息,从而使编译器认为仅仅是传递数组的第一个元素,避免了创建副
本。
word格式-可编辑-感谢下载支持
模式与T213模式嵌套
3.1嵌套方案
T213模式是一个全球谱模式,而WRF模式是一个区域格点模式。目前,要
实现WRF模式与T213模式的完全嵌套,在理论上和实践上都还有许多困难。
因此,根据WRF模式当前只处于调试阶段的实际情况,我们仅将WRF模式与
T213模式作简单地嵌套。
简单嵌套的基本思路就是以T213模式的预报场或者客观分析场为WRF模
式的背景场,并为WRF模式提供边界条件。
具体实现的方法有两种,一种是从T213场库获取要素场,然后修改WRFSI
源程序,读取T213要素场,处理后生成WRF模式的输入场;另一种是利用从
T213场库获取要素场,然后利用MM5的前处理程序TERRAIN、REGRID以及
INTERPF等程序,生成MM5的初始场及边界条件,再利用MM52WRF程序,
将其转换成WRF模式的输入要素场。第一种方法简捷方便,易于操作;第二种
方法相对繁杂些,但由于MM5模式有比较完善的资料同化方案,可以解决目前
WRF模式没有资料同化方案的不足。
3.2嵌套程序设计
3.2.1T213场库资料的通用接口程序
IBMSP机器中T213场库的水平分辨率为0.5625*0.5625(度)。目前,由于
T213场库资料的检索已经模块化,用户根据检索时,可直接调用通用场库(T213)
检索接口程序“gdbrck”。调用通用场库接口程序时,用户只必须设置好程序的
各个接口参数。具体各接口参数说明如下:
callgdbrck(ftype,idate,iftime,ielemcd,level,ii,jj,kk,record,data,index_dic,iret)
ftype:character*4,场类型,例:暴雨系统为'BJLP',t213系统为'BJGL’
idate:integeridate(4),日期数组,年(四位)、月、日、时次
iftime:integer,时效
ielemcd:integer,要素代码
level:integerlevel(n+1),层次数组,第一元为调用的总层数n,2到n+1元为
具体的调用层次,如level(3),datalevel/2,500,700/
ii:integer,纬度格点数
jj:integer,经度格点数
kk:integer,调用层数n
record:integer,本场最大ii*jj。T213系统为:640*321
data:real*8dimensiondata(ii,jj,kk),符点数组,数据区
index_dic:character*80,字符串,模式字典文件全名
iret:integer,返回码0:正常
6:场没生成或记录不存在
9:其他错
值得注意的是,由于场库资料中整数和浮点数都是以64位格式存储的,也
就是8个字节。因此,在程序的声明部分注意场库调用参数的存储长度;或者在
word格式-可编辑-感谢下载支持
编译程序的时候,选用64位编译方式编译。当然,也可以在编译的时候,用编
译选项-qintsize=8和-qrealsize=8两个选项来进行编译。
index_dic是模式字典文件全名,在调用前必须指定。在IBMSP上,场库在
SP:/gpfs/fs2/nwp/gdbt213目录下用index_dic(1:28)='/u/nwp/gdbt213/dic/index_dic';
在场库在盘阵库/asm2/nwpgdb/t213gdb目录下用index_dic(1:32)='/u/nwp/gdbt213
/dic/index_nfs_dic’。
3.2.2读取T213场库资料的程序设计
读取T213场库资料的基本思路是首先设置好相应的气象要素场的具体调用
参数;然后利用T213场库提供的通用接口程序读取场库资料,保存在内存变量
中;再将内存变量中的相应气象要素场数据按不同的要求输出为不同的数据文件
格式。根据这一思想,可以得到读取T213场库资料的程序流程图(见图10)。
实现读取T213场库资料的程序名称为readt213.F。程序开始调用子程序
parse_table来变量列表Vtable文件中的变量信息。Vtable的格式如下:
GRIBCode|LevelCode|Level1|Level2|REGRIDName|REGRIDUnits|REGRID
Description|
-----+------+------+------+----------+----------+------------------------------------------+
80|1|0||SST|K|SeaSurfaceTemperature|
1|1|0||PSFC|Pa|SurfacePressure|
2|102|0||PMSL|Pa|Sea-levelPressure|
7|1|0||HGT|m|Height|TerrainHeight
211|1|0||SKINTEMP|K|Skintemperature(canuseforSSTalso)|
229|105|2||T|K|Temperature|At2m
230|105|2||RH|%|RelativeHumidity|At2m
202|105|10||U|ms{-1}|U|At10m
203|105|10||V|ms{-1}|V|At10m
7|100|||HGT|m|Height|
11|100|*||T|K|Temperature|
33|100|*||U|ms{-1}|U|
34|100|*||V|ms{-1}|V|
52|100|*||RH|%|RelativeHumidity|
-----+------+------+------+----------+----------+---------------------------------------------+
变量列表Vtable文件中,第一行是说明信息,调用parse_table子程序时,
会忽略这些信息。而parse_table子程序识别这些信息与有用的变量信息的重要标
志就是第一列包含中画线“-”的第二行。也就是说,程序将忽略第一次出现中
画线的那一行以前的所有信息,然后读取第一次出现中画线到第二次出现中画线
之间的所有变量信息。如果在第二次出现中画线的那一行后面还有信息,那么将
忽略第二次出现中画线的那一行之后的所有信息,直到第三次出现中画线的那一
行,同时必须有第四次出现中画线的行。第三和第四次之间有没有变量信息不重
要,重要的是第三次和第四次必须同时配套出现。
word格式-可编辑-感谢下载支持
T213场库
读取要从T213场库中读
取的变量列表
读取时间参数及输出格式参数
初始化计算时间
变量循环:当1≤loopj≤变量总数
时间循环:当计算时间在起止时间之内
文件打开标志赋值flopen=.true.
要读取的变量为地形?
否
读取场库气象场
是
打开地形文件:t213_
读取地形数据、
设置场的相关信息
关闭地形文件
要读取的变量为SST?
callproc_sst
否
是
气象场是否为高斯格点场?
否
callGAUSS2LATLON
是
1
调用子程序parse_table,
读取变量列表文件Vtable
读取参数列表文件
读取SST
场数据,
并按要求
格式输出
word格式-可编辑-感谢下载支持
读取landsea文件,截取计
算区域范围中的水陆标志
信息,并按要求格式输出
图1.读取T213场库资料程序流程图
结束
flopen为真(.true.)?
否
callproc_landsea
设置输出区域范围
1
输出类型=?
是
=3
=1
=2
创建文本格式
输出文件
创建AVN第4
类格式输出文件
创建AVN第3
类格式输出文件
变量为地形?
是
输出类型=?
=3
=1
=2
callout_hinterp
callout_mm5
callget_sec1
callget_sec2
callget_gridinfo
设置地形场相关
输出信息
callout_pregrid
否
结束:变量循环
结束:时间循环
word格式-可编辑-感谢下载支持
在变量列表Vtable文件中,这些变量信息设计程表格形式,其中第一列是变量的GRIB
码,这些GRIB码是T213场库中规定的编码(详见附录2)。当要使用WRFSI的prep_
程序时,还必须将T213场库的GRIB编码转换成AVN的编码形式。第二列是气象要是变量
所处的垂直层的GRIB编码。其中100指气压层,105指特定的垂直层,102是指海平面层,
1是指包括海面与陆面的地球表面层。第三、四列是相应于具体的次类型的垂直层的值。
比如垂直层类型为100,则第三列就是去各个等压面的值,如1000、950、850
等等,则第三列用通配符“*”表示,而第四列为空;如果垂直层类型为105,
则第三列则为具体指定的垂直层面的值,如10米高度的风速则用10米等高面的
值,第三列为10,而第四列为空;如果垂直层类型为102或1,则第三列取为0,
第四列为空。第五列为变量名称,按照GRIB编码的标准进行变量命名。第六列
为变量单位,采用GRIB编码的单位标准。第七列为变量文字描述信息,不超过
42个字符。在表格中,每一列都是用竖线“|”分隔。第一列的起始处不要加分
隔符“|”,但最后一列也就是第七列必须以分隔符结束。后面可以跟一些说明文
字信息,但这些信息会被忽略掉。
程序读完变量列表信息后,紧接着便打开参数设置文件“”,
读取用户调用场库的起止时间、输出区域的范围以及输出文件的格式。例如:
&filetimespec
START_YEAR=2003
START_MONTH=04
START_DAY=07
START_HOUR=00
START_MINUTE=00
START_SECOND=00
END_YEAR=2003
END_MONTH=04
END_DAY=10
END_HOUR=00
END_MINUTE=00
END_SECOND=00
INTERVAL=21600
START_X=1
START_Y=1
DELTA_X=320
DELTA_Y=160
/
!OUT_TYPEISAOUTPUTTYPE,THEVALIDVALUEIS:
!1:PREGRIDFORMAT
!2:HINTERPFORMAT
!3:MM5FORMAT
&typespec
OUT_TYPE=2
/
word格式-可编辑-感谢下载支持
获取调用场库的起止时间后,就可以初始化计算时间。初始化时间时,调用
子程序build_hdate。每一次调用后都会返回一个格式为“yyyy-mm-dd_hh:mm:ss”
的时间串。以起始时间为开始,在场库中找符合条件的时次,进行场库资料的读
取,直到用户定义的调用终止时间为止。
在每一个要读取场库资料的有效时次内,遍历从变量列表中获取得每一个变
量。但由于地形、海温和水陆标志信息特殊,要进行特殊处理。另外,由于T213
场库中,有一些要素场保存的量仍为高斯格点场资料,故要求将其内插转换到经
纬网格点上。这部分功能是调用子程序GAUSS2LATLON来完成的(这个子程
序是在陈启英、姚明明提供的转换程序的基础上修改而成)。
最后模式的输出是根据用于定义的输出格式来输出的。在文
件中定义的OUT_TYPE就是定义输出格式的量。当OUT_PUT=1时,输出为
SI程序中grib_能识别处理的格式,当然,grib_的程序源代码要
稍加修改,这在后面将会讲到。输出时调用子程序out_pregrid,输出文件名为
“avn_*”;当OUT_TYPE=2时,输出为SI程序中能识别处理的格
式,调用输出子程序out_hinterp,输出文件名为“AVN_FILE:*”;当OUT_TYPE
=3时,输出为MM5的前处理程序能识别处理的格式。输出时调用子程序
out_mm5来输出,输出文件名为“MM5_FILE:*”。
3.3嵌套的实现
根据嵌套方案设计以及程序设计的具体实施,嵌套过程的实现可以通过三种
具体方案来实现。实现的流程示意图如图11所示。
3.3.1方案一
(1)首先运行程序读取场库资料,将场库资料输出为grib_
能够识别处理的格式。
(2)在运行WRFSI前必须配置SI的参数列表文件。
(3)执行脚本文件grib_,它会调用grib_程序。由于grib_
程序处理的数据格式为GRIB码压缩格式,为了方便,可以将grib_
的源程序代码稍作修改,使其能直接读取文本格式的数据。具体做法是直
接修改WRFSI源程序目录./src/grib_prep//目录下的rd_grib.F文
件。将rd_grib.F中打开数据文件、读写数据的语句注释掉,然后添加相
应的Fortran中打开文本格式文件的语句和相应的读写数据的语句。
打开文件:
源代码:
if(iuarr(iunit).eq.0)then
if(.1)then
callcopen(iunit,nunit,gribflnm,1,ierr,
iprint)
else
callcopen(iunit,nunit,gribflnm,1,
ierr,-1)
endif
if(.0)then
calldeallogrib
ierr=2
return
endif
iuarr(iunit)=nunit
endif
修改为:
if(iuarr(iunit).eq.0)then
open(iunit,file=gribflnm,status='old',
word格式-可编辑-感谢下载支持
iostat=ierr)
nunit=iunit
if(.0)then
if(iprint==1)print*,'Openfileerror
code:',ierr
calldeallogrib
ierr=2
return
endif
iuarr(iunit)=nunit
endif
读变量场头信息:
源代码:
callget_sec1(ksec1)
callget_sec2(ksec2)
callget_gridinfo(infogrid,ginfo)
修改为:
read(iunit,*,end=9112)(ksec1(i),i=1,24)
read(iunit,*,end=9112)(ksec2(i),i=1,4)
read(iunit,*,end=9112)(ginfo(i),i=1,24)
读变量场数据:
源程序:callgribdata(DataArray,map%nx*map%ny)
修改为:read(iunit,*,end=9112)(DataArray(i),i=1,ii)
为了程序的安全运行,还必须修改grib_prep.F程序源代码,将文件关
闭语句作相应的修改:
源代码:callcclose(iuarr(nunit1),iprint,ierr)
修改为:close(iuarr(nunit1))
做完修改后,重新编译安装WRFSI源程序或者单独编译grib_
程序。
(4)执行脚本文件,它会依次调用和程序。如果是第一
次运行或者重新计算新的区域时,则在运行程序前还会运行
gridgen_程序。
运行成功后,会生成WRF所需要的预处理数据文件real_input*。
3.3.2方案二
(1)首先运行程序,读取场库资料,将场库资料输出为
能够识别处理的格式。
此格式要求格式文件为Fortran的顺序读取的无格式数据文件。文件中
的数据都是写出三个记录数据和一个二维数据块的形式。二维数据块总是二
维(nx,ny)实型数组。而前两个记录数据包括的记录元是固定不变的,第三个
记录数据包括记录元则随数据本身采用地图投影不同而不同。具体的记录成
员及其说明如下:
记录1:version
记录2:hdate,xfcst,source,field,units,decription,level
如果proj_flag=0那么
记录3:startloc,startlat,startlon,deltalat,deltalon
如果proj_flag=1那么
记录3:startloc,startlat,startlon,dx,dy,truelat1
如果proj_flag=3那么
word格式-可编辑-感谢下载支持
记录3:startloc,startlat,startlon,dx,dy,orient,truelat1,truelat2
如果proj_flag=5那么
记录3:startloc,startlat,startlon,dx,dy,orient,truelat1
记录1:
INTEGER*4::version
数据的版本号,目前此版本号为4。
记录2:
CHARACTER(LEN=24)::hdate
数据的有效时间,格式为YYYY-MM-DD-HH:mm:ss:ssss。
REAL*4::xfcst
数据块的预报时效,单位为小时。
CHARACTER(LEN=32)::source
数据块的描述信息。
CHARACTER(LEN=9)::field
气象要素场的变量名称。这个变量名为对应于变量列表文件Vtable
中的变量名称,而且必须是模式能够识别的名称。
CHARACTER(LEN=25)::units
数据块中气象要素的单位。此记录只是用于文本信息描述要素场的,
而模式本身不会根据此单位来实行自动转换。
CHARACTER(LEN=46)::description
数据块中气象要素的详细描述信息。
REAL*4::level
数据块中气象要素所处的垂直等压面值,单位为帕。如果是地面气
象要素,则此记录值为200100.0帕;如果是海平面气象要素,则此
记录值为201300.0帕。
INTEGER*4::nx
二维数据块的x方向的范围大小。
INTEGER*4::ny
二维数据块的x方向的范围大小。
INTEGER*4::proj_flag
地图投影的标志变量。其中:
0:圆柱等距投影(经/纬格点)
1:麦卡托投影
3:兰勃特等角投影
5:极射赤面投影(PolarStereographic)
记录3:
CHARACTER(LEN=8)::startloc
描述数据块中气象要素的数据的经纬度的相对起始点位置。有效值
为:
‘SWCORNER’:经纬度相对起始点为左下角
‘CENTER’:经纬度相对起始点为投影中心
REAL*4::startlat
起始点的纬度。
word格式-可编辑-感谢下载支持
REAL*4::startlon
起始点的经度。
REAL*4::deltalat
经纬格点的纬度增量
REAL*4::deltalon
经纬格点的经度增量
REAL*4::dx
x方向的格距,指不投影变形处的格距。
REAL*4::dy
y方向的格距,指不投影变形处的格距。
REAL*4::orient
与y轴平行的经度值,通常为投影不变形的经度值。
REAL*4::truelat1
投影不变形的第一纬度值。
REAL*4::truelat2
投影不变形的第二纬度值,只有兰勃特投影时才有第二不变形纬度
值。
(2)设置WRFSI的参数列表文件namelist。
(3)执行脚本文件,它会依次调用和程序。如果是第一次
运行或者重新计算新的区域时,则在运行程序前还会运行
gridgen_程序。
运行成功后,会生成WRF所需要的预处理数据文件real_input*。
3.3.3方案三
(1)首先运行,读取场库资料,将场库资料输出为MM5前处理程序
能够识别处理的格式。
此格式要求格式文件为Fortran的顺序读取的无格式数据文件。文件中
的数据都是写出三个记录数据和一个二维数据块的形式。二维数据块总是二
维(nx,ny)实型数组。而前两个记录数据包括的记录元是固定不变的,第三个
记录数据包括记录元则随数据本身采用地图投影不同而不同。具体的记录成
员及其说明如下:
记录1:version
记录2:hdate,xfcst,field,units,decription,level
如果proj_flag=0那么
记录3:startlat,startlon,deltalat,deltalon
如果proj_flag=1那么
记录3:startlat,startlon,dx,dy,truelat1
如果proj_flag=3那么
记录3:startlat,startlon,dx,dy,orient,truelat1,truelat2
如果proj_flag=5那么
记录3:startlat,startlon,dx,dy,orient,truelat1
word格式-可编辑-感谢下载支持
记录1:
INTEGER*4::version
数据的版本号,此版本号为3。
记录2:
CHARACTER(LEN=24)::hdate
数据的有效时间,格式为YYYY-MM-DD-HH:mm:ss:ssss。
REAL*4::xfcst
数据块的预报时效,单位为小时。
CHARACTER(LEN=9)::field
气象要素场的变量名称。这个变量名为对应于变量列表文件Vtable
中的变量名称,而且必须是模式能够识别的名称。
CHARACTER(LEN=25)::units
数据块中气象要素的单位。此记录只是用于文本信息描述要素场的,
而模式本身不会根据此单位来实行自动转换。
CHARACTER(LEN=46)::description
数据块中气象要素的详细描述信息。
REAL*4::level
数据块中气象要素所处的垂直等压面值,单位为帕。如果是地面气
象要素,则此记录值为200100.0帕;如果是海平面气象要素,则此
记录值为201300.0帕。
INTEGER*4::nx
二维数据块的x方向的范围大小。
INTEGER*4::ny
二维数据块的x方向的范围大小。
INTEGER*4::proj_flag
地图投影的标志变量。其中:
0:圆柱等距投影(经/纬格点)
1:麦卡托投影
3:兰勃特等角投影
5:极射赤面投影(PolarStereographic)
记录3:
REAL*4::startlat
起始点的纬度。
REAL*4::startlon
起始点的经度。
REAL*4::deltalat
经纬格点的纬度增量
REAL*4::deltalon
经纬格点的经度增量
REAL*4::dx
x方向的格距,指不投影变形处的格距。
REAL*4::dy
y方向的格距,指不投影变形处的格距。
REAL*4::orient
word格式-可编辑-感谢下载支持
与y轴平行的经度值,通常为投影不变形的经度值。
REAL*4::truelat1
投影不变形的第一纬度值。
REAL*4::truelat2
投影不变形的第二纬度值,只有兰勃特投影时才有第二不变形纬度
值。
注意,第三版本的数据格式与第四版本的数据格式大部分相同,只是第
四版本的数据比第三版本的数据多了两个字符型记录元:source和startloc。
(2)运行MM5前处理程序,生成MM5的初始输入场和边界条件。
(3)运行MM52WRF转换程序,将MM5的初始出入场和边界条件转换成WRF
所需要的输入数据文件real_input*。
grib_
WRF
TERRAIN
MM52WRF
REGRID
INTERPF
MM5
T213场库数据
readt213
gridgen_
图与T213嵌套实现流程示意图
word格式-可编辑-感谢下载支持
3.4编译嵌套程序
编译嵌套程序时,目前必须用64位形式编译,或者用编译选项“-qintsize=8”
和“-qrealsize=8”来编译。另外,场库连接的库函数以及路径必须在编译连接时
指定。IBMSP用户连接库为:
·场库在SP:/gpfs/fs2/nwp/gdbt213目录下
-L/u/nwp/gdbt213/lib-lpub
index_dic(1:28)='/u/nwp/gdbt213/dic/index_dic'
·场库在盘阵库/asm2/nwpgdb/t213gdb目录下
-L/u/nwp/gdbt213/lib-lpub_bx
index_dic(1:32)='/u/nwp/gdbt213/dic/index_nfs_dic’
编译时,按照以下步骤进行:
(1)进入到t213/mod目录下,输入make命令编译嵌套程序所需的模块程序;
(2)进入到t213/util目录下,输入make命令编译一些辅助子程序;
(3)回到t213/目录下,输入make命令编译主程序。
编译成功后,可产生一个可执行程序。
word格式-可编辑-感谢下载支持
模式系统的运行
4.1理想大气方案
4.1.1运行流程
4.1.2运行步骤
有多种理想大气试验方案可供试验运行。在编译好理想大气试验方案后,可
以进入相应方案的目录下,如欧拉质量坐标x-z平面二维飚线方案对应的目录
为./test/em_squall2d_x。
1.设置该目录下的参数配置文件;详细参数说明参见《WRF模式
技术报告》中附录1。通过编辑文件,可以修改积分的长度,
输出的频次,计算范围的大小,时间步长,物理参数以前其他的一些参数。
一些参数(比如时间步长,积分时间和输出时间,一些变化参数等)的改变,
可以不需要重新执行“”程序。然而,当改变计算范围,边界条件,
以及物理参数时,则必须重新执行“”程序。
2.运行WRF模式的数据初始化程序。是串行运行的。如果要
并行运行,则必须将并行节点和每个节点上的CPU数目都设置成1。运行正
确后,可产生以下两个文件:
wrfbdy_d01:WRF的边界条件
wrfinput_d01:WRF的输入场
3.运行WRF模式的主程序。可串行运行,也可并行运行。运行
正确后,能产生以下形式的结果文件:
wrfout_d01_000000
另外,还有一些程序运行时记录运行状态的中间记录文件。
模式后处理
目前,已经初步地将WRF模式的输出结果转换成VIS5D、GrADS以及
MICAPS的数据格式,显示WRF模式的输出结果。详细说明参见第四部分。
运行WRF数据初始化程序
运行WRF模式主程序
wrfout
后处理
图模式系统理想大气方案的运行流程
word格式-可编辑-感谢下载支持
4.1.3运行个例
通过编辑文件,可以修改积分的长度,输出的频次,计算范
围的大小,时间步长,物理参数以前其他的一些参数。一些参数(比如时间步长,
积分时间和输出时间,一些变化参数等)的改变,可以不需要重新执行“”
程序。然而,当改变计算范围,边界条件,以及物理参数时,则必须重新执行
“”程序。
编辑原始程序代码,比如编辑dyn_eh/module_initialize_squall2d_x.F,已修
改山体或圆形障碍物,或修改外围环境时,应该在WRF的顶级目录下重新运行
“compileeh_squall2d_x”,重新编译程序代码。然后再象前面讲述的一样,分别
执行“”和“”。
试验方案中,欧拉质量坐标x-z平面二维飚线方案采用Kessler微物理过程,
粘性系数固定为300m2/s。并利用y方向的周期性边条件,从而使用三维的WRF
模式模拟二维的飚线系统实际可行。在y方向,速度应该为零,并且没有其他物
理量的计算输出。经过以上步骤地运行,得到结果文件有:
-rw-r--r--1dengltnumerica7806948Apr1406:33wrfbdy
-rw-r--r--1dengltnumerica1630620Apr1406:33wrfinput
-rw-r--r--1dengltnumerica25498084Apr1414:43wrfout_01_000000
-rw-r--r--1dengltnumerica7381448Apr1414:05wrfrst_01_000600
-rw-r--r--1dengltnumerica7381448Apr1414:43wrfrst_01_001200
其中,wrfbdy和wrfinput两个文件是运行程序所产生的模式边界条
件和初始场文件。wrfrst_01_000600和wrfrst_01_000600是模式“”运行
中产生的中间文件,它的作用是使模式可以分各个时间段进行计算。
wrfout_01_000000文件是模式的输出结果文件,从其中可以得到模式的各物理量
的计算结果。图4是欧拉质量坐标二维(x-z)飚线方案模拟的水平风速的分布图。
从模拟的图中,可以分析得出模式模拟的结果基本正确。
word格式-可编辑-感谢下载支持
图4.欧拉质量坐标二维(x-z)飚线方案模拟水平风速U分布
word格式-可编辑-感谢下载支持
4.2真实大气方案
4.2.1运行流程
4.2.2运行步骤
4.2.2.1.数据预处理
数据预处理目前是采用WRF模式与T213模式嵌套的方法。用T213模式的
分析或者预报场库资料来提供WRF模式的初始场及其边界条件。因此,数据预
处理可选择前面介绍的三种嵌套方案中任一种,运行嵌套处理程序进行数据预处
理。运行步骤:
第一步:设置变量列表文件“Vtable”
变量列表文件“Vtable”是一个文本文件,它提供要从T213场库中提取得
气象场的相关信息。其格式如下:
GRIB码|层次代号|第一层|第二层|变量名称|变量单位|变量描述|
----------+-------------+-----------+-----------+--------------+-------------+---------------------|
11|100|*||T|K|Temperature|
33|100|*||U|ms{-1}|U|
34|100|*||V|ms{-1}|V|
2|102|0||PMSL|Pa|Sea-levelP|
......
-----------+-------------+-----------+-----------+---------------+------------+-------------------+
变量列表Vtable文件中,第一行是说明信息,调用parse_table子程序时,会
忽略这些信息。而parse_table子程序识别这些信息与有用的变量信息的重要标志
就是第一列包含中画线“-”的第二行。也就是说,程序将忽略第一次出现中画
wrfout
运行WRF数据初始化程序
运行WRF模式主程序
后处理
数据预处理
图模式系统真实大气方案的运行流程
word格式-可编辑-感谢下载支持
线的那一行以前的所有信息,然后读取第一次出现中画线到第二次出现中画线之
间的所有变量信息。如果在第二次出现中画线的那一行后面还有信息,那么将忽
略第二次出现中画线的那一行之后的所有信息,直到第三次出现中画线的那一
行,同时必须有第四次出现中画线的行。第三和第四次之间有没有变量信息不重
要,重要的是第三次和第四次必须同时配套出现。
在变量列表Vtable文件中,这些变量信息设计程表格形式,其中第一列是
变量的GRIB码,这些GRIB码是T213场库中规定的编码(详见附录2)。当要
使用WRFSI的prep_程序时,还必须将T213场库的GRIB编码转换成
AVN的编码形式。第二列是气象要是变量所处的垂直层的GRIB编码。其中100
指气压层,105指特定的垂直层,102是指海平面层,1是指包括海面与陆面的
地球表面层。第三、四列是相应于具体的次类型的垂直层的值。比如垂直层类型
为100,则第三列就是去各个等压面的值,如1000、950、850等等,则第三列
用通配符“*”表示,而第四列为空;如果垂直层类型为105,则第三列则为具
体指定的垂直层面的值,如10米高度的风速则用10米等高面的值,第三列为
10,而第四列为空;如果垂直层类型为102或1,则第三列取为0,第四列为空。
第五列为变量名称,按照GRIB编码的标准进行变量命名。第六列为变量单位,
采用GRIB编码的单位标准。第七列为变量文字描述信息,不超过42个字符。
在表格中,每一列都是用竖线“|”分隔。第一列的起始处不要加分隔符“|”,但
最后一列也就是第七列必须以分隔符结束。后面可以跟一些说明文字信息,但这
些信息会被忽略掉。
第二步:设置参数配置文件“”
程序读完变量列表信息后,紧接着便打开参数设置文件“”,
读取用户调用场库的起止时间、输出区域的范围以及输出文件的格式。例如:
&filetimespec
START_YEAR=2003
START_MONTH=04
START_DAY=07
START_HOUR=00
START_MINUTE=00
START_SECOND=00
END_YEAR=2003
END_MONTH=04
END_DAY=10
END_HOUR=00
END_MINUTE=00
END_SECOND=00
INTERVAL=21600
START_X=1
START_Y=1
DELTA_X=320
DELTA_Y=160
/
word格式-可编辑-感谢下载支持
!OUT_TYPEISAOUTPUTTYPE,THEVALIDVALUEIS:
!1:PREGRIDFORMAT
!2:HINTERPFORMAT
!3:MM5FORMAT
&typespec
OUT_TYPE=2
/
在参数配置文件“”中,&filetimespec部分是定义获取资料的
起止时间、时间间隔和区域大小的。其中,START_YEAR,START_MONTH,
START_DAY,START_HOUR,START_MINUTE,START_SECOND分别是表
示起始年、月、日、时、分、秒;END_YEAR,END_MONTH,END_DAY,
END_HOUR,END_MINUTE,END_SECOND是表示终止年、月、日、时、分、
秒;INTERVAL是表示时间间隔,以秒为单位;START_X和START_Y分别表
示场库资料输出时X方向(纬向)和Y方向(经向)的起始格点;DELTA_X和
DELTA_Y分别表示输出时X方向(纬向)和Y方向(经向)的总格点数。&tyepspec
部分是定义获取资料的输出类型。当OUT_PUT=1时,输出为SI程序中修改后
的grib_能识别处理的格式。输出时调用子程序out_pregrid,输出文件名
为“avn_*”;当OUT_TYPE=2时,输出为SI程序中能识别处理的
格式,调用输出子程序out_hinterp,输出文件名为“AVN_FILE:*”;当OUT_TYPE
=3时,输出为MM5的前处理程序能识别处理的格式。输出时调用子程序
out_mm5来输出,输出文件名为“MM5_FILE:*”。
第三步:运行嵌套程序
设置好变量列表文件以及参数配置文件后,就可运行文件。运
行正确后,可以生成SI所需要的数据文件“avn_*”或“AVN_FILE:*”,或者生
成MM5前处理程序所能识别的数据文件“MM5_FILE:*”。
第四步:运行标准初始化程序SI
上面的步骤中第一步到第三步是将WRF模式本地化,与T213模式嵌套时
采取的步骤。在采用上面介绍的嵌套方案中的前两种方案时,则要运行标准初始
化程序SI。不过,这两种方案在运行操作上还是存在一些差别的,运行时需要
加以注意。如果采用第三种方案时,则不要运行此步的SI程序,而运行MM5
的前处理程序及MM5到WRF的转换程序即可。另外,在WRF
模式运行中,还可以采用WRF模式发布网站提供的试验数据来检验运行WRF
模式。在这种情况下,则可以跳过前面三个步骤,而从第本次步骤开始运行。
1.转到$MOAD_DATAROOT/static/目录中,设置参数配置文件。
WRFSI的参数配置文件在$MOAD_DATAROOT/static/目录中。
在SI的参数配置文件中,一共有十个列表子块,但其中有三个子
块目前没有使用:si_controls,paths_to_raw_data和laps_analysis_control.其
他子块列表信息说明如下:
t_id:
此列表子块该部分为说明部分,对WRFSI程序的运行没有影响。因
word格式-可编辑-感谢下载支持
此,此子块是为了用户在描述元数据方便而设的。
(1)SIMULATION_NAME:字符串型,指定本次运行实验的名称
(2)USER_DESC:字符串型,描述运行此配置程序的用户信息
mespec:
此子块设置WRFSI程序运行的起止时间,时间都为世界时。只有时间间
隔可以修改,其他部分都会在运行命令(建议使用)时被修改,但
当用户不运行grib_脚本,而是运行脚本时,则用于必须先
自行修改模式运行的起止时间。
(1)start_year(例如2001):四位数字表示的起始年份。
(2)start_month(例如04):两位数字(01-12)表示的起始月份。
(3)start_day(例如20):两位数字(01-31)表示的起始天数。
(4)start_hour(例如12):两位数字(00-23)表示的起始小时数。
(5)start_minute(例如00):两位数字(00-59)表示的起始分钟数。
(6)start_second(例如00):两位数字(00-59)表示的起始秒数。
(7)end_year(例如2001):四位数字表示的终止年份。
(8)end_month(例如04):两位数字(01-12)表示的终止月份。
(9)end_day(例如21):两位数字(01-31)表示的终止天数。
(10)end_hour(例如00):两位数字(00-23)表示的终止小时数。
(11)end_minute(例如00):两位数字(00-59)表示的终止分钟数。
(12)end_second(例如00):两位数字(00-59)表示的终止秒数。
(13)interval_seconds(例如43200):前处理程序的两次输出时间之间
的时间间隔,以秒为单位。
pec:
模式的水平区域和格点定义信息,包括xdim,ydim,map_proj_name,
moad_known_lat,moad_kown_lon,moad_stand_lats,moad_stand_lons,
moad_delta_x,moad_delta_y(moad_delta_x=moad_delta_y)。注意,目前WRF
模式还没有提供网格嵌套。另外,用户如果改变了水平网格的大小,则还
需对$MOAD_DATAROOT/cdl/文件做相应的修改。
(1)NUM_DOMAINS:整型数,嵌套区域数目。如果不使用嵌套,
则此参数必须设置为1。
(2)XDIM/YDIM:整型数,(母区域)东西方向和南北方向的格点数。
尽管区域数大于1,即有嵌套时,在中也仅设置一个母区
域的X和Y方向上的格点,因为嵌套区域的xdim和ydim根据其
它参数自动计算(见下面的设置5)。
注:WRFSI定义的原始网格相对于其他变量来说是“无跳格点”网格。
它采用Arakawa-C格点,而所有的3种组成网格(U,V和质量)
是在此网格基础上的跳格点网格。其中,U网格是在原始网格上向
上跳0.5个格点;V网格式向右跳0.5个格点;质量网格则是向上
跳0.5个格点,同时向右跳0.5个格点。下面是一个4×4的格点的
例子(XDIM,YDIM)=(4,4):
word格式-可编辑-感谢下载支持
+V+V+V+
UTUTUTU
+V+V+V+
UTUTUTU
+V+V+V+
UTUTUTU
+V+V+V+
其中,加号(+)格点是在参数列表文件namelist中定义的精确
格点。(T)格点是提供所有质量变量的格点,WRF模式的输出中
包含这些格点值。(U)格点是提供所有U动量变量的格点,WRF
模式的输出中包含这些格点值。(V)格点是提供所有V动量变量
的格点,WRF模式的输出中包含这些格点值。因此,如果在WRFSI
的配置中设置了区域范围为(XDIM,YDIM),则模式会输出:
质量变量:(XDIM-1,YDIM-1)
U动量变量:(XDIM,YDIM-1)
V动量变量:(XDIM-1,YDIM)
(3)PARENT_ID:整型数,嵌套区域的上一级区域的编号。注意,
主区域没有上一级区域,因此,主区域的PARENT_ID总是设置为
1。第二列必须等于1。总列数必须等于NUM_DOMAINS
(4)RATIO_TO_PARENT:整型数,指定本区域和它的母区域的格距
比。典型值为2和3,但是也可以更大一些。该参数的列数必须等
于NUM_DOMAINS。
(5)DOMAIN_ORIGIN_[LLI/LLJ/URI/URJ]:这四个参数定义每个子
区域在其母区域中西南角(左下[LLC])和东北角(右上[URC])
的i/j方向的格点位置。对于MOAD而言,SW=1,1;NE=
xdim,ydim。则子区域的xdim,ydim值可由下式计算(SI中自动计
算):
xdim=(uri-lli)*ratio_to_parent+1,
ydim=(urj-llj)*ratio_to_parent+1.
(6)MAP_PROJ_NAME:字符串型,指定地图投影的类型。有效的
类型名称包括:
“polar”->极射赤面投影
“lambert”->兰勃特等角投影(相割或者相切)
“mercator”->麦卡托投影
(7)MOAD_KNOWN_LAT/MOAD_KNOWN_LON:实型数,网格
中的指定点的纬度/经度。对于目前来说,这个指定点必须是网格
的中心点。单位为度,北半球纬度为正,东半球经度为正。纬度值
必须在-90~90直接,经度必须在-180~180之间。
(8)MOAD_STAND_LATS:实型数,地图投影的2个不变形纬度。
必须在-90~90之间,并且,取值取决于地图投影的类型:
极射赤面投影:第一个值必须是网格点投影不变形处的纬度值,许
多用户喜欢将这个值设置成网格的中心点的纬度。第
word格式-可编辑-感谢下载支持
二个值必须是+/-90度之一,90度为北极,-90度为
南极。
兰勃特等角投影:两个纬度值应该与中心纬度值同号。对应相切型
投影,这两个值相等;对于相切型投影,他们取不同
值。
麦卡托投影:第一个值是网格中投影不变形的纬度值,通常取为网
格中心点的纬度。第二个值无定义。
(9)MOAD_STAND_LONS:实型数,投影的不变形经度值,取值范
围为-180~180,单位为度。通常,将它取为网格中心点的经度。
(10)MOAD_DELTA_X/MOAD_DELTA_Y:浮点型数,指定网格在
东西方向/南北方向上的格距,单位为米。目前,这两个值必须相
同。嵌套子区域的格距由SI和GUI自动计算(见文件
src/lib/get_wrfsi_config.f中的functiongrid_spacing_wrf_m(nest)):
grid_spacing_wrf_m=moad_delta_x
i=nest:
dowhile(.1)
grid_spacing_wrf_m=grid_spacing_wrf_m/ratio_to_parent(i)
i=parent_id(i)
enddo
(11)SILAVWT_PARM_WRF:参见README_toptwvl_silavwtin
src/grid
(12)TOPTWVL_PARM_WRF:参见README_toptwvl_silavwtin
src/grid
es:
指定静态数据(地形高度,土地利用等)存放的正确目录。
(1)TOPO_30S:USGS-derived分辨率为30秒地形高度数据的路径
(2)PCTLAND_10M:指定分辨率为10分的陆地指数(陆地在整个
格点中占有的百分比)率数据的路径
(3)LANDUSE_30S:30秒USGS24种指定土地利用类型的路径
(4)SOILTYPE_TOP_30S:指定FAO的分辨率为30秒16类顶层土
壤类型数据的路径
(5)SOILTYPE_BOT_30S:指定FAO的分辨率为30秒16类底层土
壤类型数
(6)GREENFRAC:指定植被分类数据的路径。
(7)SOILTEMP_1DEG:指定分辨率为1度的年平均深层土壤温度的
路径。
(8)ALBEDO_NCEP:指定月平均的气候反照率资料的路径(归一化
到局地天顶normalizedtolocalzenith)。
(9)SSTEMP:海表温度气候值。目前没有使用。
word格式-可编辑-感谢下载支持
_control:
指定插值时(和)所需的参数信息。ptop_Pa,
hinterp_method,output_coord,levels.
output_coord=“ETAP”用于质量坐标,而output_coord=”ZETA”用
于高度坐标。
levels在ETAP坐标中取1.0~0,而在ZETA坐标中取0~x米,一般要
求x不低于19000米。并建议ptop_Pa=5000。
(1)NUM_ACTIVE_SUBNESTS:如果C部分hgridspec中
NUM_DOMAINS>1,(即在母区域MOAD中实行的嵌套网格),
该参数表示多少个子区域进行水平和垂直插值来产生初始条件。如
果仅处理MOAD,则NUM_ACTIVE_SUBNESTS必须设为0。
NUM_ACTIVE_SUBNESTS设定ACTIVE_SUBNESTS参数的维
数,必须在0和NUM_DOMAINS-1(含)之间.
(2)ACTIVE_SUBNESTS:如果NUM_ACTIVE_SUBNESTS>=1,
该参数为对应于NUM_ACTIVE_SUBNESTS参数的一系列整数,
每一个整数为预生成初始条件的子区域的ID号。每个数值互不相
同,且必须>=2以及<=NUM_DOMAINS。当仅处理MOAD区时
(NUM_ACTIVE_SUBNEST=0),该参数没有用。该参数与
NUM_ACTIVE_SUBNESTS结合起来,可以设定多个同级子区域,
但是在实际运行WRF的初始化时仅选取一个子区域来处理。
(3)PTOP_PA:指定模式顶层气压,单位为帕,默认值为5000Pa。
(4)HINTERP_METHOD:整型数,指定大气物理量的水平插值方
法,有效的取值为:
0:取邻近值,最近的格点值,不推荐使用。
1:4点双线性插值,建议输入数据与输出数据分辨率相同时使用。
2:16点插值。
(5)LSM_HINTERP_METHOD:整型数,指定做过水陆叠置分析的
气象场的水平插值方法,常用于陆面过程需要的气象场。有效取值
同上,但推荐值用0或者1。注意:如果想使用背景资料的土地利
用和土地分类,该参数必须设为0,而且必须由输入数据集中获取
"VEGCAT"和"SOILCAT",其中VEGCAT为主要的土壤利用
分类(USGS为24种)的2维数组,SOILCAT为FAO主要土壤
类型的2维数组。
(6)NUM_INIT_TIMES:整型数,用来控制初始场(INIT_ROOT)和
陆面过程气象场(LSM_ROOT)的提供时次的数量。目前设置为1。
此参数的设置是为以后的资料分析“nudging”准备的。程序会首
先利用INIT_ROOT/LSM_ROOT中指定的时次(NUM_INIT_TIMES)
数据,然后再转到LBC_ROOT中取剩余的时次数据。如果将此参
数设为0,那么所有的数据都会从LBC_ROOT和
CONSTANTS_FULL_NAME中读取。许多用户可能会这样设置为
0。但是,设置成1的好处是可以使模式使用不同模式的数据场来
做初始场/陆面过程气象场和边界条件。
(7)INIT_ROOT:字符串型,指定初始场数据文件名前缀,在指定
word格式-可编辑-感谢下载支持
了NUM_INIT_TIMES时使用。脚本程序会在
ANALPATH路径(见SI_PATHS子块)中查找带有此前缀以及相应
时间串的数据文件。此参数只有当NUM_INIT_TIMES>0时有用。
_ROOT:字符串型,指定边界场数据文件名前缀。脚本程序
会在LBCPATH路径(见SI_PATHS子块)中查找带有此前
缀以及相应时间串的数据文件。
_ROOT:字符串型,指定陆面过程气象场数据文件名前缀,
在指定了NUM_INIT_TIMES时使用,NUM_INIT_TIMES>0。脚
本程序会在LSMPATH路径(见SI_PATHS子块)中查找
带有此前缀以及相应时间串的数据文件。此参数是用来提供来自不
同模式(与INIT_ROOT不同)的数据给NOAHLSM过程。
NTS_FULL_NAME:字符串列表,指定
CONSTANTS_PATH路径中的气候场文件名前缀列表。任何在含有
此前缀之一的文件中的数据都会在每个输出时次中输出,并且会优
选替代掉LSM_ROOT/INIT_ROOT/LBC_ROOT文件中的数据。
E_LOG:逻辑型,调试信息开关。设为真时,能够打印
许多详细的运行信息。
_COORD:字符串型,长度为4,指定数据输出的垂直
坐标类型。有效的取值为:
'ETAP':输出在eta层上,为WRF模式质量坐标提供输入数据。
'NMMH':输入数据在由LEVELS参数指定的NMM面上转化为
WRF的NCEPNMM形式的输出数据。
'ZETA':输出在高度层上,为WRF模式高度坐标提供输入数据。
不再支持该坐标,选此不能正常运行!
:实型数列表,WRF模式的垂直层次列表,相对大气
来说是由下向上的递增。如果OUTPUT_COORD设置为'ZETA',
那么这些数值则从0到模式顶部;如果OUTPUT_COORD设置为
"ETAP",那么这些值则从1.0到0.0。
_VARS:整型数,控制变量输出类型。必须设置为2。
(放弃)
_paths:
设置输入GRIB数据或其他外部数据的路径名以及grib_文件输出
结果存放的路径名。
对于老版本的SI(20020328版),设置GRIB或其他外部数据(如T213
场库)的存放路径时,如果指定的输入模式为AVN或T213,则只需设置
“path_to_AVN”路径;如果指定为ETA,则需设置“path_to_ETA”路径。
设置grib_文件输出结果存放路径(EXTDATAROOT)时,可与SI
的MOAD_DATAROOT一致,也可与Path_to_AVN一致。当采用WRF与
T213模式嵌套的第二种方案时,可以不设置path_to_AVN路径,只设置
word格式-可编辑-感谢下载支持
EXTDATAROOT即可。
对于新版本(1.3版以上)的SI,则需设置如下路径,但大多数情况下他们
都会设成一个相同的路径($EXT_DATAROOT/extprd)。
TH:字符串类型,当NUM_INIT_TIMES>0时,指定
带前缀INIT_ROOT的文件所在的目录。
H:字符串类型,当所有时次数大于NUM_INIT_TIMES
时,指定带前缀LBC_ROOT的文件所在的目录。
H:字符串类型,指定0~NUM_INIT_TIMES时次带前
缀:LSM_ROOT的文件所在的目录。
NTS_PATH:字符串类型,指定所有时次数带前缀
CONSTANTS_FULL_NAME的文件所在的目录。
is_control:
确认是否是正确设置为“wrfsi”。(放弃)
设置好计算数据生成的间隔,文件存放路径以及计算区域配置等信息。
如果修改了计算区域的大小,则必须同时对$MOAD_DATAROOT/cdl/目录
下的作相应的修改。
②转到$INSTALLROOT/etc/目录下,运行文件
运行之前,首先得设置两个环境变量INSTALLROOT和
MOAD_DATAROOT:
exportINSTALLROOT=/u/denglt/wrfsi
exportMOAD_DATAROOT=/gpfs1/fs1/denglt/moaddata
脚本文件要调用两个另外的脚本文件:grid_和。
grib_:将ETA或AVN的GRIB码格式的数据或者是T213场库
读出的数据转成一种能被程序识别的中间格式,放入到
$EXTDAROOTextprd目录中(EXT_DATAROOT在参数配置文件“”
中的列表子块“si_paths”中指定)。
:调用gridgen_和和程序。
文件需要四个命令行输入参数:
――开始时间(格式为:yyyymmddhh,其中yyyy为年份,mm为月份,
dd为天数,hh为小时)
――预报长度(单位为小时)
――输入数据源(目前为ETA或AVN)
――输出结果文件名的前缀
例如:
2AVNwrfsitest
程序首先会运行grib_文件,由它调用grib_文件。输出
结果文件会放置在列表文件中EXTDATAROOT指定的目录中。此目录中
会创建三个子目录:
./wrok/:工作目录
./log/:运行grib_文件的记录文件
./extprd/:为下一步要运行的wrfsi程序而创建的中间结果文件
word格式-可编辑-感谢下载支持
例如在上面的例子中,在extprd目录中可以看到以下文件:
-rw-rw-r--1wrfhlpusers37563264Apr1716:37AVN_FILE:2001-06-11_12
-rw-rw-r--1wrfhlpusers37563264Apr1716:38AVN_FILE:2001-06-12_00
然后,程序会运行文件,由它调用gridgen_,
,和文件。如果gridgen_文件成功,那么在
$MOAD_DATAROOT/static/目录下创建以下几个文件:
-rw-rw-r--1wrfhlpusers124Apr1719:
-rw-rw-r--1wrfhlpusers59704Apr1719:
-rw-rw-r--1wrfhlpusers2974548Apr1719:
-rw-rw-r--1wrfhlpusers29856Apr1719:
-rw-rw-r--1wrfhlpusers119474Apr1719:
在$MOAD_DATAROOT/目录中创建的文件夹还有:
./silog/:运行脚本的记录文件
./siprd/:最终结果文件。
如果程序运行成功,则在./siprd/目录中可以看到如下的文件:
-rw-rw-r--1wrfhelpusers6424828Apr1719:31hinterp.d01.2001-06-11_12:00:00
-rw-rw-r--1wrfhelpusers6424828Apr1719:32hinterp.d01.2001-06-12_00:00:00
-rw-rw-r--1wrfhelpusers368Apr1719:ta
-rw-rw-r--1wrfhelpusers5983520Apr1719:32real_input_em.d01.2001-06-11_12:00:00
-rw-rw-r--1wrfhelpusers5983520Apr1719:33real_input_em.d01.2001-06-12_00:00:00
-rw-rw-r--1wrfhelpusers368Apr1719:33real_input_ta
其中,前缀“real_input_em”是指WRF模型欧拉质量坐标下SI的结
果文件,如果设置“OUTPUT_COORD=‘ZETA’”,那么结果文件的前
缀将会变为“real_input_eh”,表示是WRF模型欧拉高度坐标下SI的结果
文件。
4.2.2.2.运行WRF的初始化程序
WRF模式现在地模式框架有欧拉高度坐标和欧拉质量坐标两种。他们的运
行目录分别对应着./test/eh_real和./test/em_real两个目录。在这两个目录中,你可
以找到和的连接文件以及文件。
(1)设置参数配置文件“”
设置该目录下的参数配置文件;详细参数说明参见《WRF
模式技术报告》中附录1。通过编辑文件,可以修改积分的长度,
输出的频次,计算范围的大小,时间步长,物理参数以前其他的一些参数。
一些参数(比如时间步长,积分时间和输出时间,一些变化参数等)的改变,
可以不需要重新执行“”程序。然而,当改变计算范围,边界条件,
以及物理参数时,则必须重新执行“”程序。
(2)运行WRF模式的数据初始化程序。
是串行运行的。如果要并行运行,则必须将并行节点和每个节点
word格式-可编辑-感谢下载支持
上的CPU数目都设置成1。由于运行时读取和存放数据的默认目录为
当前目录,运行时需将输入数据拷贝和连接到当前目录下才能正确运行。而
SP上的主运行空间有限,将数据拷贝到当前目录下是不合适的。因此,我将
real_em.F程序稍微修改了一下,添加了一个传递读取和存放数据的字符串变
量“IN_ROOT”,它可以通过设置环境变量IN_ROOT来设置数据读取和存放
的目录。因此,在每次运行程序前,必须先设置一下环境变量
IN_ROOT。运行正确后,可产生以下两个文件:
wrfbdy_d01:WRF的边界条件
wrfinput_d01:WRF的输入场
4.2.2.3.运行WRF模式的主程序
可串行运行,也可并行运行。同样,由于运行时读取和存
放数据的默认目录为当前目录,运行时需将输入数据拷贝和连接到当前目录
下才能正确运行。因此,我将的源程序稍微修改了一下,添加了一个
传递读取数据的字符串变量“IN_ROOT”和一个存放数据的字符串变量
“OUT_ROOT”,它可以通过设置环境变量IN_ROOT和OUT_ROOT来设置
数据读取和存放的目录。因此,在每次运行程序前,必须先设置一下
环境变量IN_ROOT和OUT_ROOT。
并行运行程序时,用到LoadLevel环境来提交并行作业卡。作业
卡的后缀名为“.cmd”,其创建如下:
#!/bin/ksh
#@job_type=parallel
#@executable=
#@input=/dev/null
#@output=rst_
#@error=rst_
#@initialdir=/u/denglt/wrfv13/test/em_real
#@notify_user=denglt@
#@class=parallel
#@notification=complete
#@environment=MBX_SIZE=160000000;MP_SHARED_MEMORY=YES;
XLSMPOPTS="parthds=1:stack=100000000:spins=0:yields=0:schedule=affinity";
MP_CSS_INTERRUPT=yes;exportMP_EAGER_LIMIT=65536;
IN_ROOT=/gpfs1/fs1/denglt/moaddata/extprd;
OUT_ROOT=/gpfs1/fs1/denglt/moaddata/extprd
#@checkpoint=no
#@restart=no
#@requirements=(Arch=="R6000")&&(OpSys=="AIX51")
#@node=2
#@tasks_per_node=4
#@node_usage=not_shared
#@=css0,shared,US
#@queue
word格式-可编辑-感谢下载支持
提交作业卡是,用Loadlevel命令llsubmit提交。提交时,键入命令:
llsubmitrun_
提交成功后会显示类似于以下的正确的提交信息:
llsubmit:Thejob"sp02n05.12175"hasbeensubmitted.
作业运行正确后,能产生以下形式的结果文件:
wrfout_01_000000或者wrfout_d01_000000
另外,还有类似于以下的一些程序运行时记录运行状态的中间记录文件:
-rw-r--r--1dengltnumerica59340Apr2108:.0000
-rw-r--r--1dengltnumerica1013Apr2108:.0001
-rw-r--r--1dengltnumerica1013Apr2108:.0002
………
-rw-r--r--1dengltnumerica61922Apr2108:.0000
-rw-r--r--1dengltnumerica1037Apr2108:.0001
-rw-r--r--1dengltnumerica1037Apr2108:.0002
………
-rw-r--r--1dengltnumerica51525Apr2108:16show_domain_0000
模式后处理
目前,已经初步地将WRF模式的输出结果转换成VIS5D、GrADS以及
MICAPS的数据格式,显示WRF模式的输出结果。详细说明参见第四部分。
4.2.3运行个例
利用真实大气数据,模式框架采用非静力欧拉质量坐标,水平网格为100×100,水平
分辨率为27km,垂直顶层气压为50hpa,垂直层数为35层,时间步长为2分钟(120秒),
微物理过程方案采用NCEP3类简单冰方案(水汽、云/冰和雨/雪),积云参数化方案采用
Betts-Miller-Janjic方案,长波辐射采用rrtm方案,短波辐射采用Goddard短波方案,没有
采用边界层和陆面过程方案。模式的计算时间为2003年4月17日00时到2003年4月18
日00时。依据以上的运行步骤,程序是串行形式运行的,得到结果文件:
-rw-r--r--1dengltnumerica13022452Apr1806:35wrfbdy_d01
-rw-r--r--1dengltnumerica17734316Apr1806:35wrfinput_d01
是并行形式运行的,采用4个节点,每个节点各4个CPU,共16个CPU。计
算得到一些结果文件如下:
-rw-r--r--1dengltnumerica59340Apr2108:.0000
-rw-r--r--1dengltnumerica1013Apr2108:.0001
-rw-r--r--1dengltnumerica1013Apr2108:.0002
…………
-rw-r--r--1dengltnumerica1014Apr2108:.0014
-rw-r--r--1dengltnumerica1014Apr2108:.0015
-rw-r--r--1dengltnumerica61922Apr2108:.0000
-rw-r--r--1dengltnumerica1037Apr2108:.0001
-rw-r--r--1dengltnumerica1037Apr2108:.0002
…………
word格式-可编辑-感谢下载支持
-rw-r--r--1dengltnumerica1037Apr2108:.0014
-rw-r--r--1dengltnumerica1037Apr2108:.0015
-rw-r--r--1dengltnumerica764Apr2108:17rst_
-rw-r--r--1dengltnumerica0Apr2108:16rst_
-rw-r--r--1dengltnumerica51525Apr2108:16show_domain_0000
-rw-r--r--1dengltnumerica118553152Apr2108:37wrfout_d01_000000
wrfout_d01_000000文件是1.3版模式的输出结果文件,从其中可以得到模式的各物理
量的计算结果。图6、图7、图8和图9分别是降水的6小时,12小时,18小时和24小时
累积量分布图。从模拟的图10中,可以分析得出模式模拟的结果与实况接近,模式的预报
降水范围基本覆盖实况的降水范围,降水中心基本一致,但降水强度明显偏弱。总得看来,
模式计算结果基本正确,但准确率还有待于改进和提高。
word格式-可编辑-感谢下载支持
图6.2003年4月17日08时到14时的
6小时累积降水
图7.2003年4月17日08时到20时
的12小时累积降水
图9.2003年4月17日08时到18日08时
的24小时累积降水
图8.2003年4月17日08时到18日02时
的18小时累积降水
word格式-可编辑-感谢下载支持
图10.2003年4月17日08时的24小时累积降水预报与实况对比
(红色圆点为有降水的站点,红色等值线为实况,红色数值为实况等值线的值;
蓝色等值线为预报值,蓝色数值为预报等值线的值)
word格式-可编辑-感谢下载支持
5模式系统作业卡
为了便于新接触WRF模式的人员运行WRF模式,利用perl语言,编写了
运行WRF模式系统系统作业卡。实现了一个脚本命令自动运行包括读取T213
场库,WRFSI数据预处理,数据初始化,WRF3DVAR以及模式
积分,结果后处理以及降水检验的模式系统整个过程。使WRF模式系统的运行
系统化,简化运行步骤,便于作业自动化。(在输入输出时指定路径的方法参阅文后的
特别提示)
5.1源程序
运行时需要的文件包括:
-----+job
|------------------------------+package
|--clean|--nl_
|--|--job_
|--|--job_
|--|--nl_
|--|--nl_
|--|--nl_
|--|--nl_
|--|--nl_
|--|--
|--|--
运行脚本和是用perl语言编写的perl脚本。支持运行的
perl程序包放在package目录中,包括nl_,job_,job_,
nl_,nl_,nl_,nl_,nl_,,
等程序包。还有一些支持文件,包括clean,,,,
,,,。clean是清理作业卡目录的命令,此命令
会清除掉作业卡目录下其他的用户自定义的文件,因此用户在使用作业卡时,最
好不要将重要文件存放在作业卡目录下,否则很容易丢失。特别注意的是:如果
在作业运行过程中出错,则可能会留下一些错误信息,在下次运行时,必须清理
掉这些错误信息,否则作业无法正常运行。也是perl脚本程序,它的用途
是用shell方式提交WRF模式系统的整个作业;是总的参数配置文
件,包括读取场库READT213,WRFSI,3DVAR以及WRF模式积分的所有配
置参数,运行脚本前须设置好相应的参数;是perl本程序,它根据
命令行参数来修改中的时间信息和模式信息;是IBM
AIX上的总Loadleveler作业卡文件,包括WRF模式系统的各个运行步骤,用户
用户第一次配置好后,以后则无需改动,但这个文件必须要存在。是神
威PCCluster上的总PBS作业卡文件,包括WRF模式系统的各个运行步骤,用
户用户第一次配置好后,以后则无需改动,但这个文件必须要存在。
是的备份文件。是PBS系统上获取空闲节点资源的小程
序,供脚本使用,用来确定提交PBS作业节点资源。
word格式-可编辑-感谢下载支持
5.2系统作业卡运行步骤
5.2.1编辑参数配置文件
(1)公用参数块(COMMONBLOCK)
公用参数块指定WRF模式系统的步骤,提供WRF模式系统运行的起止时
间以及计算区域大小信息。包括三个部分:runmodelspec,filetimespec和
domainspec。具体如下:
(i)runmodelspec部分:指定WRF模式系统运行的步骤。
READT213:
指定是否运行程序。0表示不运行,1表示运行。
WRFSI:
指定是否运行WRFSI程序。0表示不运行WRFSI程序;1表示运行全
部的WRFSI程序,包括grib_,gengrid_,和
;2表示跳过grib_程序,只运行gengrid_,
和程序;3表示跳过gridgen_,而运行
grib_,和程序;4表示只运行grib_
程序;5表示只运行gridgen_程序;6表示只运行
和程序。
WRF3DVAR:
模块wrf3dvar标志参数,为小于等于6的非负整数。指定是否运行
WRF3DVAR程序。缺省值为0。0表示不运行WRF3DVAR程序;1表
示运行全部的WRF3DVAR程序,包括UPFC,READOB,WRF3Dand
UPBC;2表示跳过UPBC,运行UPFC,READOBandWRF3D;3表示跳
过UPFC,运行READOB,WRF3D,andUPBC;4表示只运行UPFC程序;5
表示只运行READOBandWRF3D程序;6表示只运行UPBC程序;
WRFMODEL:
指定是否运行WRF模式的和程序。0表示不运行;1
表示程序和程序两者都运行;2表示只运行程
序;3表示只运行程序。
POST:
指定是否运行后处理程序。0表示不运行,1表示运行。
VERIFY:
指定是否运行检验程序。0表示不运行,1表示运行。
WRF_CASE:
指定WRF模式的运行方案的名称。
例如:
&runmodelspec
READT213=1,
WRFSI=1,
WRF3DVAR=0,
WRFMODEL=1,
POST=0,
word格式-可编辑-感谢下载支持
VERIFY=0,
WRF_CASE='em_real'
/
(ii)filetimespec部分:指定WRF模式系统运行的起止时间。其具体的参数值
设置于WRF模式的设置一致。例如:
&filetimespec
RUN_DAYS=1,
RUN_HOURS=0,
RUN_MINUTES=0,
RUN_SECONDS=0,
START_YEAR=2003
START_MONTH=07
START_DAY=21
START_HOUR=00
START_MINUTE=00
START_SECOND=00
END_YEAR=2003
END_MONTH=07
END_DAY=22
END_HOUR=00
END_MINUTE=00
END_SECOND=00
INTERVAL=21600
TIME_STEP=300,
TIME_STEP_FRACT_NUM=0,
TIME_STEP_FRACT_DEN=1,
/
(iii)domainspec部分:指定模式的计算区域的相关参数。其具体的参数值设置
于WRF模式的设置一致。例如:
&domainspec
NUM_DOMAINS=3,
XDIM=105,
YDIM=85,
GRID_ID=1,2,3,
PARENT_ID=1,1,2,
RATIO_TO_PARENT=1,3,3,
PARENT_TIME_STEP_RATIO=1,3,3,
DOMAIN_ORIGIN_LLI=1,53,43,
DOMAIN_ORIGIN_LLJ=1,35,35,
DOMAIN_ORIGIN_URI=105,88,79,
DOMAIN_ORIGIN_URJ=85,66,69,
MOAD_DELTA_X=54000.,
MOAD_DELTA_Y=54000.,
NUM_ACTIVE_SUBNESTS=2,
word格式-可编辑-感谢下载支持
ACTIVE_SUBNESTS=2,3,
PTOP_PA=5000,
history_inname='wrfout_d_',
auxhist1_inname='auxhist1_d_',
auxhist2_inname='auxhist2_d_',
auxhist3_inname='auxhist3_d_',
auxhist4_inname='auxhist4_d_',
auxhist5_inname='auxhist5_d_',
real_inname='wrf_real_input_em',
input_inname='wrfinput_d',
bdy_inname='wrfbdy_d',
rst_inname='wrfrst_d_',
history_outname='wrfhist_d_',
auxhist1_outname='auxhist1_d_',
auxhist2_outname='auxhist2_d_',
auxhist3_outname='auxhist3_d_',
auxhist4_outname='auxhist4_d_',
auxhist5_outname='auxhist5_d_',
input_outname='wrfinput_d',
bdy_outname='wrfbdy_d',
rst_outname='wrfrst_d_',
/
(2)路径参数块(DIRECTORIESBLOCK)
路径参数块指定WRF模式系统的时所需要的各种路径参数。包括两个部分:
model_directories和data_directories。具体如下:
(i)model_directories部分:指定WRF模式系统的三个主要程序部分的安装目
录,即读T213场库程序安装的目录,WRFSI安装的目录以及WRF模式安装的
目录。
T213ROOT:
指定读取T213场库的程序安装和运行目录,为绝对路径。
SIROOT:
指定WRFSI程序安装和运行目录,为绝对路径。
WRFROOT:
指定WRF模式程序运行目录,为绝对路径。
FCROOT:
指定WRF三维变分程序部分的更新初始场程序运行目录,为绝对路径。
WRF3DVROOT:
指定WRF3DVAR程序运行目录,为绝对路径。
OBROOT:
指定读观测资料程序运行目录,为绝对路径。
BCROOT
指定WRF三维变分程序部分的更新边条件程序运行目录,为绝对路径。
POSTROOT:
word格式-可编辑-感谢下载支持
指定WRF模式后处理程序的安装和运行目录,为绝对路径。
VERIROOT:
指定WRF模式检验程序安装和运行目录,为绝对路径。
例如:
&model_directories
T213ROOT='/pgpfs/fs1/ygcy_qu/run/readt213',
SIROOT='/pgpfs/fs1/ygcy_qu/run/wrfsi',
WRFROOT='/pgpfs/fs1/ygcy_qu/run/wrfrun00',
FCROOT='/pgpfs/fs1/ygcy_qu/run/upfc',
WRF3DVROOT='/pgpfs/fs1/ygcy_qu/run/3drun00',
OBROOT='/pgpfs/fs1/ygcy_qu/run/readob',
BCROOT='/pgpfs/fs1/ygcy_qu/run/upbc',
POSTROOT='/pgpfs/fs1/ygcy_qu/run/wrfpost',
VERIROOT='/pgpfs/fs1/ygcy_qu/run/verify',
/
(ii)data_directories部分:指定WRF模式系统运行时的各个部分的程序的数据
存取相应路径。
MOADDATA:
WRFSI运行时的数据存放目录。默认设置为WRFSI安装路径下的data
子目录,但也可以为其他的新建的数据存放目录。在此路径下,必须
有cdl和static两个子目录。如果是新建的数据目录,则必须将安装路
径下data子目录中的cdl和static两个子目录拷贝到此目录下。程序运
行时还要新建log和siprd两个子目录。WRFSI的区域生成程序
gengrid_生成的静态数据存放在static子目录下,水平插值程
序和垂直插值程序存取的数据放在siprd子目录下。他们的
状态记录文件存放在log子目录下。
WRFDATA:
WRF模式的程序运行时的输出结果数据存放目录。
TEMPLATE:
WRFSI程序运行时的模板路径,存放wrfsi的配置信息。
OB_ROOT:
WRF3DVAR程序运行时的观测资料存放路径。
BE_FILE:
WRF3DVAR程序运行时的背景场误差统计文件,包括全路径。
ANALPATH:
外部模式为WRFSI提供的初始场数据存放的路径。仅用于新版本的
WRFSI1.3.1。
LBCPATH:
外部模式为WRFSI提供的边界场数据存放的路径。仅用于新版本的
WRFSI1.3.1。
LSMPATH:
外部模式为WRFSI提供的陆面过程数据存放的路径。仅用于新版本的
WRFSI1.3.1。
CONSTANTS_PATH:
word格式-可编辑-感谢下载支持
外部模式为WRFSI提供的在模式积分过程中保持不变的气象场数据
(气候数据)存放的路径。
EXTDATAROOT:
外部模式(如T213)为WRFSI提供的数据(如输出结果)
存放路径。此路径用于指定读取场库程序()的数据存放
路径。
另外,在老版本的WRFSI20020328程序中,此目录用于grib_
程序运行时的数据存放。运行时,程序将创建log和extprd两个子目录。
其中,log子目录存放程序运行时的状态记录文件,extprd子目录存放
grib_程序生成的结果数据。而水平插值程序将从
extprd子目录中读取数据。
PATH_TO_AVN
指定AVN模式为WRFSI提供的初始场和边界场数据(GRIB码格式)
的存放路径。仅用于老版本的WRFSI20020328。
PATH_TO_ETA=
指定ETA模式为WRFSI提供的初始场和边界场数据(GRIB码格式)
的存放路径。仅用于老版本的WRFSI20020328。
例如:
&data_directories
MOADDATA='/pgpfs/fs1/ygcy_qu/moad/h00',
WRFDATA='/pgpfs/fs1/ygcy_qu/moad/h00',
TEMPLATE='',
OB_DATA='/pgpfs/fs1/ygcy_qu/moad/obdata',
BE_FILE='/pgpfs/fs1/ygcy_qu/run/be/be_original',
ANALPATH='/pgpfs/fs1/ygcy_qu/moad/extprd',
LBCPATH='/pgpfs/fs1/ygcy_qu/moad/extprd',
LSMPATH='',
CONSTANTS_PATH='/pgpfs/fs1/ygcy_qu/moad/extprd',
EXTDATAROOT='/pgpfs/fs1/ygcy_qu/moad/h00',
PATH_TO_AVN='/pgpfs/fs1/ygcy_qu/moad/h00',
PATH_TO_ETA='',/
(3)读T213场库参数块(READT213BLOCK)
这一参数块是指定读取T213场库的区域大小以及数据输出格式。参数设置
与读取T213场库程序中的说明一致。详细设置参见读取T213场库的运行参数
配置说明(附录)。
(4)WRFSI参数块(WRFSIBLOCK)
这一参数块是指定WRFSI的相应参数。参数设置与WRFSI程序中的说明
一致。详细设置参WRFSI程序的运行参数配置说明(附录)。
(5)WRF3DVAR模式参数块(WRF3VARBLOCK)
这一参数块是指定WRF3DVAR的相应参数。参数设置与WRF3DVAR程序
中的说明一致。详细设置参WRF3DVAR模式的运行参数配置说明(附录)。
(6)WRF模式参数块(WRFMODELBLOCK)
word格式-可编辑-感谢下载支持
这一参数块是指定WRF的相应参数。参数设置与WRF程序中的说明一致。
详细设置参WRF模式的运行参数配置说明(附录)。
5.2.2运行perl脚本
(A)
功能:根据指定时间或者机器当前时间,修改模式参数配置文件
中的运行时间参数,并根据指定的模块参数运行WRF模式系统。
输入文件:
输出文件:
用法:[选项][参数]
选项:[-c][-fforecast][-h][-iinterval][-mmaxsteps][-njobname][-ooffset][-q][-sstarttime]
-c:拷贝标志。此选项设置是,则拷贝模式运行的最终结果wrfout_d01_*
到$MOADDATA/fcst目录下面。
-fforecast:预报时效长度,为正整数,单位为小时,缺省值为24。
-h:在屏幕上显示帮助信息。
-iinterval:模式循环的时间间隔,为小于等于24的正整数,单位为小时,
缺省值为6。当设置了起始时间选项-s时,此项不起作用,只有在缺省
模式起始时间选项-s时起作用。比如当interval=12,且offset=0时,
则确定模式的运行循环的时间间隔为12小时,即模式的起报时次为00
时或者为12时。程序在运行时,根据当前的计算机时间来确定模式的
起报时间是为00时还是12时,当计算机的当前时间为00~11时,则
模式的起报时次为00时,当计算机的当前时间为12~23时,则模式时
次为12时。如果offset不等于0,则在offset=0的基础上进行调整。
-mmaxsteps:模式积分的最大步数,为非负整数。缺省时则根据起止时间
和积分步长计算出最大积分步数。WRFV2中,此参数作为模式积分的
最大小时数。即使-f指定了预报时效长度,此参数可以指定模式在运行
maxsteps小时后终止运行。
-njobname:PBS作业的名称,为字符穿,缺省值为“wrf_xp”。
-ooffset:相对于指定的起始时间的偏移时间长度,为任意的整数,可以取
为负整数,单位为小时,缺省值为0。此选项设置时,则将起报时间(选
项-s指定的起报时间starttime或者根据当前计算机时间确定的起报时
间starttime)进行调整。
-pprocs:并行运行的线程数,仅对并行程序起作用。其中procs为正整数,
指定线程的个数。
-q:运行方式的标志选项。设置此选项时,模式自动运行;不设置此选项
时,模式交互式运行,并显示相关的模式运行信息。缺省时为交互式。
-r:运行方式标志选项。设置此选项时,模式将按shell方式提交作业,而
不用LoadLeveler或者PBS等作业管理器。缺省此选项时,模式将利用
LoadLeveler或者PBS等作业管理器进行作业管理。
-sstarttime:预报起始时间,为数字型字符串,格式为yyyymmddhh。其中,
yyyy为四位数字的年份,mm为两位数字的月份,dd为两位数字的日
期,hh为两位数字的小时数。此参数缺省时,模式则更加计算机的当
前时间以及时间间隔选项”-i”指定的”interval”值来确定模式运行的起始
时间
word格式-可编辑-感谢下载支持
参数:[[[[readt213]wrfsi]wrf3dvar]wrfmodel]
readt213:模块readt213标志参数,为小于等于1的非负整数。指定是否运
行程序。缺省值为0。
0:不运行;
1:运行;
wrfsi:模块wrfsi标志参数,为小于等于6的非负整数。指定是否运行WRFSI
程序。缺省值为0。
0:不运行WRFSI程序;
1:运行全部的WRFSI程序,包括grib_,gridgen_,
和;
2:跳过gridgen_,运行grib_,;
3:跳过grib_,运行gridgen_,;
4:只运行grib_y;
5:只运行gridgen_程序;
6:只运行和程序;
wrf3dvar:模块wrf3dvar标志参数,为小于等于6的非负整数。指定是否
运行WRF3DVAR程序。缺省值为0。
0:不运行WRF3DVAR程序;
1:运行全部的WRF3DVAR程序,包括UPFC,READOB,WRF3Dand
UPBC;
2:跳过UPBC,运行UPFC,READOBandWRF3D;
3:跳过UPFC,运行READOB,WRF3D,andUPBC;
4:只运行UPFC程序;
5:只运行READOBandWRF3D程序;
6:只运行UPBC程序;
wrfmodel:模块wrfmodel标志参数,为小于等于3的非负整数。指定是否
运行WRF模式的和程序。缺省值为0。
0:不运行;
1:程序和程序两者都运行;
2:只运行程序;
3:只运行程序。
post:模块post标志参数,为小于等于1的非负整数。指定是否运行WRF
模式的后处理程序。缺省值为0。
0:不运行;
1:运行后处理程序;
verify:模块verify标志参数,为小于等于1的非负整数。指定是否运行
WRF模式检验程序。缺省值为0。
0:不运行;
1:运行检验程序;
示例:
(1).根据计算机当前时间,运行所有的模式步骤,模式积分24小时。设置模式
起报时间的“年月日”为当前计算机时间,时次为00、06、12或者18等时次之
一(如当前时间为2004-4-29_05:30:00,则起报时次为2004-4-29_00:00:00)。PBS
word格式-可编辑-感谢下载支持
作业名称为“wrf_xp”。
(2).模式从2004-4-29_00时开始,跳过readt213,grib_prep和UPFC,模式积分
48小时。PBS作业名称为“wrf_xp”。
-s2004042900-f480331
(3).模式从2004-4-28_12时开始,跳过readt213,grib_prep和gridgen_model,
模式积分48小时。PBS作业名称为“wrfdeng”。
-s2004042900-o-12-f36-nwrfdeng0611
(4).根据计算机当前时间,跳过readt213,grib_prep,gridgen_model和UPFC,
模式积分36小时。设置模式起报时间为当前计算机时间前推12小时,时次为
00或者12等时次之一(如当前时间为2004-4-29_05:30:00,则起报时次为
2004-4-28_12:00:00)时开始。PBS作业名称为“wrfdeng”。
-o-12-i12-f36-nwrfdeng0631
(5).根据计算机当前时间,跳过readt213,grib_prep和gridgen_model,模式积分
36小时。设置模式起报时间为当前计算机时间前推12小时,时次为00,06,12
或者18等时次之一(如当前时间为2004-4-29_05:30:00,则起报时次为
2004-4-28_12:00:00)时开始。PBS作业名称为“wrf_xp”。程序运行完后,将预
报结果文件拷贝到$MOADDATA/fcst中。
-o-12-f36-c0611
(B)
功能:根据指定时间或者机器当前时间,修改模式参数列表文件
中的模式运行时间参数。
输入文件:
输出文件:
用法:[选项]
选项:[-fforecast][-h][-iinterval][-mmaxsteps][-ooffset][-sstarttime]
-fforecast:预报时效长度,为正整数,单位为小时,缺省值为24。
-h:在屏幕上显示帮助信息。(预留)
-iinterval:模式循环的时间间隔,为小于等于24的正整数,单位为小时,
缺省值为6。当设置了起始时间选项-s时,此项不起作用,只有在缺省
模式起始时间选项-s时起作用。比如当interval=12,且offset=0时,
则确定模式的运行循环的时间间隔为12小时,即模式的起报时次为00
时或者12时。程序在运行时,根据当前的计算机时间来确定模式的起
报时间是为00时还是12时,当计算机的当前时间为00~11时,则模
式的起报时次为00时,当计算机的当前时间为12~23时,则模式时次
为12时。如果offset不等于0,则在offset=0的基础上进行调整。
-mmaxsteps:模式积分的最大步数,为非负整数。缺省时则根据起止时间
和积分步长计算出最大积分步数。WRFV2中,此参数作为模式积分的
最大小时数。即使-f指定了预报时效长度,此参数可以指定模式在运行
maxsteps小时后终止运行。
-ooffset:相对于指定的起始时间的偏移时间长度,为任意的整数,可以取
为负整数,单位为小时,缺省值为0。此选项设置时,则将起报时间(选
项-s指定的起报时间starttime或者根据当前计算机时间确定的起报时
word格式-可编辑-感谢下载支持
间starttime)进行调整。
-sstarttime:预报起始时间,为数字型字符串,格式为yyyymmddhh。其中,
yyyy为四位数字的年份,mm为两位数字的月份,dd为两位数字的日
期,hh为两位数字的小时数。此参数缺省时,模式则更加计算机的当
前时间以及时间间隔选项”-i”指定的”interval”值来确定模式运行的起始
时间
参数:无
备注:中调用到的函数&wrftool::compute_time()的时间计算中,
要将月份先减1,计算完后再加上1,否则会造成大小月错位,比如4月有31
天,而5月可能只有30天。
示例:
(1).修改模式参数配置文件,设置模式起报时间的“年月日”为当
前计算机时间,时次为00、06、12或者18等时次之一(如当前时间为
2004-4-29_05:30:00,则起报时次为2004-4-29_00:00:00)。
(2).修改模式参数配置文件中模式起报时次为2004-4-29_00,预报
时效为48小时。
-s2004042900-f48
(3).修改模式参数配置文件中模式起报时次为2004-4-28_12,预报
时效为36小时。
-s2004042900-o-12-f36
(4).修改模式参数配置文件,设置模式起报时间为当前时间前推12
小时,时次为00或者12两时次之一(如当前时间为2004-4-29_05:30:00,则起
报时次为2004-4-28_12:00:00)。
-o-12-i12
(C)
功能:运行WRF模式系统。
输入文件:
$T213ROOT/$MOADDATA/static/
$MOADDATA/cdl/$WRF3DVROOT/namelist.3dvar
$WRFROOT/test/$casename/
输出文件:$T213ROOT/
$MOADDATA/static/$MOADDATA/cdl/
$WRF3DVROOT/namelist.3dvar
$WRFROOT/test/$casename/
用法:[选项]
选项:[-c][-h][-n][-q][-r]
-c:拷贝标志。此选项设置是,则拷贝模式运行的最终结果wrfout_d01_*
到$MOADDATA/fcst目录下面。
-h:在屏幕上显示帮助信息。(预留)
-njobname:PBS作业的名称,为字符穿,缺省值为“wrf_xp”。
word格式-可编辑-感谢下载支持
-pprocs:并行运行的线程数,仅对并行程序起作用。其中procs为正整数,
指定线程的个数。
-q:运行方式的标志选项。设置此选项时,模式自动运行;缺省此选项时,
模式交互式运行,并显示相关的模式运行信息。
-r:运行方式标志选项。设置此选项时,模式将按shell方式提交作业,而
不用LoadLeveler或者PBS等作业管理器。缺省此选项时,模式将利用
LoadLeveler或者PBS等作业管理器进行作业管理。
参数:无
脚本程序首先会检测参数配置文件里给出的路径设置,然后根据参数配置设
置运行命令文件。当命令行不带参数-r时,程序将修改Loadleveler作业卡文件
;当带有参数-r时,程序将修改文件,并将结果输出到
文件中,最后会将其作为作业卡文件来运行作业。然后,程序会根据运行的WRF
系统程序块来修改相应目录的参数配置文件()。比如当要运行
程序,则脚本程序会自动修改程序所在目录下的参数配
置文件,否则将跳过此参数配置文件的修改;当运行
gengrib_或&程序时,则脚本程序会自动修改数
据路径MOADDATA/data下的参数配置文件,否则将跳过此文件的修改;
当运行或程序时,脚本程序将自动修改WRF模式目录下的子目
录./test/$case_name/中的参数配置文件,否则将跳过此文件的修改。
自动修改完相应的作业卡以及参数配置文件后,脚本将提交作业卡(或者根据用
户交互信息决定是否提交作业卡)运行作业。
脚本运行后,如果要按rsh方式提交了作业卡运行作业,则在还必须在提交
作用前,在WRF模式运行的方案目录下创建一个名字为“”的运行节点
信息文件,其格式为:
sp01n05denglt
sp02n09denglt
sp02n09denglt
sp03n05denglt
sp04n01denglt
…
运行后,当前目录下生成两个状态记录文件:
rst_:保存作业运行时产生的错误信息。
rst_:保存作业运行时产生的输出信息。
如果是按Loadleveler方式提交作业卡运行作业,在在相应的$MOADDATA/log
目录下产生相应的状态记录文件:
rst_$:保存作业运行时产生的错误信息。
rst_$:保存作业运行时产生的输出信息。
其中,$model表示相应的程序名称,有效名称为readt213,gengrid,interp,real
以及wrf。
示例:
1.运用作业管理系统(PBS或者LoadLeveler)交互式运行WRF模式,PBS作
业名称为“wrf_xp”。
word格式-可编辑-感谢下载支持
方式交互式提交WRF模式作业。
-r
方式自动运行WRF模式。
-r-q
4.运用作业管理系统(LoadLeveler或者PBS)自动运行WRF模式,PBS作业
名称为“wrfdeng”。
-q-nwrfdeng
特别提示:
1.脚本运行时,如果要按rsh方式提交了作业卡运行作业,则在还必须在提交
作用前,在WRF模式运行的方案目录(如em_real)下创建一个名字为“”
的运行节点信息文件,其格式为:
节点名用户名
举例如下:
sp01n05denglt
sp02n09denglt
sp02n09denglt
sp03n05denglt
sp04n01denglt
…
2.运行时,由于机器型号和操作系统环境的不同,并行程序的运行方式也不同。
比如,有的机器是的运行方式是:
mpirun-np8myprogram
而有些机器的运行方式是:
myprogram-procs8
这里的数字“8”是指定并行程序运行的线程数目。
因此,在使用脚本程序提交作业时,必须注意并行程序(da-和)
的运行方式。特别要注意用选项“-r”的shell方式提交时的运行方式,如果发现
并行程序提交失败,而串行程序正常的话,很可能时由于这个原因造成的。解决
的办法是弄清楚本机器的并行运行的命令行方式,然后修改文件中的并
行运行程序(da-和)的命令行即可。比如将:
$executable="da_-procs$procs";
修改成:
$executable="mpirun-np$procsda_";
其中,$procs是脚本程序中指定并行程序运行的线程数目的变量,建议不要改动。
3.在WRF模式中,已经有输入输出文件名选项了,只是在namelist中未给出。
因此,只要在WRF的文件中给出相应的关键词,就可以赋值。
如果带上路径的话,还可以指定输入输出文件路径。例如:
history_inname="/gdata/wrf_xp/denglt/moad/siprd/wrfout_d_",
history_outname="/gdata/wrf_xp/denglt/moad/wrfhist_d_",
word格式-可编辑-感谢下载支持
bdy_inname="/gdata/wrf_xp/denglt/moad/siprd/wrfbdy_d",
input_inname="/gdata/wrf_xp/denglt/moad/siprd/wrfinput_d",
同时,由于wrfbdy的路径不对,需要修改share/mediation_integrate.F中的边界条
件文件名的构造方式。只需将CALLconstruct_filename1(bdyname,'wrfbdy',
grid%id,2)注释掉。
4.初始场和边条件程序的输入输出文件名和的有点差异,需要
自己修改。具体修改方法如下:
(1)修改Registry,在Registry/中添加real_inname关键词。具体
添加规则可以参考Registry中其他关键词,如bdy_inname,input_inname等。
rconfigcharacterreal_innamenamelist,time_control1"wrf_real_input_em"
-"nameofrealinputinfile"""""
(2)修改real_em.F中的输入输出文件名的构造方式。(由旧换成新)
旧:CALLconstruct_filename2(si_inpname,'wrf_real_input_em',grid%id,2,
current_date_char)
新:CALLconstruct_filename2(si_inpname,config_flags%real_inname,&
grid%id,2,current_date_char)
旧:CALLconstruct_filename1(bdyname,'wrfbdy',grid%id,2)
新:CALLconstruct_filename2a(bdyname,config_flags%bdy_inname,&
grid%id,2,'dummydate')
旧:CALLconstruct_filename1(inpname,'wrfinput',grid%id,2)
新:CALLconstruct_filename2a(inpname,config_flags%input_inname,&
grid%id,2,'dummydate')
5.单向嵌套程序ndown_em.F的文件名修改与real_em.F相似。
6.目前,运行程序时,每次只能处理一个网格的初始场和边条件。然
而,在WRFSI中,已经实现了一次处理多个嵌套网格的功能。因此,将初
始场和边条件生成程序real_em.F稍作修改,应该也能一次处理多个网格。
具体的修改方法如下:
(1)在real_em.F主程序中添加变量声明:
TYPE(domain),POINTER::new_grd
INTEGER::domain_id(如果程序中有此变量的定义,就不用重复添
加了。)
(2)在grid=>head_grid(real_em.F中约第103行)后,添加了获取模式嵌套区域数语句:
CALLget_max_dom(max_dom)
现改为
CALLnl_get_max_dom(grid_id,max_dom)(2.0.3版本)
(3)获取模式区域数后,就可添加区域循环,对每一个区域都分别进行处理。循环的添
加位置大致如下:
DOdomain_id=1,max_dom
CALLSetup_Timekeeping(grid)
…
CALLwrf_debug(100,'backfrommed_sidata_input')
word格式-可编辑-感谢下载支持
ENDDO!domain_id=1,max_dom
(4)在区域循环的开始,即在添加一段嵌套网格空间分配和赋值的语句。
DOdomain_id=1,max_dom
if(domain_.1)then
CALLalloc_and_configure_domain(domain_id,new_grd,grid,1)
grid=>new_grd
endif
CALLSetup_Timekeeping(grid)
...
ENDDO
!Wearedone.
(5)在real_em.F程序中,修改了子程序med_sidata_input()。在时间循环中,添加了处
理条件:在时间循环为1时,则表示为初始场,每个区域都要处理初始场;而当时间循
环大于1时,则表示处理边界条件,只有主区域(domain_id=1)要处理边条件,其他
区域则跳过。因此,时间循环中的限制条件按如下方法添加:
DOloop=1,time_loop_max
if(grid%.1)then
。。。
endif
ENDDO
或者改成:
DOloop=1,time_loop_max
if(grid%.1)exit
ENDDO
(6)在real_em.F程序中,修改了子程序assemble_output()。添加了处理ALLOCATE函
数错误的情况。
if(ALLOCATED(ubdy3dtemp1))DEALLOCATE(ubdy3dtemp1)
if(ALLOCATED(vbdy3dtemp1))DEALLOCATE(vbdy3dtemp1)
if(ALLOCATED(tbdy3dtemp1))DEALLOCATE(tbdy3dtemp1)
if(ALLOCATED(pbdy3dtemp1))DEALLOCATE(pbdy3dtemp1)
if(ALLOCATED(qbdy3dtemp1))DEALLOCATE(qbdy3dtemp1)
if(ALLOCATED(mbdy2dtemp1))DEALLOCATE(mbdy2dtemp1)
if(ALLOCATED(ubdy3dtemp2))DEALLOCATE(ubdy3dtemp2)
if(ALLOCATED(vbdy3dtemp2))DEALLOCATE(vbdy3dtemp2)
if(ALLOCATED(tbdy3dtemp2))DEALLOCATE(tbdy3dtemp2)
if(ALLOCATED(pbdy3dtemp2))DEALLOCATE(pbdy3dtemp2)
if(ALLOCATED(qbdy3dtemp2))DEALLOCATE(qbdy3dtemp2)
if(ALLOCATED(mbdy2dtemp2))DEALLOCATE(mbdy2dtemp2)
注意,这些语句要放在ALLOCATE语句前面,否则会导致严重错误。
word格式-可编辑-感谢下载支持
6.模式结果的显示处理
目前,已经初步地将WRF模式的输出结果转换成VIS5D、GrADS以及
MICAPS的数据格式,显示WRF模式的输出结果。
6.1Vis5D格式
目前,将WRF数据结果转换成Vis5D数据格式的方法是采用WRF网站提
供的WRF2Vis5D的转换程序包。再运行WRF2Vis5D转换程序前,必须要求系
统中有Vis5D软件环境。如果系统中没有,则必须先进行安装。安装Vis5D的源
程序代码在Vis5D的FTP网站中下载,文件名为
.Z。将它解压到自己的一个目录中,然后在IBMSP机器上可输入命
令“makeibm-x”进行编译。编译安装好Vis5D环境后,接下来就可以运行
WRF2Vis5D程序,其操作步骤如下:
(1)从WRF网址下载程序包;
(2)解压文件
(3)修改makefile文件;
首先,应该指定NetCDF和Vis5D的安装路径:
LIBNETCDF=-L/usr/local/netcdf/lib-lnetcdf-lm
LIBVIS5D=/usr/local/vis5d/src/binio.o/usr/local/vis5d/src/v5d.o
INCLUDE=-I/usr/local/netcdf/include-I./
其次,根据编译需要,必须指定编译的一些选项,比如:
FC=xlf90
FCFLAGS=-g-C-qfree=f90
(4)键入“make”或者“makewrf_to_v5d”进行编译;
(5)修改wrf_v5d_input文件中的输出配置参数;
参数文件wrf_v5d_input中的数据格式如下:
-1!numberoftimestoputinvis5dfile,negativemeansignorethetimes
2000-01-24_18:00:00
U!variablelistforvis5dfile,indentonespacetoskip
V!firstfiveinlistarespecialvariables(diagnosed)
W
RAINC
end_of_variable_list
wrfout_01_000000!datafilestopullfieldsfrom
end_of_file_list
-1!specifyv5dverticalgrid0=cartesian,-1=interptozfromlowesth,>1
listlevels(z)desiredinvis5dfile
10.8
22.
35..5
48.
510.
在wrf_v5d_input文件中,首先可以指定输出数据的时次和具体时间,也就是
word格式-可编辑-感谢下载支持
让程序输出符合用户指定各个时次和指定具体时间的数据。WRF模式结果数据
文件中的包含哪些时间的数据,可以用“ncdump”命令来看。例如:
ncdump-hwrfout_d01_000000>
指定时次时,将配置参数文件wrf_v5d_input的第一行的第一个数据设置程用户
需要的时次数(大于零)。设置具体每一时次的时间时,可以列出要输出的时间
字符串,形式为:yyyy-mm-dd_hh:mm:ss。y表示年,m表示月,d表示天,h表
示小时,m表示分钟,s表示秒。如果要将结果文件中包含的各个时次都输出的
话,可将时次数设置成-1,程序会自动地搜寻各个时次并输出。
wrf_v5d_input文件中接下来的部分是设置要输出的变量名称列表。这些变
量名必须是WRF模式结果文件(NetCDF格式)中包含的变量名。查看变量名
时,可以上面查看ncdump生成的头文件。在wrf_v5d_input中,包含一
些变量列表的例子。如果不需要输出哪一个变量,只需在此变量名前面加一个空
格,程序将会忽略这个变量。另外,在此文件中的前五个变量(U,V,W,THETA,TK)
都是模式诊断量,而不是模式的直接输出量。变量列表的结束以
“end_of_variable_list”为标志。
wrf_v5d_input的第三部分是文件列表部分。转换程序可以同时处理多个
WRF模式的输出结果文件。只需将各个文件的名称列出即可。文件列表部分一
“end_of_file_list”为结束标志。
wrf_v5d_input的最后一部分是指定输出量是否插值到等高面。0表示按模式
面直接输出;-1表示输出量插值到模式层数相等的等高面上,最低层为模式地形
的最低点的高度面,最高层为模式层顶;大于0的整数表示插值到指定层数和各
层高度的等高面上。各层高度在指定层数后列出。
(6)运行命令
wrf_to_v5dwrf_v5d_inputwind.v5d
如果运行正确,即可得到Vis5D格式的输出文件wind.v5d,当然也可以用
其他的文件名。
(7)输入“vis5dwind.v5d”,即可在Vis5d中进行显示。
6.2MICAPS格式
为了将WRF模式的NetCDF格式的结果转换成MICAPS系统所能识别的格
式,我进行了细致的程序设计,整个程序编写规范,具有很强的可移植,易于维
护。同时由于采用了F90的动态分配数组功能,对系统的内存开销要求非常小,
保证了以后高分辨率模式运行结果的处理能力。
6.2.1程序设计
由于MICAPS系统的数据管理格式是各个变量的每个时次以及层次分别存
储为一个单独的文件,因此为了减少输入/输出的次数,提高后处理程序的效率,
在程序设计时采取以变量为单位,即处理完一个变量的各个时次数据后再处理下
一个变量的思路。程序的流程示意图如图11所示。
word格式-可编辑-感谢下载支持
开始
处理输入信息列表
变量循环:当1≤变量号≤变量总数
获取变量信息
时间循环:当计算时间在起止时间内
读取变量
去除耦合影响
去除跳点影响
按MICAPS格式输出变量
结束:变量循环
结束:时间循环
结束
图后处理程序流程示意图(WRF到MICAPS)
word格式-可编辑-感谢下载支持
6.2.2源程序
转换程序是在WRF2Vis5D和WRF2GrADS两个程序的基础上,采用
Fortran90语句编写而成的。源程序文件包括:
wrf2micaps.F
module_wrf_general_util.F
module_wrf_netcdf.F
module_wrf_to_micaps_util.F
另外,除了源程序代码外,还有编译规则文件makefile,参数配置文件
,和参数配置预处理脚本文件。
6.2.3转换程序的编译
编译时,只需键入“make”命令,系统则会根据makefile中定义的规则编
译后处理程序。编译成功后,会产生一个可执行文件:
6.2.4转换程序的运行
(1)编辑参数配置文件。
参数配置中的信息包括指定输入文件、指定输出数据目录、
指定插值的等值面的类型、指定等值面的各层具体值、指定是否打印调试信息
以及指定各个输出变量。其格式如下:
input_file="/gpfs1/fs1/denglt/wrfdata/wrfv13/wrfout_20001116"
DATA_ROOT="/gpfs1/fs1/denglt/micaps"
interp_horizonal=1!0:nointerp,1:1:converttoLat/Longrids
interp_vartical=1!0:nointerp,1:pressurelevels,2:heightlevels
surface_levels="1000.,925.,850.,700.,600.,500.,400.,300.,200.,150."
!surface_levels="0.8,2.0,3.0,4.0,5.5,6.0,7.0,8.0,9.0,10.0"
output_type=2!1:tomicaps,2:tograds
grid_x=160
grid_y=150
debug=.false.
Model3DFields
3dmf=0|AL="扰动密度倒数";
3dmf=0|P="z@int(1-10:5.0),bold(1:1000.,2:925.,3:850.,5:500.,6-10:400.);
a@5.0";"气压";
3dmf=0|PB="z@int(1-10:5.0),bold(1:1000.,2:925.,3:850.,5:500.,6-10:400.);
a@5.0";"静态气压";(半层)
……
Post-Processed3Dfields
3dpf=0|ua="z@int(1-10:4.0),bold(1-10:0.);p@int(1-10:4.0),bold(1-10:0.);
a@4.0";"纬向风速";
3dpf=0|va="z@int(1-10:4.0),bold(1-10:0.);p@int(1-10:4.0),bold(1-10:0.);
a@4.0";"经向风速";
word格式-可编辑-感谢下载支持
……
ModelSoilFields
slf=0|SMOIS="a@5.0";"土壤湿度";
slf=0|TSLB="a@4.0";"土壤温度";
Model2DFields
2dmf=1|HGT="a@100,0.";"地形高度";
2dmf=0|RAINC="a@5.0,0.";"累积总积云降水";ACCUMULATEDTOTAL
CUMULUS
PRECIPITATION";
……
Post-Processed2Dfields
2dpf=0|slvl="a@4.0,0.";"海平面气压";
2dpf=0|TSK="a@4.0,0.";"地表/海表温度";
其中,第一部分中input_file是指定输入数据的文件名,一次只能指定一个
结果文件名。DATA_ROOT是输出数据存放的目录,可以任意指定用户具有读写
权限的路径名。interp_horizonal是指定是否将模式输出结果从模式的水平计算格
点转换到指定的经纬网格点范围中的标志量,0表示不转换,1表示转换到经纬
网格点。interp_vertical是指定插值面的类型的标志量,0表示不插值,直接按照模
式面输出,1表示插值到指定的等压面输出,2表示插值到指定的等高面输出。
surface_levels是指定各插值面的具体值。当interp_vertical=0时程序将忽略此变
量;当interp_vertical=1时表示各等压面的值;当interp_vertical=2时表示各等高
面的值。output_type是输出数据类型的标志量,1表示输出为MICAPS类型,2
表示输出为GrADS类型。grid_x和grid_y分别表示输出的经纬网格点的水平范
围。debug是程序是否输出调试信息的标志量,“.true.”表示输出调试信息;“.false.”
表示不输出调试信息。
接下来的部分是指定程序输出变量信息的部分。程序将WRF模式的变量类
型分类为5种类型:二维的预报量,用“2dmf”标识;二维的诊断量,用“2dpf”
标识;三维预报量,用“3dmf”标识;三维诊断量,用“3dpf”标识;三维的土
壤变量,用“slf”标识。
变量指定信息可以续行写,续行标识用反斜杠“”。每一个变量的指定信息
中都一个“|”分隔符,它将信息分隔成两个部分。前一部分是指定变量是否要
输出,要输出时,他们的标识量等于1,不要输出时,他们的标识量等于0。后
一部是指定变量的具体相关信息,它包括变量名,变量的中文注释名,以及变量
在等高面或者等压面上的等值线间隔,加粗线等附加信息。变量名是等号右边部
分;等号左边的部分可能用引号括在一起,引号内的各部分用分号分隔开来。中
文注释部分为引号中的最后一部份;其他部分为变量的附加信息,其中,等高面
的信息用“z@”标识,等压面信息用“p@”标识,缺省时,用“a@”标识,
即任何一种等值面都采用的附加信息。附加信息的括号中的关键词“int”表示等
值线的间隔值,其后紧接各层取值,用小括号括起来;bold表示MICAPS第四
类数据格式中的加粗线,其后紧接各层取值,用小括号括起来。括号中的各层取
值的规则是:层数值的范围为1到n,对应于surface_levels中的各层,n为
surface_levels中的总层数;层数值之间可以用逗号连接,也可以用中画线“-”
连接一个范围,如2-5表示从第二到第五层。层数后面紧接间隔取值或加粗线取
word格式-可编辑-感谢下载支持
值,他们之间用冒号分隔。
(2)运行UNIX的shell脚本。此脚本预处理输入参数配置文件
,将其中的信息写成标准的Fortran90的namelist数据格式。并且可
以调用./程序。运行正确后,会产生如下MICAPS数据格式的文
件,文件名具有以下的形式:
ua_0850_2003041706.000
6.3GrADS格式
转换GrADS是在转换MICAPS格式的基础上实现的。
6.3.1程序设计
由于GrADS系统的数据管理格式是依次存放每个变量的各层次在同一时次
的数据,因此在程序设计时采取以时次为单位,即处理完一个时次的各个变量数
据后再处理下一个时次的思路。程序的流程示意图如图12所示。
开始
处理输入信息列表
变量循环:当1≤变量号≤变量总数
获取变量信息
时间循环:当计算时间在起止时间内
读取变量
去除耦合影响
去除跳点影响
按MICAPS格式输出变量
结束:变量循环
结束:时间循环
结束
图后处理程序流程示意图(WRF到MICAPS)
word格式-可编辑-感谢下载支持
6.3.2源程序文件包括:
wrf2grads.F
module_wrf_general_util.F
module_wrf_netcdf.F
module_wrf_to_micaps_util.F
同样,除了源代码文件外,还有编译规则文件makefile,参数配置文件
,和参数配置预处理脚本文件。
6.3.3转换程序的编译
编译时,键入命令,
makegrads
系统则会根据makefile中定义的规则编译后处理程序。编译成功后,会产生
一个可执行文件:
6.3.4转换程序的运行
(1)设置参数配置文件。
设置参数配置中的信息与WRF2MICAPS中的设置方法相同。
(2)运行UNIX的shell脚本。
此脚本预处理输入参数配置文件,将其中的信息写成标准
的Fortran90的namelist数据格式。运行完程序后,输入命令
运行正确后,会产生如下Grads数据格式的文件和数据描述文件,文件名
具有以下的形式:
wrf2003041706_描述文件
wrf2003041706_数据文件
(3)运行GrADS软件,打开数据描述文件,即可显示WRF的结果。
grads-l-c“openwrf2003041706_”
word格式-可编辑-感谢下载支持
附录1WRF模式参数配置说明
参数配置第一部分
&namelist_01
time_step_max
运行的最大步数。比如要模式积分几个小时的话,就可以根据时间长
度和步长计算出运行的最大步长数。例如:如果要计算模式积分12小时,
水平格点分辨率为10公里,时间步长为50秒的话,那么12小时中最大时
间步长数为12×360050=864。
max_dom(目前默认值为1)
计算区域个数(目前为预留参数)。目前由于套网格技术还没实现,计
算区域默认值为1,不要改动。
dyn_opt(默认值为1)
模式框架配置选项:
1=欧拉高度坐标
2=欧拉质量坐标
3=半拉格朗日(目前还没完成)
rk_ord(默认值为3)
本参数定义Runge-Kutta时间积分方案阶数:
2=Runge-Kutta二阶
3=Runge-Kutta三阶(推荐)
diff_opt(默认值为1)
湍流和混合作用选项:
0=没有湍流或者显式空间数值滤波(km_opt将被忽略)(explicitspatial
numericalfilters)
1=老扩散方案,计算坐标面上二阶扩散项(要用到khdiv和kvdif,但
km_opt将会被忽略).
2=新扩散方案,计算物理空间(x,y,z)中的混合作用项(应力形式)。用
km_opt来指明湍流参数化过程。
km_opt(默认值为1)
湍涡系数选项:
1=固定不变(用参数配置第三部分的khdif,kvdif参数值)
与diff_opt=1的区别在于km_opt的水平扩散作用不在模式的zeta
面上。因此,只有在没有地形的情况下,这两个选项的作用才是相
同的。
2=1.5阶TKE(湍流动能)闭合
3=Smagorinsky一阶闭合
word格式-可编辑-感谢下载支持
damp_opt(默认值为1)
顶层抽吸作用标志选项(当diff_opt=1时,此选项失效)。同时,必需在
参数配置第三部分设置zdamp和dampcoef参数。
0=无抽吸作用
1=有抽吸作用
ISFFLX(默认值为1)-在使用扰动边界层时有效
此选项指定在选用扰动边界层和陆面物理过程时,是否考虑地面热量和水
汽通量:
1=考虑地面通量
0=不考虑地面通量
IFSNOW(默认值为0)-只有在利用扰动边界层PBL预报土壤温度是才有效。
此选项指定是否考虑雪盖效应。考虑雪盖效应是,必须要有雪盖输入场。
1=考虑雪盖效应
0=不考虑雪盖效应
ICLOUD(默认值为1)
此参数指定辐射光学厚度中是否考虑云的影响。
1=考虑云的影响
0=不考虑云的影响
num_soil_layers(默认值为=5,用于bl_sfclay_physics=1)
指定陆面模式中的土壤层数。
spec_bdy_width(默认值为5)
此参数指定用于边界过渡的格点总行数。此参数只用于真实大气方案。参
数的大小至少为spec_zone和relax_zone的和。
spec_zone(默认值为1)
指定定义区域(specifiedzone)的格点数。
(only).
relax_zone(默认值为4)
指定松弛区域的格点数。
(only).
tile_sz_x(默认值为0)
在共享式内存进程中指定x方向计算的格点数。如果指定了numtiles,则
不需要此参数。
tile_sz_y(默认值为0)
在共享式内存进程中指定y方向计算的格点数。如果指定了numtiles,则
不需要此参数。
word格式-可编辑-感谢下载支持
numtiles(默认值为1)
此参数在共享式内存进程中指定每个内存块中的内存片数。
(或者是指定上面tile_sz_x和tile_sz_y两个参数)
debug_level(默认值为0)
此选项指定模式运行时的调试信息输出等级。取值可为0,50,100,200,300,
数值越大,调试信息输出就越多。
参数配置第二部分
&namelist_02
grid_id(默认值为1)
计算区域的编号(目前为预留参数).
level(默认值为1)
计算区域的嵌套等级(目前为预留参数).
s_we(默认值为1)
x方向(西-东方向)的起始格点值(通常为1).
e_we(默认值为32)
x方向(西-东方向)的终止格点值(通常为x方向的格点范围)。
s_sn(默认值为1)
y方向(南-北方向)的起始格点值(通常为1).
e_sn(默认值为32)
y方向(南-北方向)的终止格点值(通常为y方向的格点范围)。
s_vert(默认值为1)
z方向(垂直方向)的起始格点值。
e_vert(默认值为31)
z方向(垂直方向)的终止格点值,即全zeta层的总层数。
time_step_count_output(默认值为10)
此参数指定模式结果输出频率。此参数值为模式计算时间步长数。
例如,如果你想模式每小时输出一次,而你的时间步长设置为50秒,那么
此参数则可设置为3600/50=72。
frames_per_outfile(默认值为10)
此参数指定每一个结果文件中保存输出结果的次数,因此可以将模式结果
分成多个文件保存。不过,目前的后处理程序还不支持这样分割存储的结果文
word格式-可编辑-感谢下载支持
件,所以最好还是将这个参数设置为足够大。
time_step_count_restart(默认值为10)
此参数指定模式重新启动时的输出中间文件的输出频率。此参数值为模式
计算时间步长数。
例如将此参数设置为10的话,那么模式将每10个时间步长就创建一个重
启的数据文件。
time_step_begin_restart(默认值为0)
这个参数指定系统重新运行在那一时间步长开始(0=不重新启动)。要求提
供一个以此数字结尾的重新启动模式的文件名。
time_step_sound(默认值为10)
每一时间步长中声波的步长数(soundsteps)。
通常为4。
参数配置第三部分
&namelist_03
dx(单位为米,默认值为200米)
指定x方向的格距。在真实大气方案中,此参数值必须与输入数据中的x
方向格距一致。
dy(单位为米,默认值为200米)
指定y方向的格距。通常与x方向格距相同。
dt(单位为秒,默认值为2秒)
指定平流时间步长或大时间步长。通常,dt为dx(单位为公里)的5~7倍。
例如:水平格距为10km,那么可以取dt=60秒。
ztop(单位为米,默认值为15000米)
此参数指定模式顶的高度。通常取20000米。在真实大气方案中,此高度
值必须与WRFSI的数据或其他输入数据中的高度值相同。
zdamp(单位为米,默认值为5000米)
只有在damp_opt=1时,才使用此参数。
此参数设定模式顶部的抽吸厚度。推荐值为5000米。如果选项diff_opt=1,
那么zdamp参数无效。
dampcoef(默认值为0.2)
只有在damp_opt=1时,才使用此参数。
此参数指定抽吸系数(dampcoef<=0.25),并且与zdamp选项一起配合使用。
non_hydrostatic(默认为.False.)
模式动力框架参数,指定模式动力框架是否是非静力模式,.true.为非静
力,.false.为静力。
word格式-可编辑-感谢下载支持
smdiv(默认值为0)
此参数设定辐散抽吸(系数)(通常取为0.1)。此参数在时间分裂RK方案中
用于选择性地消除声波。
emdiv(默认值为0.)
此参数用于欧拉质量模式框架中指定额外抽吸模系数(externalmode
damping)。
只用于欧拉质量坐标模式框架的真实大气方案中(通常取为0.01)。
epssm(默认值为.1)
此参数指定垂直声波的离心时间(timeoff-centering)。此参数在时间分裂RK
方案中用于选择性地消除声波。
khdif(默认值为0)
此参数设定水平扩散系数(单位为m^2/s)。使用此参数时,必须设定选项
diff_opt=1或者km_opt=1。
kvdif(默认值为0)
此参数设定垂直扩散系数(单位为m^2/s)。使用此参数时,必须设定选项
diff_opt=1或者km_opt=1。
mix_cr_len(默认值为200)
此参数指定各向同性和各向异性扩散的临界混合长。当选项km_opt=2或3
时,要用到此参数。
radt(默认值为0,单位为分钟)
此参数指定调用辐散物理方案的时间间隔,单位为分钟。通常比较合理的间
隔值为30分钟。
bldt(默认值为0,单位为分钟)
此参数指定调用边界层物理方案的时间间隔,单位为分钟。0(推荐值)表
示每一个时间步长都调用边界层物理方案。
cudt(默认值为0,单位为分钟)
此参数设定积云参数化方案的调用时间间隔。一般的积云参数化方案是每
一步都要调用,但如果是用Kain-Fritsch方案(cu_physics=1),则可以设cudt=5。
julyr(默认值为0)
此参数设定模式运行的起始公历年份。此参数仅用于一些采用了辐射方案的
理想大气方案中。
julday(默认值为1)
此参数设定模式运行的起始公历天数。此参数仅用于一些采用了辐射方案的
理想大气方案中。
word格式-可编辑-感谢下载支持
gmt(默认值为0.)
此参数设定模式运行的起始时间的世界时数(小时为单位)。此参数仅用于一
些采用了辐射方案的理想大气方案中。
参数配置第四部分
&namelist_04
periodic_x(逻辑型,默认值为.false.)
此选项指定在x方向是否使用周期性边界条件。通常只用于理想大气试验
方案。
symmetric_xs(逻辑型,默认值为.false.)
此选项指定在x方向的起始点(西边界)是否使用对称性边界条件。通常只用
于理想大气试验方案。
symmetric_xe(逻辑型,默认值为.false.)
此选项指定在x方向的终止点(东边界)是否使用对称性边界条件。通常只用
于理想大气试验方案。
open_xs(逻辑型,默认值为.false.)
此选项指定在x方向的起始点(西边界)是否使用自由边界条件。通常只用于
理想大气试验方案。
open_xe(逻辑型,默认值为.false.)
此选项指定在x方向的终止点(东边界)是否使用自由边界条件。通常只用于
理想大气试验方案。
periodic_y(逻辑型,默认值为.false.)
此选项指定在y方向是否使用周期性边界条件。通常只用于理想大气试验
方案。
symmetric_ys(逻辑型,默认值为.false.)
此选项指定在y方向的起始点(南边界)是否使用对称性边界条件。通常只用
于理想大气试验方案。
symmetric_ye(逻辑型,默认值为.false.)
此选项指定在y方向的终止点(北边界)是否使用对称性边界条件。通常只用
于理想大气试验方案。
open_ys(逻辑型,默认值为.false.)
此选项指定在y方向的起始点(南边界)是否使用自由边界条件。通常只用于
理想大气试验方案。
word格式-可编辑-感谢下载支持
open_ye(逻辑型,默认值为.false.)
此选项指定在y方向的终止点(北边界)是否使用自由边界条件。通常只用于
理想大气试验方案。
nested(逻辑型,默认值为.false.)
此选项设定嵌套边条件。目前为预留选项参数,不起作用。
specified(逻辑型,默认值为.false.)
此选项指定是否使用特定边条件。特定边条件选项只用于真实大气方案的
数值模拟中,并且要求多个时次的边条件数据(文件wrfbdy)。
top_radiation(逻辑型,默认值为.false.)
此选项指定是否使用顶部辐射边条件。目前为预留选项,不起作用。
chem_opt(默认值为0)
此选项指定是否使用化学过程方案。目前还没实现。
mp_physics(默认值为0)
此选项设置微物理过程方案。目前的有效选择值为:
=0,不采用微物理过程方案
=1,Kessler方案(暖雨方案)
=2,Lin等的方案(水汽、雨、雪、云水、冰、冰雹)
=3,NCEP3类简单冰方案(水汽、云/冰和雨/雪)
=4,NCEP5类方案(水汽、雨、雪、云水和冰)
=5,EtaFerrier2类方案(水汽、云水)
ra_lw_physics(默认值为0)
此选项指定长波辐射方案。有效选择值如下:
=0,不采用长波辐射方案
=1,rrtm方案
ra_sw_physics(默认值为0)
此选项指定短波辐射方案。有效选择值如下:
=0,不采用短波辐射方案
=1,Dudhia方案
=2,Goddard短波方案
bl_sfclay_physics(默认值为0)
此选项指定近地面层(surface-layer)方案,有效选择值有:
=0,不采用近地面层方案
=1,Monin-Obukhov方案
=2,MYJMonin-Obukhov方案(仅用于MYJ边界层方案)
word格式-可编辑-感谢下载支持
bl_surface_physics(默认值为0)
此选项指定陆面过程方案。有效选择值有:
=0,不采用陆面过程方案
=1,热量扩散方案
=2,OSU/MM5陆面过程方案
bl_pbl_physics(默认值为0)
此选项指定边界层方案。有效选择值有:
=0,不采用边界层方案
=1,MRF方案
=2,EtaMellor-Yamada-JanjicTKE(湍流动能)方案
cu_physics(默认值为0)
此选项指定积云参数化方案。有效选择值有:
=0,不采用积云参数化方案
=1,浅对流EtaKain-Fritsch方案
=2,Betts-Miller-Janjic方案
=99,Kain-Fritsch方案
注:以上所以参数化方案中,有些方案在理想大气试验方案中没有测试。
h_mom_adv_order(默认值为3)
此选项指定水平动量平流的阶数。(例如5=5阶,等等),有效值为2~6,
推荐值为5。
v_mom_adv_order(默认值为3)
此选项指定垂直动量平流的阶数。有效值为2~6,推荐值为3。
h_sca_adv_order(默认值为3)
此选项指定水平标量(scalar)平流的阶数。有效值为2~6,推荐值为5。
v_sca_adv_order(默认值为3)
此选项指定垂直标量平流的阶数。有效值为2~6,推荐值为3。
io_form_x
这里的x为history、initial、boundary、和restart中任何一个。
此参数指定输入和输出的数据格式。目前有效选择值为:
=2,NetCDF格式(需要NetCDF函数库)
=1,自然二进制格式(仅用于NCEP/AFWA,目前没有全面测试过)
参数配置第五部分
&namelist_05
这部分参数仅用于由真实大气方案的预处理程序产生的输入数据。当输入数
据产生于理想大气试验方案时,这部分参数将会被忽略。对于大多数真实大气方
word格式-可编辑-感谢下载支持
案来说,起止时间的分和秒都应该设为0。常用的小时和秒之间的换算关系有:
3小时=10800秒;6小时=21600秒;12小时=43200秒。
start_year(例如2001)
四位数字表示的起始年份。
start_month(例如04)
两位数字(01-12)表示的起始月份。
start_day(例如20)
两位数字(01-31)表示的起始天数。
start_hour(例如12)
两位数字(00-23)表示的起始小时数。
start_minute(例如00)
start_second(例如00)
两位数字(00-59)表示的起始秒数。
end_year(例如2001)
四位数字表示的终止年份。
end_month(例如04)
两位数字(01-12)表示的终止月份。
end_day(例如21)
两位数字(01-31)表示的终止天数。
end_hour(例如00)
两位数字(00-23)表示的终止小时数。
end_minute(例如00)
两位数字(00-59)表示的终止分钟数。
end_second(例如00)
两位数字(00-59)表示的终止秒数。
interval_seconds(例如43200)
前处理程序的两次分析时间之间的时间间隔,以秒为单位。
real_data_init_type
此选项指定真实大气输入数据的类型:
word格式-可编辑-感谢下载支持
=1,WRFSI
=2,从MM5转换过来的数据。(MM52WRF)
=3,用于自定义数据格式,采用模块module_si_io.F中的子程序
read_generic来读取。
参数配置第六部分
&namelist_quilt
参数列表的这一部分用于控制MPI异步通讯形式的输入/输出。
nio_tasks_per_group
此参数指定模式需要多少个I/O处理器:
=0,不要求单独的I/O处理器。
=n,如果n>0,表明需要n个I/O处理器。
如果指定需要单独的I/O处理器,那么模式要求的总的处理器数
目必须大于n+模式计算的处理器数。例如,如果令nio_tasks_per_group=1,而
用户只申请了5个处理器来运行整个系统,那么强只有4个处理器用于模式计算,
而有1个处理器仅用于输入/输出。
nio_groups
设置为1,目前为预留参数,请勿改动。
word格式-可编辑-感谢下载支持
附录2T213场库参数表
表1T213客观分析SP(0.5625°x0.5625º)场库参数表(一)场类型:BJGF
要素名称要素
代码
单位时次时效层次
个数
层次号数据区大小
温度11
(T)
K
00
06
12
18
00
17
10,20,30,50,
70,100,
150,200,
250,300,
400,500,
600,700,
850,925,
1000
BUF
(640,321)
高度7
(H)
位势
米
东西风33
(U)
米/秒
南北风34
(V)
米/秒
垂直速度40
(O)
帕/秒
涡度41
(A)
秒-1
散度42
(J)
秒-1
比湿51
(L)
千克/千
克
14
50,70,100,
150,200,
250,300,
400,500,
600,700,850,
925,1000
BUF
(640,321)
相对湿度52
(R)
%
地面温度211
(T)
K19999BUF
(640,320)
地面气压1
(P)
百帕19999BUF
(640,321)
10米U202
(U10)
米/秒19999BUF
(640,320)
10米V203
(V10)
米/秒19999
海平面气
压
2
(P)
百帕19998BUF
(640,321)
2米温度229
(T2)
K19999
BUF
(640,320)
2米相对
湿度
230
(R2)
%19999
注:BUF(640,321)数组范围:经向0º→360º,纬向90ºN→90ºS,纬向等距。
BUF(640,320)数组范围:经向0º→360º,纬向89.57ºN→89.57ºS,
纬向高斯格点不等距,接近0.5625º。
word格式-可编辑-感谢下载支持
表2T213客观分析SP(0.5625×0.5625)场库参数表(二)场类型:BJGF
要素名称要素
代码
单位时次时效层次
个数
层次号数据区大小
温度平流216
(Q)
10-6C/秒
00
12
00
6
200,500,
700,850,
925,1000
BUF
(321,161)
(导出量,仅东北半球)
涡度平流241
(Y)
10-11/秒2
温度露点差217
(D)
10-1C
3500,700,
850
水汽通量155
(F)
10-1克/
百帕厘米秒
10-7克/
百帕厘米²秒
水汽通量
散度
156
(G)
se
158
(B)
K
K指数128
(K)
C
19998
注:BUF(321,161)(对导出量)数组范围:经向0º→180ºE,纬向90ºN→0º(赤道),
纬向等距。
表3T213预报SP(0.5625×0.5625)场库参数表(一)场类型:BJGL
要素名称要素
代码
单位时次时效层次
个数
层次号数据区大
小
温度11
(T)
K
12
00,03,06,
09,12,15,
18,21,24,
27,30,33,
36,39,42,
45,48,51,
54,57,60,
63,66,69,
72,
84,96,
108,120,
144,
168
192
216
240
17
10,20,
30,50,
70,100,
150,200,
250,300,
400,500,
600,700,
850,925,
1000
BUF
(640,321)
高度7
(H)
位势米
东西风33
(U)
米/秒
南北风34
(V)
米/秒
垂直速度40
(O)
帕/秒
比湿51
(L)
千克/千克
14
50,70,100,
150,200,
250,300,
400,500,
600,700,
850,925,
1000
相对湿度52
(R)
%
海平面气压2
(P)
百帕19998
word格式-可编辑-感谢下载支持
注:BUF(640,321)数组范围:经向0º→360º,纬向90ºN→90ºS,纬向等距。
BUF(640,320)数组范围:经向0º→360º,纬向89.57ºN→89.57ºS,
纬向高斯格点不等距,接近0.5625º。
BUF(321,161)(对导出量)数组范围:经向0º→180ºE,纬向90ºN→0º(赤道),
纬向等距。
表4T213预报SP(0.5625×0.5625)场库参数表(二)场类型:BJGL
要素名称要素
代码
单位时次时效层次
个数
层次号数据区大
小
涡度41
(A)
秒-1
12
00,03,06,
09,12,15,
18,21,24,
27,30,33,
36,39,42,
45,48,51,
54,57,60,
63,66,69,
72,84,96,
108,120,
144,
168
192
216
240
17
10,20,30,50,70,
100,150,200,250,
300,400,500,600,
700,850,925,1000
BUF
(640,321)
散度42
(J)
秒-1
地面温度211
(T)
K19999BUF
(640,320)
地面气压1
(P)
百帕19999BUF
(640,321)
10米U202
(U10)
米/秒19999
10米V203
(V10)
米/秒19999
2米温度229
(T2)
K19999BUF
(640,320)
2米相对
湿度
230
(R2)
%19999
地面降水54
(E)
毫米03,06,09,
12,15,18,
21,24,27,
30,33,36,
39,42,45,
48,51,54,
57,60,63,
66,69,72,
84,96,108
,120,132
19999
对流降水63
(RC)
毫米19999BUF
(640,320)
温度平流216
(Q)
10-6C/秒
6200,500
700,850
925,1000
涡度平流241
(Y)
10-11/秒2
温度露点差217
(D)
10-1C
00,06,12,
18,24,30,
36,42,48,
word格式-可编辑-感谢下载支持
水汽通量155
(F)
10-1克/
百帕厘米秒
10-7克/
百帕厘米²秒
60,72,
96,
3500,700
850BUF
(321,161)
(导出量,仅东北
半球)
水汽通量
散度
156
(G)
120,144,
168
se
158
(B)
K
K指数128
(K)
C
19998
变高207位势米24,48,
72,96,
1500
H的预报
误差
208位势米120,144,
168
5
200,500
700,850
1000
T的预报
误差
212K
P的预报
误差
201百帕19998