一、检查编译器
该项目所需编译器为gcc、g++、gfortran,可以使用如下which命令进行检查
which gcc
which g++
which gfortran
如果未安装,可执行以下命令进行安装
sudo apt install build-essential
sudo apt-get install gfortran
如果安装失败,可以试试先更新apt
二、安装依赖库
1.下载之前先编辑环境变量:
vim ~/.bashrc
在~/.bashrc环境变量内的最后一行添加如下环境变量
#zlib_env
export INCLUDE=/home/wrfhydro/zlib/include:$INCLUDE
export LD_LIBRARY_PATH=/home/wrfhydro/zlib/lib:$LD_LIBRARY_PATH
#mpich_env
export PATH=/home/wrfhydro/mpich/bin:$PATH
export INCLUDE=/home/wrfhydro/mpich/include:$INCLUDE
export LD_LIBRARY_PATH=/home/wrfhydro/mpich/lib:$LD_LIBRARY_PATH
#hdf5_env
export PATH=/home/wrfhydro/hdf5/bin:$PATH
export INCLUDE=/home/wrfhydro/hdf5/include:$INCLUDE
export LD_LIBRARY_PATH=/home/wrfhydro/hdf5/lib:$LD_LIBRARY_PATH
#netcdf_env
export PATH=/home/wrfhydro/netcdf/bin:$PATH
export INCLUDE=/home/wrfhydro/netcdf/include:$INCLUDE
export LD_LIBRARY_PATH=/home/wrfhydro/netcdf/lib:$LD_LIBRARY_PATH
export NETCDF=/home/wrfhydro/netcdf
添加完环境变量后使用source命令初始化修改后的文件
#更新~/.bashrc文件
source ~/.bashrc
注:作者的依赖库均是在windows系统下安装,再通过FinallShell传输到linux系统上的
2.安装zlib-1.2.13
tar zxvf zlib-1.2.13.tar.gz
cd zlib-1.2.13
./configure --prefix=/home/wrfhydro/zlib
make
sudo make install
3.安装hdf5-1.13.2
tar zxvf hdf5-1.13.2.tar.gz
cd hdf5-1.13.2
./configure --prefix=/home/wrfhydro/hdf5 --with-zlib=/home/wrfhydro/zlib --enable-fortran --enable-cxx
make
sudo make install
4.安装mpich-4.0.2
tar zxvf mpich-4.0.2.tar.gz
cd mpich-4.0.2
./configure --prefix=/home/wrfhydro/mpich
make
sudo make install
5.安装netcdf-c-4.9.0
tar zxvf netcdf-c-4.9.0.tar.gz
cd netcdf-c-4.9.0
CPPFLAGS="-I/home/wrfhydro/zlib/include -I/home/wrfhydro/hdf5/include" LDFLAGS="-L/home/wrfhydro/zlib/lib -L/home/wrfhydro/hdf5/lib" ./configure --prefix=/home/wrfhydro/netcdf --disable-dap --enable-netcdf-4 --enable-netcdf4 --enable-shared
make
sudo make install
6.安装netcdf-fortran-4.6.0
tar zxvf netcdf-fortran-4.6.0.tar.gz
cd netcdf-fortran-4.6.0
CPPFLAGS="-I/home/wrfhydro/netcdf/include" LDFLAGS="-L/home/wrfhydro/netcdf/lib" ./configure --prefix=/home/wrfhydro/netcdf
make
sudo make install
7.安装wrf_hydro_nwm_public-5.2.0
tar zxfv wrf_hydro_nwm_public-5.2.0.tar.gz
cd wrf_hydro_nwm_public-5.2.0
cd trunk/NDHMS/template/
vim setEnvar.sh
修改文件内容与如下内容相同:
#!/bin/bash
# WRF-Hydro compile time options
# This is a WRF environment variable. Always set to 1=On for compiling WRF-Hydro.
export WRF_HYDRO=1
# Enhanced diagnostic output for debugging: 0=Off, 1=On.
export HYDRO_D=0
# Spatially distributed parameters for NoahMP: 0=Off, 1=On.
export SPATIAL_SOIL=1
# RAPID model: 0=Off, 1=On.
export WRF_HYDRO_RAPID=0
# WCOSS file units: 0=Off, 1=On.
export NCEP_WCOSS=0
# NWM output metadata: 0=Off, 1=On.
export NWM_META=0
# Streamflow nudging: 0=Off, 1=On.
export WRF_HYDRO_NUDGING=0
#Large netcdf file support: 0=Off,1=On.
export WRFIO_NCD_LARGE_FILE_SUPPORT=1
切换至模型的NDHMS目录内:
cd /home/wrf_hydro_nwm_public-5.2.0/trunk/NDHMS/
./configure
此处输入2选择gfrot编译器
2
开始执行编译脚本:
./compile_offline_NoahMP.sh template/setEnvar.sh
即出现下列语句为编译成功:
*****************************************************************
Make was successful
*****************************************************************
三、导入测试数据进行测试运行
首先
mkdir example_case && cd example_case
mkdir NWM
mkdir FORCING
mkdir Gridded_no_lakes
mkdir Reach
mkdir supplemental
mkdir Gridded && cd Gridded
mkdir DOMAIN
mkdir RESTART
然后复制*.TNL文件和wrf_hydro.exe文件至Gridded
cd
cp wrf_hydro_nwm_public-5.2.0/trunk/NDHMS/Run/*.TBL example_case/Gridded
cp wrf_hydro_nwm_public-5.2.0/trunk/NDHMS/Run/wrf_hydro.exe example_case/Gridded
下载数据集并解压(作者的数据集依然是在windows系统下下载然后通过FinallShell传输到linux系统上的)
tar zxvf croton_NY_training_example_v5.2.tar.gz
#复制驱动数据到Gridded文件夹
cp -r example_case/FORCING/ /home/potato/example_case/Gridded
cp -r example_case/NWM/DOMAIN /home/potato/example_case/Gridded
cp -r example_case/NWM/RESTART /home/potato/example_case/Gridded
cp -r example_case/NWM/nudgingTimeSliceObs/ /home/potato/example_case/Gridded
cp -r example_case/NWM/namelist.hrldas /home/potato/example_case/Gridded
cp -r example_case/NWM/hydro.namelist /home/potato/example_case/Gridded
#运行
cd example_case/Gridded
mpirun -np 2 ./wrf_hydro.exe
检查是否成功:
tail -1 diag_hydro.00000