在虚拟机的Ubantu22.04.3中在线安装WRF4及以上版本

本文提供了一个详细的指南,介绍如何在WRF4及以上版本中安装并处理netcdf,包括安装前的准备、系统指令、依赖包的下载与配置,以及WRF和WPS的编译步骤,特别强调了环境变量设置的重要性。
摘要由CSDN通过智能技术生成

前言

    在网上看了很多安装WRF的教程,发现部分教程主要针对的是WRF3.9及以下版本,而WRF4以后版本的netcdf分开安装,所以安装方式与之前不一样,难以借鉴,而官网给出的安装教程在部分细节常出现错误,所以,经过多次尝试终于成功,将自己的经验写下这个教程,供自己学习和参考 

    本文参考了ME1010博主的https://blog.csdn.net/ME1010/article/details/129914778?spm=1001.2014.3001.5501博文,该博文安装WRF的说明很完整体系,但本人结合自己的安装经历,在该博主的基础上简化了部分说明并完善方法三运行中的部分错误解决。感谢ME1010博主的分享。

     本方法适用于gfrotran7以上版本安装WRF(推荐),若想通过gfortran7及以下版本安装WRF,请参考:

   利用gfortran7安装WRF4及以上版本-CSDN博客

     文章仓促,如有错误,尽情谅解并告知,谢谢!

1.安装前准备

1.1安装前的校验 

which gfortran
which cpp
which gcc

      该操作可用于查看 虚拟机是否安装了相关编译器,which 命令用于查找用户指定的命令(程序)所在的路径。当你在终端输入一个命令时,系统会根据环境变量 PATH 中定义的目录顺序去查找该命令。which 命令会显示这个命令实际的完整路径(如果找到了的话)。

gcc --version
gfortran --version

      如果安装了gfortran编译器,可以查看其版本,我的是 gcc 11.4.0(Ubuntu 22.04.3),该版本编译mpich-3.0.4会出错,可以编译高版本的mpich,或选择gcc7及以下版本编译mpich-3.0.4

1.2 安装系统指令

sudo apt-get install libcurl4-openssl-dev -y
sudo apt-get install gfortran cpp gcc g++ m4 libxml2 libxml2-dev libhdf5-dev -y
sudo apt-get install git -y
sudo apt-get install csh -y
sudo apt install make
sudo apt install vim -y

利用sudo命令可以以root管理员权限执行命令,sudo命令下安装的软件将作用于全局所有用户上。

1.3 设置好文件目录结构

创建文件夹,文件目录结构home/用户名/Build_WRF/(LIBRARIES TESTS)

1.4 测试编译器

添加目录位置变量,以简化指令的输入

注:该简化方式只在该终端窗口可用,是临时使用,退出后需重新输入

export DIR=/home/用户名/Build_WRF
echo $DIR #返回结果应该为/home/xxx/Build_WRF

从官网下载测试包

cd $DIR/TESTS
wget https://www2.mmm.ucar.edu/wrf/OnLineTutorial/compile_tutorial/tar_files/Fortran_C_tests.tar
tar xvf Fortran_C_tests.tar

 输入命令进行测试

gfortran TEST_1_fortran_only_fixed.f
./a.out
gfortran TEST_2_fortran_only_free.f90
./a.out
gcc TEST_3_c_only.c
./a.out
gcc -c -m64 TEST_4_fortran+c_c.c
gfortran -c -m64 TEST_4_fortran+c_f.f90
gfortran -m64 TEST_4_fortran+c_f.o TEST_4_fortran+c_c.o
./a.out
./TEST_csh.csh
./TEST_perl.pl
./TEST_sh.sh

  成功完成测试后会显示7个SUCCESS

2.WRF相关库和依赖的安装

2.1 依赖包下载及解压

进入依赖包目录,下载依赖包并解压

