WRF模式简易操作---中文指南参考模板_第1页
WRF模式简易操作---中文指南参考模板_第2页
WRF模式简易操作---中文指南参考模板_第3页
WRF模式简易操作---中文指南参考模板_第4页
WRF模式简易操作---中文指南参考模板_第5页
已阅读5页,还剩100页未读 继续免费阅读

下载本文档

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

文档简介

1、WRF 模式操作指南The Institute of Atmospheric Physics, Chinese Academy of SciencesNortheast Institute of Geography and Agroecology, Chinese Academy of Sciences中国科学院大气物理研究所中国科学院东北地理与农业生态研究所二一七年三月二十日 0 / 105目录1. WRF模式简介 .12. WRF模式的安装 .2 2.1 安装环境 .2 2.2 模式源程序.2 2.3 NetCDF函数库的安装2 2.4 标准初始化(SI)的安装 6 2.5 WRF模式的安

2、装.93. WRF模式与T213模式嵌套.17 3.1 嵌套方案 .17 3.2 嵌套程序设计 .17 3.3编译嵌套程序 .21 3.4 嵌套的实现 .224. WRF模式系统的运行.29 4.1 理想大气方案.29 4.2 真实大气方案 .325. WRF模式系统作业卡.47 5.1 源程序.47 5.2 真实大气方案 .486. 模式结果的显示处理 .61 6.1 Vis5D格式 .61 6.2 MICAPS格式.62 6.2 GrADS格式 .65附录1. WRF模式参数配置说明 .68附录2. T213场库参数表 .78WRF模式系统安装/调试技术报告1. WRF模式简介 WRF(W

3、eather Research Forecast)模式系统是由许多美国研究部门及大学的科学家共同参与进行开发研究的新一代中尺度预报模式和同化系统。WRF模式系统的开发计划是在1997年由NCAR中小尺度气象处、NCEP的环境模拟中心、FSL的预报研究处和奥克拉荷马大学的风暴分析预报中心四部门联合发起建立的,并由国家自然科学基金和NOAA共同支持。现在,这项计划,得到了许多其他研究部门及大学的科学家共同参与进行开发研究。WRF模式系统具有可移植、易维护、可扩充、高效率、方便的等诸多特性,将为新的科研成果运用于业务预报模式更为便捷,并使得科技人员在大学、科研单位及业务部门之间的交流变得更加容易。

4、WRF模式系统将成为改进从云尺度到天气尺度等不同尺度重要天气特征预报精度的工具。重点考虑110公里的水平网格。模式将结合先进的数值方法和资料同化技术,采用经过改进的物理过程方案,同时具有多重嵌套及易于定位于不同地理位置的能力。它将很好的适应从理想化的研究到业务预报等应用的需要,并具有便于进一步加强完善的灵活性。 WRF模式作为一个公共模式,由NCAR负责维护和技术支持,免费对外发布。第一版的发布在2000年11月30日。随后在2001年5月8日,第二次发布了WRF模式,版本号为1.1。2001年11月6日,很快进行了模式的第三次发布,只是改了两个错误,没有很大的改动,因此版本号定为1.1.1。

5、直到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。2WRF模式的安装2.1 安装环境2.1.1 硬件环境 WRF模式是一个多机型、跨平台、标准化的模式。可以在IBM AIX,SGI IRIX,PC LINUX等机型上运行。2.1.2 软件环境 WRF模式的

6、运行系统中的一般需要的安装软件环境包括: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模式的初始场/边界条

7、件生成以及模式积分计算部分。2.3 NetCDF函数库的安装2.3.1 文件获取 目前,由于WRF模式的数据处理格式主要是应用较为常见的NetCDF数据格式。因此,在安装WRF模式的标准初始化以及WRF主模式前,必须在操作系统环境中先安装NetCDF程序包,生成NetCDF函数库。在运行的系统环境中,如果没有安装NetCDF函数库,则必须自己安装。NetCDF程序包的下载地址为 /packages/netcdf/ 从网站中,可以获得NetCDF的压缩程序包netcdf.zip或者netcdf.tar.Z。2.3.2 安装环境 不同平台要求也不

