WRF新手村

欢迎大家来到WRF新手村,

目录

初识WRF

WRF编译

环境准备

WRF编译

WRF运行


我将带领大家使用WRF-ARW实现一次单嵌套个例模拟,用WRF官方给出的2.5km分辨率算例(下载链接:http://www2.mmm.ucar.edu/WG2bench/conus_2.5_v3/),带领大家从编译器、依赖库安装开始,完整的运行一次WRF算例,同时把基础要点教给大家,希望本文可以帮助大家轻松入门,避免踩坑~~

初识WRF

WRF全称Weather Research Forecast,是由美国国家大气研究中心(NCAR)、国家环境预报中心(NCEP)等机构联合开发的新一代高分辨率中尺度天气研究预报模式。WRF是一种完全可压的非静力平衡模式,采用Arakawa C网格,时间积分采用三阶Runge-Kutta方案,空间差分使用2-6阶方案。WRF模式的组成大致可以分为:标准初始化模块(SI)、数据同化模块(WRFDA)、动力内核(ARW/NMM)和后处理(GRADS、RIP4、NCL等)。

WRF模式用途广泛,例如:数值天气预报、气候模拟、中小尺度天气系统模拟,资料同化研究等,还可以采用WRF-chem模块进行气溶胶模拟,WRF-hydro进行水文模拟,WRF-fire进行山火模拟等;

WRF模式流程图如下:

WRF编译

WRF的编译需要安装编译器和NETCDF库,本次安装选择Intel编译器和Intelmpi,两者已经集成进oneapi,直接安装oneapi即可。本次安装选择的系统和oneapi版本如下:

Linux系统:CentOS 8.4

oneapi:2022.2

依赖库:netcdf-c-4.4.1, netcdf-fortran-4.4.1, hdf5-1.12.0

环境准备

01、安装Intel oneApi

sh l_BaseKit_p_2024.1.0.596_offline.sh
sh l_HPCKit_p_2024.1.0.560_offline.sh

oneapi的安装较为简单,根据交互界面提示,点击安装选项和下一步即可,本文不再赘述;具体可参考

安装编译环境Intel oneAPIhttps://mp.weixin.qq.com/s?__biz=MzkxMjY5ODA1OQ==&mid=2247483855&idx=1&sn=0471a167f539b15d12076c52a5ee8ce2&chksm=c109be6bf67e377d3d65044947e50fc1de4fb2798ff43003cb21dff022c4637c6a0057e76868&token=667032144&lang=zh_CN#rd

oneapi默认安装在/opt/intel/oneapi路径

WRF的编译仅依赖Netcdf。由于2.5km算例由restart文件启动,该文件为压缩格式,因此Netcdf的编译需要依赖hdf5库。

02、安装hdf5

source /opt/intel/oneapi/setvars.sh
CC=mpiicc FC=mpiifort CXX=mpiicpc ./configure --with-zlib=/usr/lib64/ --prefix=/INSTALL_PATH/software/hdf5 --enable-fortran --enable-parallel --enable-shared
make -j 8 && make install

03、安装netcdf-c

CC=mpiicc FC=mpiifort CXX=mpiicpc CPPFLAGS="-I/INSTALL_PATH/software/hdf5/include” LDFLAGS="-L/INSTALL_PATH/software/hdf5/lib" LIBS=-ldl ./configure --prefix=/INSTALL_PATH/software/netcdf --enable-parallel-tests --disable-dap
make && make install

04、添加环境变量脚本env.sh,并加载环境

#!/bin/bash
export DIR=/INSTALL_PATH/software
export HDF5=$DIR/hdf5
export PATH=$HDF5/bin:$PATH
export LD_LIBRARY_PATH=$HDF5/lib:$LD_LIBRARY_PATH
export INCLUDE=$HDF5/include:$INCLUDE
export NETCDF=$DIR/netcdf
export PATH=$NETCDF/bin:$PATH
export LD_LIBRARY_PATH=$NETCDF/lib:$LD_LIBRARY_PATH
export INCLUDE=$NETCDF/include:$INCLUDE
source env.sh

05、安装netcdf-fortran

CC=mpiicc FC=mpiifort CXX=mpiicpc CPPFLAGS="-I/opt/intel/oneapi/mpi/2021.6.0/include -I/opt/intel/oneapi /compiler/2021.6.0/linux/include -I/INSTALL_PATH/software/hdf5/include -I/INSTALL_PATH/software/netcdf/include" LDFLAGS="-L/opt/intel/oneapi/mpi/2021.6.0/lib -L/opt/intel/oneapi /compiler/2021.6.0/lib/intel64_lin -L/INSTALL_PATH/software/hdf5/lib -L/ INSTALL_PATH/software/netcdf/lib"  LIBS=-ldl ./configure --prefix=/INSTALL_PATH/path/netcdf --enable-parallel-tests
make && make install

WRF编译

解压进入安装包,执行configure配置编译环境,configure脚本给出可用系统环境配置列表,需要根据实际情况进行选择,输出如下:

根据使用的环境选择15。完成后,会在当前目录下生成configure.wrf文件,该文件包含编译WRF的环境参数和编译参数。对于Intelmpi,需要根据configure.wrf说明修改FORTRAN和C编译选项:

DESCRIPTION = INTEL ($SFC/$SCC)
DMPARALLEL = 1
OMPCPP = #-D_OPENMP
OMP = #-qopenmp -fpp -auto
OMPCC = #-qopenmp -fpp -auto
SFC = ifort
SCC = icc
CCOMP = icc
DM_FC = mpiifort
DM_CC = mpiicc
FC = time $(DM_FC)
CC = $(DM_CC) -DFSEEKO64_OK
LD = $(FC)
RWORDSIZE = $(NATIVE_RWORDSIZE)
PROMOTION = -real-size expr 8 \* $(RWORDSIZE) -i4
ARCH_LOCAL = -DNONSTANDARD_SYSTEM_FUNC -DWRF_USE_CLM $(NETCDF4_IO_OPTS)
CFLAGS_LOCAL = -w -O3 -ip -march=haswell #xHost -fp-model fast=2 -no-prec-div -no-prec-sqrt -ftz -no-multibyte-chars
LDFLAGS_LOCAL = -ip -march=haswell #-xHost -fp-model fast=2 -no-prec-div -no-prec-sqrt -ftz -align all -fno-alias -fno-common
CPLUSPLUSLIB =
ESMF_LDFLAG = $(CPLUSPLUSLIB)
FCOPTIM = -O3
FCREDUCEDOPT = $(FCOPTIM)
FCNOOPT = -O0 -fno-inline -no-ip
FCDEBUG = #-g $(FCNOOPT) -traceback # -fpe0 -check noarg_temp_created,bounds,format,output_conversion,pointers,uninit -ftrapuv -unroll0 -u
FORMAT_FIXED = -FI -cpp
FORMAT_FREE = -FR -cpp
FCSUFFIX =
BYTESWAPIO = -convert big_endian
RECORDLENGTH = -assume byterecl

执行wrf编译命令:

nohup ./compile -j12 em_real >& compile.out &

注意

-xHost是Intel编译器针对Intel处理器特定的编译优化选项,Intel编译器没有集成其他品牌处理器微架构相关信息。本实验环境处理器架构类似haswell,因此采用-march=haswell来帮助Intel编译器识别处理器的指令集特性。

编译过程耗时较长,建议后台执行。通过tail -f compile.out命令查看当前编译进度。编译完成后,在main目录生成wrf.exe、real.exe、nup.exe、ndown.exe、tc.exe

注意

对于WRF 4.0及之前版本,在centos 8上安装,会出现rpc/types.h问题报错。该报错由rpc库从需要进行补包,步骤如下:

yum install libtirpc-*

修改configure.wrf,

CFLAGS=$(CFLAGS_LOCAL) -DDM_PARALLEL -I/usr/include/tirpc \
LIB_EXTERNAL= \ -L$(WRF_SRC_ROOT_DIR)/external/io_netcdf -lwrfio_nf -L/INSTALL_PATH/software/netcdf/lib -lnetcdff -lnetcdf -L$(WRF_ SRC_ROOT_DIR)/external/io_pnetcdf -lwrfio_pnf -L/ INSTALL_PATH/software/hdf5/lib -lhdf5hl_fortran -lhdf5_hl -lhdf5_fortran -lhdf5 -lm -lz -ltirpc

WRF运行

编译完成,将wrfinput_d01和wrfrst_d01_2005-06-04_06_00_00,namelist.input拷贝至run文件夹,命令行提交运行

mpirun -np xxx ./wrf.exe

  • 22
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值