cd $DIR/LIBRARIES
wget https://downloads.unidata.ucar.edu/netcdf-c/4.9.2/netcdf-c-4.9.2.tar.gz
wget https://downloads.unidata.ucar.edu/netcdf-fortran/4.6.1/netcdf-fortran-4.6.1.tar.gz
wget https://www2.mmm.ucar.edu/wrf/OnLineTutorial/compile_tutorial/tar_files/libpng-1.2.50.tar.gz
wget https://www2.mmm.ucar.edu/wrf/OnLineTutorial/compile_tutorial/tar_files/jasper-1.900.1.tar.gz
wget https://www2.mmm.ucar.edu/wrf/OnLineTutorial/compile_tutorial/tar_files/zlib-1.2.11.tar.gz
wget https://hdf-wordpress-1.s3.amazonaws.com/wp-content/uploads/manual/HDF5/HDF5_1_14_3/src/hdf5-1.14.3.tar.gz
wget https://www.mpich.org/static/downloads/4.1.2/mpich-4.1.2.tar.gz
tar xvf netcdf-c-4.9.2.tar.gz
tar xvf netcdf-fortran-4.6.1.tar.gz
tar xvf zlib-1.2.11.tar.gz
tar xvf libpng-1.2.50.tar.gz
tar xvf hdf5-1.14.3.tar.gz
tar xvf jasper-1.900.1.tar.gz
tar xvf mpich-4.1.2.tar.gz

2.2 配置环境变量

       提前配置好环境变量,后面就不用再配置了

      输入vi ~/.bashrc进入环境变量配置页面,输入i后在最后一行输入以下配置信息,按esc键后输入:wq,保存并离开,每次修改bashrc后都要终端输入source ~/.bashrc使其生效。

export DIR=/home/用户名/Build_WRF
export PATH=$DIR/LIBRARIES/mpich/bin:$PATH
export PATH=$DIR/LIBRARIES/netcdf/bin:$PATH
export NETCDF=$DIR/LIBRARIES/netcdf
export LD_LIBRARY_PATH=$DIR/LIBRARIES/netcdf/lib:$LD_LIBRARY_PATH
export JASPERLIB=$DIR/LIBRARIES/grib2/lib
export JASPERINC=$DIR/LIBRARIES/grib2/include
export LDFLAGS=-L$DIR/LIBRARIES/grib2/lib
export LD_LIBRARY_PATH=$DIR/LIBRARIES/grib2/lib:$DIR/LIBRARIES/hdf5/lib:$LD_LIBRARY_PATH
export CPPFLAGS=-I$DIR/LIBRARIES/grib2/include

2.3 安装各个依赖包

注:按顺序安装很重要,每一步都成功再进行下一步,如果对并行运算没要求,可以不安装mpich

       先安装好zlib才能安装hdf5,先安装netcdf-c,才能安装netcdf-fortran

安装zlib

cd $DIR/LIBRARIES/zlib-1.2.11
./configure --prefix=$DIR/LIBRARIES/grib2
make
make install

安装libpng

cd $DIR/LIBRARIES/libpng-1.2.50
./configure --prefix=$DIR/LIBRARIES/grib2
make
make install

安装hdf5

cd $DIR/LIBRARIES/hdf5-1.14.3
./configure --prefix=$DIR/LIBRARIES/hdf5 --enable-fortran --enable-cxx --with-zlib=$DIR/LIBRARIES/grib2
make -j4 #加速编译
make install

安装jasper

cd $DIR/LIBRARIES/jasper-1.900.1
./configure --prefix=$DIR/LIBRARIES/grib2
make
make install

安装mpich

cd $DIR/LIBRARIES/mpich-4.1.2
./configure --prefix=$DIR/LIBRARIES/mpich
make -j4 #加速编译
make install

安装 netcdf-c

cd $DIR/LIBRARIES/netcdf-c-4.9.2
./configure --prefix=$DIR/LIBRARIES/netcdf --enable-dap --enable-netcdf4 --enable-shared LDFLAGS="-L$DIR/LIBRARIES/hdf5/lib -L$DIR/LIBRARIES/grib2/lib" CPPFLAGS="-I$DIR/LIBRARIES/hdf5/include -I$DIR/LIBRARIES/grib2/include"
make
make install

安装netcdf-fortran

cd $DIR/LIBRARIES/netcdf-fortran-4.6.1
./configure --prefix=$DIR/LIBRARIES/netcdf --enable-shared LIBS="-lnetcdf -lz" LDFLAGS="-L$DIR/LIBRARIES/netcdf/lib -L$DIR/LIBRARIES/grib2/lib" CPPFLAGS="-I$DIR/LIBRARIES/netcdf/include -I$DIR/LIBRARIES/grib2/include"
make
make install

