实用标准文档
这个目录在编译和安装SI时要用到,它是包含SI源程序代码的目录,也就是在用户解压tar源程序包时所创建的目录。比如用户解压WRFSI_20020328.TAR.gz文件时,最终会创建一个名为wrfsi_20020328的SRCROOT目录。当然,用户也可以根据自己的喜好,将其改为自己喜欢的名称。通常,SRCROOT目录中包含用perl写成的安装脚本文件“install_wrfsi.pl”。编译和安装时,应该提供大约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 of All Domains)”,当然也包括以后嵌套技术实现后的粗/细网格。MOAD_DATAROOT 可以和INSTALLROOT以及SRCROOT相同,但将MOAD_DATAROOT与这二者区分开来是非常有用的。它可以使用户在一次编译后,处理不同的模式区域。MOAD_DATAROOT的默认目录为INSTALLROOT/data。如果要设置不同路径时,只需将INSTALLROOT/data目录下的cdl和static两个子目录拷贝到新的目录下即可。
(4) EXT_DATAROOT
这个目录在运行SI时使用。它是用来存放一些所谓的“外部”数据。数据前处理程序grib_prep.exe产生的结果文件就是存放的在这个目录的子目录extprd目录下,而运行grib_prep.exe程序时所创建的记录文件也放在这个目录的子目录log下面。同样,当用户不用个grib_prep.exe程序处理数据,而是自定义生成hinterp.exe程序所能识别的数据文件时,用户所生成的数据文件也应该放在这个目录的extprd子目录下,插值程序hinterp.exe则从这个子目录下读取输入数据。对于1.3版本的SI来说,则这个目录已经被提供初始场( ANALPATH)和边界条件( LBCPATH)的路径所代替。并且,在1.3版本中,初始场和边界条件可以分开,使用两个不同的路径。
2.4.4 编译和安装SI
编译和安装前,需查看一下“src/include/makefile_ibm.inc.in”文件。比如查看编译器的名字(如FC),cpp选项(CPPFLAGS特殊情况下为-DFORTRANDOUBLEUNDERSCORE,而有些计算机(比如AlphaUnix工作站)则要求为-DFORTRANUNDERSCORE)。用户还需为gcc库函数指定确切的路径。同时,用户还可以根据需要,设定一些相应的编译选项。
要求用户找到计算机安装netCDF和perl的路径。没有的话,则需必须下载正确的版本进行安装。
文案大全
实用标准文档
找到正确的netCDF和perl的安装路径后,SI最简单的安装就是在安装在当前源代码相同目录下。这时只需设置一下环境变量NETCDF,将其指到包含netCDF库函数的正确目录,例如:
setenv NETCDF /usr/local/netcdf-3.4 然后,输入以下安装命令: perl install_wrfsi.pl 上面是最为简单的安装方式,但是如果用户没有找到netCDF和Perl的安装目录的话,则会退出安装。因此,还可以根据用户选择配置来安装。执行安装命令时,其他的一些参数选项如下: perl install_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的目录,则会在安装目录($installroot)中创建一个“/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 users 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”是模式区域定义和创建的文件。在这里,用户可以定义计算区域(投影参数,范围大小,区域位置等)。“hinterp.exe”和“vinterp.exe”文件分别是水平和垂直插值程序,它们将用户的输入场插值到“gridgen_model.exe”所创建的模式区域格点上,为WRF模式的运行准备初始场和边条件。“siscan”是一个调试程序,它可以查看“hinterp.exe”和“vinterp.exe”所产生的文件的详细信息。“staticpost.exe”将“gridgen_model.exe”的运行结果static.wrfsi.d01提取其中一些物理量按照NetCDF的格式重新写了一遍成wrfstatic_d01。
在进行编译安装的时候,可以编写一个shell脚本程序。这样,在安装的时候,只需执行这个批处理命令就行。这里给出一个在AIX系统上编译安装的例子,比如取名为install.si:
文案大全
实用标准文档
#!/bin/sh
my_homeroot=/u/wrf_xp/denglt/wrfsys
my_dataroot=/dgpfs/fs2/wrf_xp/ddeng/wrfsys
export NETCDF=\export SOURCE_ROOT=\export INSTALLROOT=\export DATAROOT=\
export EXT_DATAROOT=\export TEMPLATES=\export GEOG_DATAROOT=\
install_wrfsi.pl --install_ui=y
2.4.5 问题处理
(1) 如果失败,则可以用make realclean来清除失败的安装程序。
(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代码之前,应检查一下系统有没有安装netCDF。WRF输入/输出(I/O)模块需要使用netCDF的数据格式。如果netCDF安装的目录不是常用的系统目录(如 /usr/local/),则必须指明netCDF函数库以及引用(include/)函数库的路径。如果未安装,则必须先下载安装netCDF。
2.5.2 安装程序的获取
WRF模式的安装程序是一个压缩程序包,可从WRF模式网站获得(http://www.wrf-model.org)。1.2版的WRF压缩程序包名称为WRFV1.TAR.gz;最近发布的2.1.2版的WRF压缩程序包名称为WRFV2.1.2.TAR.gz。 压缩程序包包括两部分,一部分是将输入数据生成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 SP机器上,会启用设置模板文件中的关于AIX的十一个配置模块:
########################################################### #ARCH AIX (single-threaded) #
FC = xlf_r CC = xlc_r ......
########################################################### #ARCH AIX (single-threaded) (NO NETCDF) #
FC = xlf_r CC = xlc_r ......
########################################################### #ARCH AIX SM (OpenMP) #
OMP = -qsmp=noauto -qthreaded OMPCPP = -D_OPENMP ......
########################################################### #ARCH AIX DM (RSL-IO, IBM-MPI) #
DMPARALLEL = 1 OMP = SFC = xlf_r ......
########################################################### #ARCH AIX DM (RSL-IO, IBM-MPI) (NO NETCDF) #
DMPARALLEL = 1 ......
########################################################### #ARCH AIX DM/SM (RSL-IO, IBM-MPI, OpenMP) #
DMPARALLEL = 1
OMP = -qsmp=noauto -qthreaded
文案大全
实用标准文档
......
这十一个配置模块分别对应着不可嵌套串行编译、不可嵌套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/configure.defaults”中的模板将会被扫描检测,提取相应的配置模块信息,并且会列出一个选择菜单共用户选择:
$ configure
checking for perl5... no
checking for perl... found /usr/bin/perl (perl) Will use NETCDF 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, allows 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 coupling, no nesting) EXPERIMENTAL 10. AIX (single-threaded, nesting using RSL without MPI) 11. AIX (OpenMP, nesting using RSL without MPI)
Enter selection [1-11] :
用户输入一个1~11的整数,然后按回车。如果选择有效,则所作的选择和提示符会显示出来。用户选择结束后,正常运行脚本程序时,会在顶级目录中创建文件“configure.wrf”,并退出程序,回到操作系统。如果在选择时要退出设置脚本程序,用shell的中断命令即可(如按“Control-C”)。
配置脚本“configure”会试图在编译主机上查找netCDF函数库以及引用文件。也可通过设置环境变量NETCDF来强制定义到系统中安装netCDF的正确目录。如果没有设置环境变量,而设置脚本也没有找到netCDF,那么程序将会要求用户输入一个路径。如果所有这些尝试都失败的话,程序将尝试以没有netCDF的状态来进行编译;不过,由于当前版本的程序只能用netCDF的输出/输入接口,
文案大全