8、一样,但必需有25兆的可用空间用来解压、编译和运行测试。由于WRF模式的程序采用了C,Fortran77和Fortran90编写,所以也要求操作平台具有FORTRAN77,FORTRAN90和标准C(或C)编译器。 netCDF将会编译并测试相应的语言接口。2.3.3 指定编译环境 首先要选择并指定一个恰当的编译环境。如果需要,可设置CC,CFLAGS, FC, FFLAGS, CXX, CXXFLAGS, F90和F90FLAGS中任何环境变量,以指明相应的编译环境。环境变量也就是用户外壳程序(shell)管理的参数,并被shell程序用于运行应用程序(例如设置脚本程序)。一些环境变量的说明

9、可参见下表(表1)。表1 编译NetCDF的一些环境变量及其说明变量描述NotesCCC编译器如果未指定,设置脚本程序将试图找出合适的C编译器,如:cc, c89, xlc, or gcc。FCFortran编译器(如果存在)如果未指定,设置脚本程序将试图找出合适的Fortran 90 or Fortran 77 编译器。 如果不需要Fortran接口,则可将FC设置为""。 F90Fortran 90编译器(如果存在)如果未指定,设置脚本程序将试图找出合适的Fortran 90 编译器。 如果指定了Fortran 90编译器,则不需要FC参数。如果不需要Fortran 9

10、0接口,则可将F90设置为""。 CXXC+编译器如果未指定,设置脚本程序将试图找出合适的C+编译器。 不需要C+接口时,可将CXX 设置为 ""。CFLAGSC编译器参数选项例如 "-0" 或 "-g"CPPFLAGSC 预处理参数选项例如"-DNDEBUG" 是忽略声明部分的检测(assertion)FFLAGSFortran 编译器参数选项例如"-O" 或 "-g"F90FLAGSFortran 90 编译器参数选项例如"-O"

11、或 "-g"。如果未指定,则采用FFLAGS的值。CXXFLAGSC+ 编译器标志例如"-O" 或 "-g"ARFLAGSNMFLAGSFPPM4FLAGSLIBSFLIBS 混合参数选项在一些操作平台中可能用到这些参数中的一个或几个。 值得注意的是,如果不设置环境变量,那么配置脚本程序将会试图找出相应合理的设置值。但在IBM SP机器上,如果用户不设置Fortran90的编译和编译选项,那么配置脚本往往找不到正确的Fortran90编译器和编译选项,从而造成NetCDF函数库中没有Fortran90的程序接口。环境变量也就是用户外壳

12、程序(shell)管理的参数,并被shell程序用于运行应用程序(例如设置脚本程序)。典型的环境变量有:环境变量名变量值USER steveHOME /home/stevePATH /bin:/usr/bin:/home/steve/bin 执行命令行命令“env”,可得到当前环境中的环境变量列表。定义和设置环境变量的方式取决于用户所用的外壳(Shell)类型。Csh类shell(如csh、tcsh)用户设置方式如下: setenv CC c89 setenv CPPFLAGS “-0 -DNDEBUG”而标准UNIX shell(例如sh、ksh、bash)用户要设置上面同样的环境变量,可如

13、下设置: export CC=c89 export CPPFLAGS=”-0 -DNDEBUG”以上两种方式中,参数值中带有将值的各部分分开的空格分隔符时,双引号不能省略。否则,参数值只是设置为所要取值得一部分。标准shell用户还有一种额外的快捷方式为单一命令定义和设置环境变量。环境变量可在命令行中定义和设置,并只在这一行中生效。例如: export FOO=foo env | grep FOO FOO=foo FOO=bar env | grep FOO FOO=bar env | grep FOO FOO=foo 测试系统时,环境变量及其赋值可列表式给出。标准UNIX shell用户可直

