WRF:
Weather Research and Forecasting Model

软件介绍

WRFWeather Research and Forecasting Model)是一个开源的天气研究与预报模型,可以用来进行精细尺度的天气模拟与预报,是HPC应用的重要场景之一。

WRF官网:https://www.mmm.ucar.edu/weather-research-and-forecasting-model

1.    安装环境推荐配置

安装WRF的环境推荐配置如表1-1所示。    

表1-1安装WRF的环境推荐配置

类别

子类

要求

获取地址

硬件

TaiShan X6000 XA320 V2服务

CPU2*Kunpeng 920-4826

-

内存:16*16GB 2666MHz RAM

-

硬盘:1*300GB SAS HD

-

OS

CentOS

CentOS-7.6 aarch64

https://www.centos.org/download/

软件

OpenHPC

OpenHPC-1.3.8 aarch64

http://build.openhpc.community/dist/

GNU

8.3.0 from OpenHPC

含在OpenHPC安装包中

OpenMPI

3.1.4 from OpenHPC

HDF5

1.10.5-gnu8-openmpi3 from OpenHPC

PnetCDF

1.11.1-gnu8-openmpi3 from OpenHPC

NetCDF

4.6.3-gnu8-openmpi3 from OpenHPC

NetCDF-fortran

4.4.5 -gnu8-openmpi3 from OpenHPC

WRF

WRF-3.9.1.1

https://www.mmm.ucar.edu/weather-research-and-forecasting-model


2.    安装操作系统和依赖包

1)     安装操作系统

CentOS操作系统的具体安装过程请参见鲲鹏软件生态“CentOS”

2)     安装OpenHPC

OpenHPC的具体安装过程请参见鲲鹏软件生态“OpenHPC”。

3)     安装编译器、MPI和依赖库

如果在以下任意步骤的执行过程出现问题,请检查3.2 安装OpenHPC操作是否正常。

操作步骤

a)     安装GNU8编译器。

# yum install -y gnu8-compilers-ohpc-8.3.0-6.1.ohpc.1.3.7.aarch64

b)     安装OpenMPI

# yum install -y openmpi3-gnu8-ohpc-3.1.4-3.2.ohpc.1.3.8.aarch64

c)      安装HDF5

# yum install -y phdf5-gnu8-openmpi3-ohpc-1.10.5-3.1.ohpc.1.3.8.aarch64

d)     安装PnetCDF

# yum install -y pnetcdf-gnu8-openmpi3-ohpc-1.11.1-3.1.ohpc.1.3.8.aarch64

e)     安装NetCDF

# yum install -y netcdf-gnu8-openmpi3-ohpc-4.6.3-3.1.ohpc.1.3.8.aarch64

f)      安装NetCDF-fortran

# yum install -y netcdf-fortran-gnu8-openmpi3-ohpc-4.4.5-6.1.ohpc.1.3.8.aarch64
# ln   -s   /opt/ohpc/pub/libs/gnu8/openmpi3/netcdf-fortran/4.4.5/include/netcdf.inc /opt/ohpc/pub/libs/gnu8/openmpi3/netcdf/4.6.3/include/

ln   -s   /opt/ohpc/pub/libs/gnu8/openmpi3/netcdf-fortran/4.4.5/include/netcdf.inc /opt/ohpc/pub/libs/gnu8/openmpi3/netcdf/4.6.3/include/

由于WRF不会单独去搜索netcdf-fortran的头文件,因此需要上述链接操作将netcdf-fortran的头文件和netcdf的头文件放在一起

----结束

4)     设置环境变量

操作步骤

执行以下命令,设置环境变量。

# export NETCDF=/opt/ohpc/pub/libs/gnu8/openmpi3/netcdf/4.6.3/
# export NETCDF_FORTRAN=/opt/ohpc/pub/libs/gnu8/openmpi3/netcdf-fortran/4.4.5/
# export PNETCDF=/opt/ohpc/pub/libs/gnu8/openmpi3/pnetcdf/1.11.1/
# export HDF5=/opt/ohpc/pub/libs/gnu8/openmpi3/hdf5/1.10.5/
# export LD_LIBRARY_PATH= ${NETCDF}/lib:${NETCDF_FORTRAN}/lib:${PNETCDF}/lib:${HDF5}/lib:${LD_LIBRARY_PATH}

----结束


3.    编译安装WRF

操作步骤

1)     WRF官网下载WRF-3.9.1.1.tar.gz包。

2)     拷贝到服务器的“/home”目录下,并解压。

# tar -xvf WRF-3.9.1.1.tar.gz

3)     进入解压后目录。

# cd /home/WRF-3.9.1.1

4)     加载编译器和OpenMPI

# module add gnu8/8.3.0
# module add openmpi3/3.1.4

5)     添加环境变量。

# export WRFIO_NCD_LARGE_FILE_SUPPORT=1

6)     修改“arch/configure_new.defaults”文件。

                                    i.          打开“arch/configure_new.defaults”文件。

# vim /home/WRF-3.9.1.1/arch/configure_new.defaults

                                  ii.          1960行之前添加如下一段代码。