检查netcdf是否安装成功,运行以下代码,并查看netcdf/include文件夹下是否有netcdf.inc文件

nc-config --has-nc4
nf-config --has-nc4

 安装成功后,你的LIBRARIES下应该至少有grib2、mpich、netcdf三个文件夹,这说明你的依赖包安装成功,可以开始下一步的操作

2.3 依赖包测试

下载测试包并解压

cd $DIR/TESTS
wget https://www2.mmm.ucar.edu/wrf/OnLineTutorial/compile_tutorial/tar_files/Fortran_C_NETCDF_MPI_tests.tar
tar xvf Fortran_C_NETCDF_MPI_tests.tar

进行测试

 测试netcdf

cp ${NETCDF}/include/netcdf.inc .
gfortran -c 01_fortran+c+netcdf_f.f
gcc -c 01_fortran+c+netcdf_c.c
gfortran 01_fortran+c+netcdf_f.o 01_fortran+c+netcdf_c.o -L${NETCDF}/lib -lnetcdff -lnetcdf
./a.out

 测试mpich

cp ${NETCDF}/include/netcdf.inc .
mpif90 -c 02_fortran+c+netcdf+mpi_f.f
mpicc -c 02_fortran+c+netcdf+mpi_c.c
mpif90 02_fortran+c+netcdf+mpi_f.o 02_fortran+c+netcdf+mpi_c.o -L${NETCDF}/lib -lnetcdff -lnetcdf
mpirun ./a.out

两项测试均显示SUCCESS表示成功

3、编译WRF和WPS 

3.1 下载WPS和WRF

也可以选择访问git上下载自己所需版本http://Releases · wrf-model/WRF (github.com)

将会下载默认最新版本

cd $DIR
git clone --recurse-submodules https://github.com/wrf-model/WRF
git clone https://github.com/wrf-model/WPS

 下载自己所需版本,建议这种方式,WRF4.5可能存在使用问题。(WPS与WRF放同一个文件夹下)

cd $DIR
wget https://github.com/wrf-model/WRF/archive/refs/tags/v4.3.3.tar.gz
wget https://github.com/wrf-model/WPS/archive/refs/tags/v4.3.1.tar.gz
tar -xf v4.3.1.tar.gz 
tar -xf v4.3.3.tar.gz 
mv WPS-4.3.1 WPS
mv WRF-4.3.3 WRF

3.2编译WRF

cd $DIR/WRF
./configure

 编译方式有4种:serial(串行,即非并行)、smpar(内存共享并行)、dmpar(分布式并行)、dm+sm(同时使用dmpar和smpar),这里我选34(intel编译器选15)和1

./compile -j 4 em_real &> log.compile

如果在$DIR/WRF/run 或 $DIR/WRF/test/em_real下成功生成四个exe文件,则表示安装成功 

3.3编译WPS

cd $DIR/WPS
./configure

我这里编译器选择3 

./compile &> log.compile

在WPS文件夹下生成3个exe文件,则表示安装成功 

 4、WRF运行前数据导入

WRF运行需要静态地理数据和再分析数据,可以在相应官网上下载后传到ubuntu中

静态地理数据分为必选和可选:http://www2.mmm.ucar.edu/wrf/users/download/get_sources_wps_geog.html

for tar in *.tar.bz2; do tar xvf $tar; done #(批量解压地理数据)

再分析数据常用NCAR数据集:

https://rda.ucar.edu/datasets/ds083.2/?hash=!access

    最后的话:WRF4及以上版本的安装比较繁琐,不同类型的错误比较多,因此,有博主和UP主已经探索出了用conda和spack安装WRF的快捷方式,大家感兴趣可以去关注并尝试。

conda方式:

https://blog.csdn.net/ME1010/article/details/129914778

spack方式:

 https://atmosferausm.github.io/tutorial_WRF/run_wrf/

 https://www.bilibili.com/video/BV1G34y1g7J3/?spm_id_from=333.337.search-card.all.click

  • 30
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值