14、接使用标准语法。例如,标准shell用户可以用(以IBM SP AIX为例): export CC=xlc CPPFLAGS=-DNDEBUG CFLAGS=-O FC=f77 FFLAGS=-O CXX=xlC F90=xlf90 F90FLAGS=-qsuffix=f=f90 在IBM AIX SP环境下,编译NetCDF所需要的一些相应的系统环境变量有: CC=/bin/xlc CPPFLAGS=-DNDEBUG CFLAGS=-O FC=/bin/xlf FFLAGS=-O F90=/bin/xlf90 F90FLAGS=-qsuffix=f=f90 # Note: no "

15、-O" option CXX=/bin/xlC CXXFLAGS=-O因为有些机器的AIX系统在用F90编译器编译时,选用“-O”优化编译会产生错误信息为“1501-229 Compilation ended due to lack of space”的错误。通常是由于编译时优化消耗内存太多,以至于超出计算机内存。解决方法之一是用ulimit命令将数据段(data)、堆栈段(stack)以及内存段(memory)设置成足够大或者设置成无限制(unlimited)。另一种解决方法就是,在设置F90编译选项时,不要用“-O”优化选项。另外,如果要用64位模式编译程序,则除了在C和Fort

16、ran编译选项中添加“-q64”外,还要设置以下环境变量: ARFLAGS='-X 64 cru' NMFLAGS='-X 64'2.3.4 编译和安装NetCDF 要生成编译netCDF所需的Makefile文件,必须先运行配置脚本程序(configure)。 它存放在netCDF目录的src子目录中。 首先,选择安装的目录。用这个目录作为配置脚本程序参数“prefix”的指定值。程序默认的安装目录(prefix参数值)是“. .”,即将程序包安装在 . . /bin,. ./lib和. ./man,这些目录是相对于netCDF的src/目录。 执行设置脚本格

17、式如下: ./configure -prefix=目录名这里“- - prefix = . . .”是可选的;如果省略的话,程序将默认地将当前目录的父目录“. . ”设为安装目录。 运行配置脚本程序时,程序会检测系统的与编译netCDF程序包相关的属性设置。检测结果将会显示在标准输出设备上(如显示器)。 配置脚本程序还会创建一个记录文件“config.log”。它包含了配置脚本程序检测系统属性设置时发现的错误信息。由于系统检测可能会导致一些错误,因此在记录文件中可能会记录一些错误信息。这些错误信息未必表明是有问题(严重的错误标志会导致下一步编译“make”程序失败)。不过,记录文件中的编译器不

18、能启动的错误信息例外,这是一个编译环境的严重错误,必须改正,否则不会产生相应编译环境的程序接口。 运行编译命令“make”。此命令将创建一个或多个netCDF库。它包括基本的netCDF库“libsrc/libnetcdf.a”。如果系统有Fortran 77或者Fortran 90编译器,那么Fortran接口程序会包含在此库中。如果系统有C编译器,那么C接口程序会创建在库“cxx/libnetcdf_c+.a”中。命令创建的库还包括netCDF应用程序库ncgen和ncdump。 如果第一步的编译通过,则可以用命令“make test”来检验netCDF库和可执行程序创建得正确与否。系统会

19、建立和运行各种测试C、Fortran和C的程序,以及应用程序“ncdump”和“ncgen”。以“*”开头的输出显示行中,列出了测试成功与否的信息。任何错误都会明确列出,并终止程序的运行。测试过程中的编译器和连接器警告会被忽略掉。 如果编译和测试都正确,这时就可以安装程序库和可执行程序了。安装时,运行命令“make install”即可,它将连接系统的函数库和应用程序,安装到指定的目录中。在进行编译安装的时候,可以编写一个shell脚本程序。这样,在安装的时候,只需执行这个批处理命令就行。这里给出一个在AIX系统上编译安装的例子,比如取名为install.nc:make distclean e