#insert new stanza here
################################################## #########
#ARCH   Linux   aarch64
gnu8 OpenMPI3 #serial smpar dmpar dm+sm
#
DESCRIPTION             =       Arm($SFC/$SCC):Aarch64
DMPARALLEL              =       1
OMPCPP                  =       -D_OPENMP
OMP                     =       -fopenmp
OMPCC                   =       -fopenmp
SFC                     =       gfortran
SCC                     =       gcc
CCOMP                   =       gcc
DM_FC                   =       mpif90 -f90=$(SFC)
DM_CC                   =       mpicc -DMPI2_SUPPORT -DMPI2_THREAD_SUPPORT
FC                      =       $(DM_FC)
CC                      =       $(DM_CC)
LD                      =       $(FC)
RWORDSIZE               =       CONFIGURE_RWORDSIZE
PROMOTION               =
ARCH_LOCAL              =
CFLAGS_LOCAL            =       -w -O3 -g
LDFLAGS_LOCAL           =       -fopenmp
FCOPTIM                 =       -O3 -mcpu=native -g -march=armv8.1-a -ffree-line-length-none
FCREDUCEDOPT            =       $(FCOPTIM)
FCNOOPT                 =       -O0 -g -ffree-line-length-none
FCDEBUG                 =       -g $(FCNOOPT)
FORMAT_FIXED            =       -ffixed-form
FORMAT_FREE             =       -ffree-form
FCSUFFIX                =
BYTESWAPIO              =       -fconvert=big-endian
FCBASEOPTS              =       -w $(FORMAT_FREE) $(BYTESWAPIO)
#MODULE_SRCH_FLAG       =
MODULE_SRCH_FLAG        =       -J $(WRF_SRC_ROOT_DIR)/main
TRADFLAG                =       -traditional-cpp
CPP                     =       /lib/cpp
AR                      =       ar
ARFLAGS                 =       ru
M4                      =       m4 -B 14000
RANLIB                  =       ranlib
CC_TOOLS                =       $(SCC)

7)     执行以下命令,编译方式选择4,嵌套方式选择1

# ./configure
4->enter
1->entet

8)     修改生成的“configure.wrf”文件。

                                    i.          打开“configure.wrf”文件。

# vim /home/WRF-3.9.1.1/configure.wrf

                                  ii.          修改131行。

原:

LDFLAGS_LOCAL           =       -fopenmp

修改后:

LDFLAGS_LOCAL           =       -fopenmp -Wl,-rpath=/opt/ohpc/pub/libs/gnu8/openmpi3/netcdf/4.6.3/lib -Wl,-rpath=/opt/ohpc/pub/libs/gnu8/openmpi3/netcdf-fortran/4.4.5/lib  -Wl,-rpath=/opt/ohpc/pub/libs/gnu8/openmpi3/hdf5/1.10.5/lib

                                 iii.          修改214行。

原:

LIB_EXTERNAL    = \
-L$(WRF_SRC_ROOT_DIR)/external/io_netcdf -lwrfio_nf -L/opt/ohpc/pub/libs/gnu8/openmpi3/netcdf/4.6.3//lib  -lnetcdf -L$(WRF_SRC_ROOT_DIR)/external/io_pnetcdf -lwrfio_pnf -L/opt/ohpc/pub/libs/gnu8/openmpi3/pnetcdf/1.11.1//lib -lpnetcdf   -L/opt/ohpc/pub/libs/gnu8/openmpi3/hdf5/1.10.5/lib -lhdf5_fortran -lhdf5 -lm
lz

修改后:

LIB_EXTERNAL    = \
-L$(WRF_SRC_ROOT_DIR)/external/io_netcdf -lwrfio_nf -L/opt/ohpc/pub/libs/gnu8/openmpi3/netcdf/4.6.3//lib  -lnetcdf -L/opt/ohpc/pub/libs/gnu8/openmpi3/netcdf-fortran/4.4.5/lib/ -lnetcdff  -L$(WRF_SRC_ROOT_DIR)/external/io_pnetcdf -lwrfio_pnf -L/opt/ohpc/pub/libs/gnu8/openmpi3/pnetcdf/1.11.1/lib -lpnetcdf   -L/opt/ohpc/pub/libs/gnu8/openmpi3/hdf5/1.10.5//lib -lhdf5_fortran -lhdf5 -lm -lz

9)     开始编译。

# ./compile -j 96  wrf

10)   编译成功后会在“/home/WRF-3.9.1.1/mian”目录下面生成“wrf.exe”可执行文件,可以执行以下命令查看。

# ls  /home/WRF-3.9.1.1/mian | grep wrf.exe


4.    使用WRF

本节以WRF官网2.5km算例为例。算例下载地址:http://www2.mmm.ucar.edu/WG2bench/conus_2.5_v3

操作步骤

1)     创建一个工作目录/home/wrftest”,并将下载修改好的算例和namelist.input文件拷贝到工作目录下。

# mkdir p /home/wrftest

2)     将“/home/WRF-3.9.1.1/run”目录下的文件链接到“/home/wrftest”目录下。

# ln -s /home/WRF-3.9.1.1/run/* /home/wrftest

3)     在“/home/wrftest”目录下执行以下命令。

# mpirun --allow-run-as-root np 96 ./wrf.exe

4)     查看输出日志,如果回显信息如下则表示正常输出。

# less /home/wrftest/rsl.out.0000


软件下载

源码下载立即下载