好文档 - 专业文书写作范文服务资料分享网站

WRF模式简易操作---中文指南

天下 分享 时间: 加入收藏 我要投稿 点赞

v1.0 可编辑可修改 式。因此,在安装WRF模式的标准初始化以及WRF主模式前,必须在操作系统环境中先安装NetCDF程序包,生成NetCDF函数库。在运行的系统环境中,如果没有安装NetCDF函数库,则必须自己安装。NetCDF程序包的下载地址为

从网站中,可以获得NetCDF的压缩程序包或者。

安装环境

不同平台要求也不一样,但必需有25兆的可用空间用来解压、编译和运行测试。由于WRF模式的程序采用了C,Fortran77和Fortran90编写,所以也要求操作平台具有FORTRAN77,FORTRAN90和标准C(或C++)编译器。 netCDF将会编译并测试相应的语言接口。

指定编译环境

首先要选择并指定一个恰当的编译环境。如果需要,可设置CC,CFLAGS, FC, FFLAGS, CXX, CXXFLAGS, F90和F90FLAGS中任何环境变量,以指明相应的编译环境。环境变量也就是用户外壳程序(shell)管理的参数,并被shell程序用于运行应用程序(例如设置脚本程序)。一些环境变量的说明可参见下表(表1)。

表1 编译NetCDF的一些环境变量及其说明

变量 描述 Notes 如果未指定,设置脚本程序将试图找出合适的C编译器,如:CC C编译器 cc, c89, xlc, or gcc。 Fortran编译如果未指定,设置脚本程序将试图找出合适的Fortran 90 or FC 器 (如果存在) Fortran 77 编译器。 如果不需要Fortran接口,则可将FC设置为\。 4

v1.0 可编辑可修改 Fortran 90如果未指定,设置脚本程序将试图找出合适的Fortran 90 编F90 编译器 (如果存在) 译器。 如果指定了Fortran 90编译器,则不需要FC参数。如果不需要Fortran 90接口,则可将F90设置为\。 如果未指定,设置脚本程序将试图找出合适的C++编译器。 不CXX C++编译器 需要C++接口时,可将CXX 设置为 \。 C编译器参数CFLAGS 选项 C 预处理参CPPFLAGS 数选项 Fortran 编FFLAGS 译器参数选例如\ 或 \ 项 Fortran 90 F90FLAGS 编译器参数例如\ 或 \。如果未指定,则采用FFLAGS的值。 选项 C++ 编译器CXXFLAGS 标志 ARFLAGS NMFLAGS FPP M4FLAGS LIBS FLIBS 混合参数选在一些操作平台中可能用到这些参数中的一个或几个。 项 例如\ 或 \ 例如\ 是忽略声明部分的检测(assertion) 例如 \ 或 \ 5

v1.0 可编辑可修改 值得注意的是,如果不设置环境变量,那么配置脚本程序将会试图找出相应合理的设置值。但在IBM SP机器上,如果用户不设置Fortran90的编译和编译选项,那么配置脚本往往找不到正确的Fortran90编译器和编译选项,从而造成NetCDF函数库中没有Fortran90的程序接口。

环境变量也就是用户外壳程序(shell)管理的参数,并被shell程序用于运行应用程序(例如设置脚本程序)。典型的环境变量有:

执行命令行命令“env”,可得到当前环境中的环境变量列表。

定义和设置环境变量的方式取决于用户所用的外壳(Shell)类型。Csh类shell(如csh、tcsh)用户设置方式如下: setenv CC c89

setenv CPPFLAGS “-0 -DNDEBUG”

而标准UNIX shell(例如sh、ksh、bash)用户要设置上面同样的环境变量,可如下设置: export CC=c89

export CPPFLAGS=”-0 -DNDEBUG”

以上两种方式中,参数值中带有将值的各部分分开的空格分隔符时,双引号不能省略。否则,参数值只是设置为所要取值得一部分。

标准shell用户还有一种额外的快捷方式为单一命令定义和设置环境变量。环境变量可在命令行中定义和设置,并只在这一行中生效。例如: export FOO=foo env | grep FOO

6

环境变量名 USER HOME

变量值

steve /home/steve

/bin:/usr/bin:/home/steve/bin

PATH

v1.0 可编辑可修改 FOO=foo

FOO=bar env | grep FOO FOO=bar env | grep FOO FOO=foo

测试系统时,环境变量及其赋值可列表式给出。标准UNIX shell用户可直接使用标准语法。例如,标准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 \ 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和Fortran编译选项中添加“-q64”外,还要设置以下环境变量: ARFLAGS='-X 64 cru'

7

v1.0 可编辑可修改 NMFLAGS='-X 64'

编译和安装NetCDF

要生成编译netCDF所需的Makefile文件,必须先运行配置脚本程序(configure)。 它存放在netCDF目录的src子目录中。

首先,选择安装的目录。用这个目录作为配置脚本程序参数“――prefix=”的指定值。程序默认的安装目录(prefix参数值)是“. .”,即将程序包安装在 . . /bin,. ./lib和. ./man,这些目录是相对于netCDF的src/目录。 执行设置脚本格式如下:

./configure --prefix=目录名

这里“- - prefix = . . .”是可选的;如果省略的话,程序将默认地将当前目录的父目录“. . ”设为安装目录。

运行配置脚本程序时,程序会检测系统的与编译netCDF程序包相关的属性设置。检测结果将会显示在标准输出设备上(如显示器)。

配置脚本程序还会创建一个记录文件“”。它包含了配置脚本程序检测系统属性设置时发现的错误信息。由于系统检测可能会导致一些错误,因此在记录文件中可能会记录一些错误信息。这些错误信息未必表明是有问题(严重的错误标志会导致下一步编译“make”程序失败)。不过,记录文件中的编译器不能启动的错误信息例外,这是一个编译环境的严重错误,必须改正,否则不会产生相应编译环境的程序接口。

运行编译命令“make”。此命令将创建一个或多个netCDF库。它包括基本的netCDF库“libsrc/”。如果系统有Fortran 77或者Fortran 90编译器,那么Fortran接口程序会包含在此库中。如果系统有C++编译器,那么C++接口程序会创建在库“cxx/libnetcdf_c++.a”中。命令创建的库还包括netCDF应用程序库ncgen和ncdump。

如果第一步的编译通过,则可以用命令“make test”来检验netCDF库和可执行程序创建得正确与否。系统会建立和运行各种测试C、Fortran和C++的

8

WRF模式简易操作---中文指南

v1.0可编辑可修改式。因此,在安装WRF模式的标准初始化以及WRF主模式前,必须在操作系统环境中先安装NetCDF程序包,生成NetCDF函数库。在运行的系统环境中,如果没有安装NetCDF函数库,则必须自己安装。NetCDF程序包的下载地址为从网站中,可以获得NetCDF的压缩程序包或者。安装环境不同平台要求
推荐度:
点击下载文档文档为doc格式
7scvq1yw0y0088t3x4ji0cqsi0v0jd00p7r
领取福利

微信扫码领取福利

微信扫码分享