20、xport CC='/usr/bin/xlc' export CPPFLAGS=-DNDEBUG export CFLAGS=-O export FC='/usr/bin/xlf90 ' export FFLAGS='-O3 -qfixed 'export F90FLAGS='-O3 -qfree -qsuffix=f=f90' export F90='/usr/bin/xlf90 ' export CXX='/usr/bin/xlC' export CXXFLAGS=-O configure -p

21、refix=/u/wrf_xp/netcdfmake make test make install2.3.5 问题处理 (1) 详细阅读本安装文档。 (2) 转到netCDF的顶级目录下的源程序目录SRC。 (3) 执行命令“make distclean”,即使执行失败也不会造成什么错误。 (4) 如果存在“config.cache”文件,则将它删除。 (5) 按上面描述的方法设置相应的环境变量。 (6) 重新执行配置脚本程序。 (7) 执行命令“make”。 (8) 执行命令“make test”。 (9) 执行命令“make install”。 值得注意的是,设置和编译系统应该具有较新的“

22、sh”shell、“make”程序以及C和Fortran编译器。在曙光机器上,就存在Fortran90编译器版本比较陈旧,不能编译后缀名为“.F90”的程序,导致运行配置脚本时,无法通过对Fortran90编译器的检测,故不能生成Fortran90程序接口。2.4 标准初始化(SI)的安装 2.4.1 文件和资料的获取 标准初始化是WRF模式的数据前处理部分,也是WRF模式的三维变分系统建立使用之前为WRF模式提供初/边值的部分。SI主要的具有两大功能:(1) 模式区域的定义和创建 在这里,用户可以定义计算区域(投影参数,范围大小,区域位置等)。根据这些定义设置,SI的“gridgen_mod

23、el.exe”程序会产生一个名为“static”的文件。它是NetCDF格式的文件,包含模式格点定义信息和一些静态数据场(如地形、土地利用、土壤类型、月叶面积指数、经度和纬度等)。(2) 将数据插值到WRF模式的计算格点(包括水平方向和垂直方向)上,为WRF模式提供初始场和边界条件。 这项功能是由“hinterp.exe”和“vinterp.exe”程序来完成。另外,“gribprep.exe”程序是将标准的GRIB码格式的数据文件转换成“hinterp.exe”程序能识别的格式。也可以不用“gribprep.exe”程序,而是直接将其他数据格式的数据写成“hinterp.exe”所能识别的格

24、式即可。 安装之前,首先需从WRF模式的提供网站()下载标准初始化(SI)的压缩程序包WRFSI.TAR.gz、AVN模式的试验数据AVN.TAR以及模式所需的静态数据(如地形、土地利用类型、土壤温度等): WRFSI.TAR.gz AVN.TARgreenfrac_10m.tar.gz - 10分的植被指数数据pctland_10m.tar.gz - 10分的土地利用数据 soiltemp_1deg.tar.gz - 1度的全球深层土壤温度数据topo_10m.tar.gz - 10分的地形数据另外,还应该下载如下四个文件夹及其其中的数据文件:-

25、 landuse_30s/ USGS 24-category landuse fractions- soiltype_bot_30s/WMO/FAO 16-category 2-layer soil types- soiltype_top_30s/- topo_30s/解压这些文件后,应该得到八个目录: greenfrac_10m/ pctland_10m/ topo_10m/ soiltemp_1deg/ landuse_30s/ soiltype_bot_30s/ soiltype_top_30s/ topo_30s/解压后的各目录中所得到的数据文件大多数都是10°×1

26、0°的数据块文件。用户大约需要1.8Gb的磁盘空间来存储这些数据。其目录在WRF SI的参数配置文件中需要做相应的设定。2.4.2 安装环境 编译时,要求系统装有Perl(5.003以上的版本)和make(3.75以上的版本)。由于WRF SI模式的程序采用了C,Fortran77和Fortran90编写,所以也要求操作平台具有FORTRAN77,FORTRAN90和标准C(或C)编译器。SI的数据格式采用了NetCDF的格式,要求系统安装了NetCDF函数库。2.4.3 SI的目录结构 在进行编译和运行SI前,有必要先熟悉SI的目录结构。在SI的编译和运行当中,有四个“顶级”路径环

