如何在ubuntu16.04上安装WRF-Hydro
1. 安装包下载
WRF-Hydro使用单独从WRF-Hydro官网的进行安装,不使用WRF目录下的hydro模块进行处理,原因是后者相比之下会少一些提供的模板和数据等。
软件下载地址
github下载:https://github.com/NCAR/wrf_hydro_nwm_public/releases/v5.2.0
官网下载:https://github.com/NCAR/wrf_hydro_nwm_public/archive/refs/tags/v5.2.0.tar.gz
提示:在安装WRF-Hydro5.2.0之前,需要先安装WRF4.5.0和WPS4.5.2。此外这里为了方便安装,这里已经打包整理好了教程中所有可能使用到的数据、软件和所需库,可点击百度网盘分享链接进行下载,这里下载完成后教程后面提到的下载可无需进行再次下载。
百度网盘分享链接:https://pan.baidu.com/s/1PMmrUYXGhvfm8jhYl4SJ1Q
提取码:6zwu
2. 所需库下载
在教程如何在ubuntu16.04上安装编译WRF4.5.2和WPS4.5.0 中netcdf安装版本为v4.1.3,该版本可通过一个安装包netcdf就将两者同时安装。安装更高版本的netcdf需要将c和fortran分开,先装netcdf-c才能装netcdf-fortran。所需安装库如下。
zlib-1.2.13
hdf5-1.14.3
curl-7.77.0
netcdf-c-4.9.2
netcdf-fortran-4.6.1
3. 安装及环境配置
3.1 环境预配置及说明
运用教程如何在ubuntu16.04上安装编译WRF4.5.2和WPS4.5.0中的netcdf环境版本为v4.1.3太低,不能运行WRF-Hydro,因此需要新建另一个netcdf环境。这里列出教程安装WRF后设置的有关WRF的环境,,作为参照。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
| export DIR=/home/root123/coding/WRF/Build_WRF/LIBRARIES export CC=gcc export CXX=g++ export FC=gfortran export FCFLAGS=-m64 export F77=gfortran export FFLAGS=-m64 export CFLAGS=-m64
export JASPERLIB=$DIR/grib2/lib export JASPERINC=$DIR/grib2/include
export PATH=$DIR/mpich/bin:$DIR/mpich/lib:$DIR/mpich/include:$PATH
export NETCDF=$DIR/netcdf
export LDFLAGS=-L$NETCDF/lib export CPPFLAGS=-I$NETCDF/include
export PATH=$DIR/netcdf/bin:$PATH export PATH=$NETCDF:$NETCDF/bin:$PATH export LIBS="-lnetcdf -lz" export PATH=$NETCDF/lib/:$PATH export LD_LIBRARY_PATH=$NETCDF/lib:${LD_LIBRARY_PATH} export NETCDF_INC="$NETCDF/include" export NETCDF_LIB="$NETCDF/lib" export PATH=$NETCDF_LIB:$NETCDF_INC:$PATH
export HDF5PATH=$NETCDF export WRF_DIR=~/coding/WRF/Build_WRF/WRFV4.5.2 export WRFIO_NCD_NO_LARGE_FILE_SUPPORT=1
|
本教程仅针对WRF-Hydro的安装教程和环境配置,所对应的netcdf版本为v4.9.2。
mpich库在教程如何在ubuntu16.04上安装编译WRF4.5.2和WPS4.5.0中已经安装并设置好环境变量,环境变量CC、CXX、FC、FCFLAGS、F77、FFLAGS、CFLAGS已经设置完成。其他相关变量也保持不变。因此仅需针对环境变量中的netcdf部分进行修改更新即可,安装库和配置环境变量前请将环境变量中的netcdf4.1.3部分注释,也就是将下面所示部分注释掉。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| export NETCDF=$DIR/netcdf
export LDFLAGS=-L$NETCDF/lib export CPPFLAGS=-I$NETCDF/include
export PATH=$DIR/netcdf/bin:$PATH export PATH=$NETCDF:$NETCDF/bin:$PATH export LIBS="-lnetcdf -lz" export PATH=$NETCDF/lib/:$PATH export LD_LIBRARY_PATH=$NETCDF/lib:${LD_LIBRARY_PATH} export NETCDF_INC="$NETCDF/include" export NETCDF_LIB="$NETCDF/lib" export PATH=$NETCDF_LIB:$NETCDF_INC:$PATH
|
将WRF部分的netcdf4.1.3部分的环境变量设置完成后,即可开始安装。本次安装netcdf安装路径为/usr/local/netcdf4。
3.2 安装zlib
将下载好的zlib压缩包拖入/usr/local/netcdf4/中进行解压,进入解压后的zlib文件夹,打开终端,输入以下命令进行安装。
1 2 3 4
| ./configure --prefix=/usr/local/netcdf4 make make check make install
|
安装完成后会在/usr/local/netcdf4这个目录下生成三个文件夹,lib,include,share
3.3 安装hdf5
将下载好的hdf5压缩包拖入/usr/local/netcdf4/中进行解压,进入解压后的hdf5文件夹,打开终端,输入以下命令进行安装。
1 2 3 4
| ./configure --prefix=/usr/local/netcdf4 make make check make install
|
3.4 安装curl
打开文件~/.bashrc,设置环境变量信息。设置以下两个环境变量前请将前面出现过的这两个变量注释掉。
1 2 3
| export LDFLAGS=-L/usr/local/netcdf4/lib export CPPFLAGS=-I/usr/local/netcdf4/include
|
将下载好的curl压缩包拖入/usr/local/netcdf4/中进行解压,进入解压后的curl文件夹,打开终端,输入以下命令进行安装。
1 2 3 4
| ./configure --prefix=/usr/local/netcdf4 make make check make install
|
3.5 安装netcdf-c
将下载好的netcdf-c压缩包拖入/usr/local/netcdf4/中进行解压,进入解压后的netcdf-c文件夹,打开终端,输入以下命令进行安装。
1 2 3 4
| ./configure --prefix=/usr/local/netcdf4 --disable-dap make make check make install
|
3.6 安装netcdf-fortran
打开文件~/.bashrc,设置环境变量信息。设置以下环境变量前请将前面出现过的该变量注释掉。
1 2
| export LD_LIBRARY_PATH=/usr/local/netcdf4/lib:${LD_LIBRARY_PATH}
|
将
将下载好的netcdf-fortran压缩包拖入/usr/local/netcdf4/中进行解压,进入解压后的netcdf-fortran文件夹,打开终端,输入以下命令进行安装。
1 2 3 4
| ./configure --prefix=/usr/local/netcdf4 --disable-dap make make check make install
|
3.7 环境变量设置
添加环境变量如下。
1 2
| export NETCDF=/usr/local/netcdf4 export PATH=$NETCDF:$NETCDF/bin:$PATH
|
此时netcdf v4.9.2安装完毕。通过source ~/.bashrc命令更新环境变量。通过nc-config --all查看安装信息和netcdf版本。该环境可支持WRF-Hydro的运行,也似乎支持WRF的运行。
*3.8环境变量代码优化
通过本教程安装了netcdf4.9.2用以编译运行WRF-Hydro,但是通过教程如何在ubuntu16.04上安装编译WRF4.5.2和WPS4.5.0可以知道系统中还存在netcdf4.1.3用于WRF的运行,为了方便两者的切换而不是频繁注释,特此定义了一个bool变量NETCDF_TYPE用以切换。NETCDF_TYPE变量控制netcdf版本,如果NETCDF_TYPE=1,则对应netcdf4.1.3;如果NETCDF_TYPE=2,则对应netcdf4.9.2。
*注意1:但是好像NETCDF_TYPE=1时,系统中的netcdf会指向/usr/include,netcdf v4.4,原因尚不清楚,但不影响使用。
*注意2:在编译运行WRF和WRF-Hydro时,可直接设置NETCDF_TYPE=2,也能保证二者运行。
完整WRF环境变量设置如下,与上面用以参照的环境变量相比,只更改了NETCDF部分的环境变量。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
| export DIR=/home/root123/coding/WRF/Build_WRF/LIBRARIES export CC=gcc export CXX=g++ export FC=gfortran export FCFLAGS=-m64 export F77=gfortran export FFLAGS=-m64 export CFLAGS=-m64
export LDFLAGS=-L$DIR/grib2/lib export CPPFLAGS=-I$DIR/grib2/include export JASPERLIB=$DIR/grib2/lib export JASPERINC=$DIR/grib2/include
export PATH=$DIR/mpich/bin:$DIR/mpich/lib:$DIR/mpich/include:$PATH
NETCDF_TYPE=1 if [ "$NETCDF_TYPE" -eq 1 ]; then export NETCDF=$DIR/netcdf export LDFLAGS=-L$NETCDF/lib export CPPFLAGS=-I$NETCDF/include export PATH=$DIR/netcdf/bin:$PATH export PATH=$NETCDF:$NETCDF/bin:$PATH export LIBS="-lnetcdf -lz" export PATH=$NETCDF/lib/:$PATH export LD_LIBRARY_PATH=$NETCDF/lib:${LD_LIBRARY_PATH} export NETCDF_INC="$NETCDF/include" export NETCDF_LIB="$NETCDF/lib" export PATH=$NETCDF_LIB:$NETCDF_INC:$PATH fi if [ "$NETCDF_TYPE" -eq 2 ]; then export LDFLAGS=-L/usr/local/netcdf4/lib export CPPFLAGS=-I/usr/local/netcdf4/include export LD_LIBRARY_PATH=/usr/local/netcdf4/lib:${LD_LIBRARY_PATH} export NETCDF=/usr/local/netcdf4 export PATH=$NETCDF:$NETCDF/bin:$PATH export NETCDF_INC="$NETCDF/include" export NETCDF_LIB="$NETCDF/lib" fi
export HDF5PATH=$NETCDF export WRF_DIR=~/coding/WRF/Build_WRF/WRFV4.5.2 export WRFIO_NCD_NO_LARGE_FILE_SUPPORT=1
|
4. 构建、编译WRF-Hydro
根据下载安装包下中/wrf_hydro_nwm_public/trunk/NDHMS下的README.build.txt文件进行编译。
1 2 3 4
| ./configure ./compile_offline_Noah.sh setEnvar.sh OR ./compile_offline_NoahMP.sh setEnvar.sh
|
输出结果包含Make was successful则说明编译运行成功。
参考文档
ubuntu学习_2:ubuntu中安装netcdf4教程
附加网址推荐
zlib官网
zlib github下载
curl官网下载
netcdf官网
netcdf-c github下载
netcdf-fortran github下载
hdf5官网下载