27、境变量。这里“顶级”的意思是指每一个路径都是一个总的路径,在其下面,编译和运行时可能会创建许多子目录。从这个意义上来说,这四个目录分别相当于他们的子目录的顶级目录。这四个“顶级”目录分别为:(1) SRCROOT 这个目录在编译和安装SI时要用到,它是包含SI源程序代码的目录,也就是在用户解压tar源程序包时所创建的目录。比如用户解压WRFSI_20020328.TAR.gz文件时,最终会创建一个名为wrfsi_20020328的SRCROOT目录。当然,用户也可以根据自己的喜好,将其改为自己喜欢的名称。通常,SRCROOT目录中包含用perl写成的安装脚本文件“install_wrfsi.p

28、l”。编译和安装时,应该提供大约10兆空间给SRCROOT目录。(2) INSTALLROOT 这个目录是在编译和安装SI时用到。它是指定SI的安装目录,存放SI的可执行程序(包括可执行的二进制文件和可执行的perl脚本)。在INSTALLROOT目录下,安装后会创建三个目录:bin、data和etc。子目录bin中存放可执行的二进制文件;data存放相关的配置信息文件;etc存放可执行的perl脚本文件。INSTALLROOT和SRCROOT可以相同,这样的话,INSTALLROOT目录下的三个子目录会创建在SRCROOT的目录下。如果INSTALLROOT目录缺省,则系统会认为INSTAL

29、LROOT与SRCROOT相同。INSTALLROOT需要的空间大约为5兆。(3) MOAD_DATAROOT 这个目录在运行SI时使用。“MOAD”的意思是“所有计算区域之源(Mother of All Domains)”,当然也包括以后嵌套技术实现后的粗/细网格。MOAD_DATAROOT 可以和INSTALLROOT以及SRCROOT相同,但将MOAD_DATAROOT与这二者区分开来是非常有用的。它可以使用户在一次编译后,处理不同的模式区域。MOAD_DATAROOT的默认目录为INSTALLROOT/data。如果要设置不同路径时,只需将INSTALLROOT/data目录下的cdl

30、和static两个子目录拷贝到新的目录下即可。(4) EXT_DATAROOT 这个目录在运行SI时使用。它是用来存放一些所谓的“外部”数据。数据前处理程序grib_prep.exe产生的结果文件就是存放的在这个目录的子目录extprd目录下,而运行grib_prep.exe程序时所创建的记录文件也放在这个目录的子目录log下面。同样,当用户不用个grib_prep.exe程序处理数据,而是自定义生成hinterp.exe程序所能识别的数据文件时,用户所生成的数据文件也应该放在这个目录的extprd子目录下,插值程序hinterp.exe则从这个子目录下读取输入数据。对于1.3版本的SI来说,

31、则这个目录已经被提供初始场( ANALPATH)和边界条件( LBCPATH)的路径所代替。并且,在1.3版本中,初始场和边界条件可以分开,使用两个不同的路径。2.4.4 编译和安装SI 编译和安装前,需查看一下“src/include/makefile_ibm.inc.in”文件。比如查看编译器的名字(如FC),cpp选项(CPPFLAGS特殊情况下为-DFORTRANDOUBLEUNDERSCORE,而有些计算机(比如AlphaUnix工作站)则要求为-DFORTRANUNDERSCORE)。用户还需为gcc库函数指定确切的路径。同时,用户还可以根据需要,设定一些相应的编译选项。要求用户找

32、到计算机安装netCDF和perl的路径。没有的话,则需必须下载正确的版本进行安装。找到正确的netCDF和perl的安装路径后,SI最简单的安装就是在安装在当前源代码相同目录下。这时只需设置一下环境变量NETCDF,将其指到包含netCDF库函数的正确目录,例如:setenv NETCDF /usr/local/netcdf-3.4然后,输入以下安装命令:perl install_wrfsi.pl上面是最为简单的安装方式,但是如果用户没有找到netCDF和Perl的安装目录的话,则会退出安装。因此,还可以根据用户选择配置来安装。执行安装命令时,其他的一些参数选项如下:perl install

33、_wrfsi.pl -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是指提供安装WRF SI源代码的目录,installroot是指将要接受安装WRF SI的目录,dataroot是以后运行SI程序的输出结果存放目录,如果用户没有指定dataroot的目录,则会在安装目录($in

34、stallroot)中创建一个“/data”目录。特别注意的是,在perl命令行的续行符“”前,最好留一个空格。因为,如果不留空格,而在后续行的第一列也没有空格的话,则程序会将两行不留空格地合并起来,造成语法错误。成功安装后,在安装目录下会创建一个名为“/bin”的目录,并且创建有如下四个可执行文件:-rwxr-xr-x 1 wrfhelp users 458752 Apr 17 15:36 grib_prep.exe-rwxr-xr-x 1 wrfhelp users 647168 Apr 17 15:36 gridgen_model.exe-rwxr-xr-x 1 wrfhelp user

35、s 614400 Apr 17 15:37 hinterp.exe-rwxr-xr-x 1 wrfhelp users 63120 Apr 17 15:37 siscan-rwxr-xr-x 1 wrfhelp users 630221 Apr 17 15:37 staticpost.exe (v2.0以上才有)-rwxr-xr-x 1 wrfhelp users 188416 Apr 17 15:37 vinterp.exe其中,“grib_prep.exe”文件是读取GRIB码数据文件,并将数据输出成“hinterp.exe”所能识别的数据格式。“gribgen_model.exe”是模式

36、区域定义和创建的文件。在这里,用户可以定义计算区域(投影参数,范围大小,区域位置等)。“hinterp.exe”和“vinterp.exe”文件分别是水平和垂直插值程序,它们将用户的输入场插值到“gridgen_model.exe”所创建的模式区域格点上,为WRF模式的运行准备初始场和边条件。“siscan”是一个调试程序,它可以查看“hinterp.exe”和“vinterp.exe”所产生的文件的详细信息。“staticpost.exe”将“gridgen_model.exe”的运行结果static.wrfsi.d01提取其中一些物理量按照NetCDF的格式重新写了一遍成wrfstatic

37、_d01。在进行编译安装的时候,可以编写一个shell脚本程序。这样,在安装的时候,只需执行这个批处理命令就行。这里给出一个在AIX系统上编译安装的例子,比如取名为install.si:#!/bin/shmy_homeroot=/u/wrf_xp/denglt/wrfsysmy_dataroot=/dgpfs/fs2/wrf_xp/ddeng/wrfsysexport NETCDF="/u/wrf_xp/denglt/netcdf"export SOURCE_ROOT="$my_homeroot/sisrc"export INSTALLROOT=&quo

38、t;$my_homeroot/wrfsi"export DATAROOT="$my_dataroot/moad"export EXT_DATAROOT="$my_dataroot/moad/extroot"export TEMPLATES="$my_dataroot/moad/temp"export GEOG_DATAROOT="$my_dataroot/geog"install_wrfsi.pl -install_ui=y2.4.5 问题处理 (1) 如果失败,则可以用make realclean来清除

39、失败的安装程序。 (2) 进入到src目录下的各个子目录(如grib_prep、hinterp、vinterp以及grid等)下,输入make命令对单个目录进行编译。这样就相对容易找出编译安装时的错误所在。2.5 WRF模式的安装2.5.1 安装环境编译时,要求系统装有Perl(5.003以上的版本)和make(3.75以上的版本)。由于WRF SI模式的程序采用了C,Fortran77和Fortran90编写,所以也要求操作平台具有FORTRAN77,FORTRAN90和标准C(或C)编译器。SI的数据格式采用了NetCDF的格式,要求系统安装了NetCDF函数库。 因此,在编译WRF代码之

40、前,应检查一下系统有没有安装netCDF。WRF输入/输出(I/O)模块需要使用netCDF的数据格式。如果netCDF安装的目录不是常用的系统目录(如 /usr/local/),则必须指明netCDF函数库以及引用(include/)函数库的路径。如果未安装,则必须先下载安装netCDF。2.5.2 安装程序的获取 WRF模式的安装程序是一个压缩程序包,可从WRF模式网站获得()。1.2版的WRF压缩程序包名称为WRFV1.TAR.gz;最近发布的2.1.2版的WRF压缩程序包名称为WRFV2.1.2.TAR.gz。 压缩程序包包括两部分,一部分

41、是将输入数据生成WRF模式的输入场;另一部分则是模式的积分计算。2.5.3 编译环境配置WRF模式的顶级目录中包含配置脚本文件“configure”(使用标准shell:sh)和一个编译脚本“compile”(使用Csh类shell:csh)。配置脚本在配置系统的时候,也用到在arch目录中的Perl脚本(arch/Configure.pl),还用到了UNIX系统的应用程序“make”。在arch子目录中包含了大量不同结构和设置选项的设置模板文件“configure.defaults”。这些配置模板在配置脚本运行时用于在不同的运行平台上创建“configure.wrf”文件。在IBM AIX

42、SP机器上,会启用设置模板文件中的关于AIX的十一个配置模块:#ARCH AIX (single-threaded)#FC = xlf_rCC = xlc_r.#ARCH AIX (single-threaded) (NO NETCDF)#FC = xlf_rCC = xlc_r.#ARCH AIX SM (OpenMP)#OMP = -qsmp=noauto -qthreadedOMPCPP = -D_OPENMP.#ARCHAIX DM (RSL-IO, IBM-MPI)#DMPARALLEL = 1OMP = SFC=xlf_r.#ARCHAIX DM (RSL-IO, IBM-MPI)

43、 (NO NETCDF)#DMPARALLEL = 1.#ARCHAIX DM/SM (RSL-IO, IBM-MPI, OpenMP)#DMPARALLEL = 1OMP = -qsmp=noauto -qthreaded. 这十一个配置模块分别对应着不可嵌套串行编译、不可嵌套OpenMP并行编译、可嵌套带RSL_LITE库MPI方式并行编译、可嵌套带RSL库MPI方式并行编译、带RSL和HDF5库可嵌套MPI方式并行编译、带RSL库可嵌套MPI和OpenMP方式并存的并行编译、带RSL和MCEL库MPI并行编译、带RSL库与ESMF耦合不可嵌套MPI方式编译、不用MPI但带RSL库可嵌套串

44、行编译以及带RSL库可嵌套OpenMP方式并行编译。每一个模块都设置了对应的WRF模式的编译器配置、编译选项、编译规则等。进行WRF的编译环境配置时,进入WRF模式的顶级目录中,键入“./configure”。假设设置脚本可以找到相应版本(5.004或更高版本)的Perl程序,那么设置文件“arch/configure.defaults”中的模板将会被扫描检测,提取相应的配置模块信息,并且会列出一个选择菜单共用户选择:$ configurechecking for perl5. nochecking for perl. found /usr/bin/perl (perl)Will use NE

45、TCDF in dir: /usr/local/netcdf-Please select from among the following supported platforms. 1. AIX (single-threaded, no nesting) 2. AIX SM (OpenMP, no nesting) 3. AIX DM-Parallel (RSL_LITE, IBM-MPI, Allows nesting) 4. AIX DM-Parallel (RSL, IBM-MPI, allows nesting) 5. AIX DM-Parallel (RSL, IBM-MPI, al

46、lows nesting )(PARALLEL HDF5) 6. AIX DM-Parallel (RSL_LITE, IBM-MPI, Allows nesting )(PARALLEL HDF5) 7. AIX DM-Parallel/SM-Parallel (not recommended) (RSL, IBM-MPI, OpenMP, allows nesting) 8. AIX DM-Parallel (RSL, IBM-MPI, MCEL) May 2003, EXPERIMENTAL 9. AIX DM-Parallel ESMF (RSL, IBM-MPI, ESMF coup

47、ling, no nesting) EXPERIMENTAL 10. AIX (single-threaded, nesting using RSL without MPI) 11. AIX (OpenMP, nesting using RSL without MPI)Enter selection 1-11 :用户输入一个111的整数,然后按回车。如果选择有效,则所作的选择和提示符会显示出来。用户选择结束后,正常运行脚本程序时,会在顶级目录中创建文件“configure.wrf”,并退出程序,回到操作系统。如果在选择时要退出设置脚本程序,用shell的中断命令即可(如按“Control-C”

48、)。配置脚本“configure”会试图在编译主机上查找netCDF函数库以及引用文件。也可通过设置环境变量NETCDF来强制定义到系统中安装netCDF的正确目录。如果没有设置环境变量,而设置脚本也没有找到netCDF,那么程序将会要求用户输入一个路径。如果所有这些尝试都失败的话,程序将尝试以没有netCDF的状态来进行编译;不过,由于当前版本的程序只能用netCDF的输出/输入接口,所以必然会造成程序的运行失败。模式目录中还提供了用于卸载的清除程序clean(Csh类shell脚本)。安装失败时,可以使用这一程序来恢复到最初的状态。当未指定任何参数时,清除程序“clean”将删除src目录

49、中的目标文件(*.o)以及编译时产生的一些中间文件,文件“configure.wrf”会保留。当指定“-a”为“clean”的参数时,则会连同文件“configure”以及一些在“external”目录中的库函数一起删除。所以,用带参数“-a”的清除命令,则会将模式恢复到模式的安装最原始的状态,而文件“configure.wrf”中的一些修改信息都会丢失。(注意,清除程序并不会将run或test子目录中的数据文件或可执行文件删除掉)。在“configure.wrf”创建后,还可以根据需要来修改编译选项。值得注意的是,WRF模式可实时配置计算范围大小,处理器数量,以及其他选项,并且仅需要在运行程

50、序之前通过修改文件“namelist.input”即可。而针对这些选项设置,并没有修改文件“configure.wrf”的必要。只是在编译器、编译选项或者编译规则需要变动时,才有必要对“configure.wrf”文件进行修改。在WRF模式调试运行过程中,发现由于WRF模式采用动态分配数组的方式来分配模式中的数组单元,因此对计算机的逻辑内存、堆栈段内存以及数据段内存开销较大。在IBM SP 上编译时,默认的内存设置可能满足不了模式计算时的内存需求。而“configure.wrf”中没有设置内存编译选项(-bmaxdata, -bmaxstack 和-qmaxmem),这就需要用户对其进行修改。

51、通常将他们的限制值设置的稍微大些比较好。例如,可以将“configure.wrf”的原始设置:FCBASEOPTS = -qarch=auto -qfree=f90 -qzerosize -qnosave -qmaxmem=-1 -qspill=20000 $(FCDEBUG) $(OMP). . . . . . LDFLAGS = . . . . . . wrfio_nf : ( cd ./external/io_netcdf ; make NETCDFPATH=/u/denglt/netcdf FC="$(SFC) $(FCDEBUG) -qarch=auto -qfree=f9

52、0 -qzerosize -qnosave" ; /bin/cp wrf_io_flags.h wrf_status_codes.h ././inc )wrfio_int : ( cd ./external/io_int ; make CC=$(CC) FC="$(SFC) $(FCDEBUG) -qarch=auto -qfree=f90 -qzerosize -qnosave" all diffwrf )solve_interface.o : solve_interface.F $(RM) $ $(CPP) -I./inc $(CPPFLAGS) $*.F > $*.f $(FC) -c -qfree=f90 -qspillsize=32767 -I. $(MODULE_DIRS) $*.f修改为:FCBASE

温馨提示

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

评论

0/150

提交评论