利用gfortran7安装WRF4及以上版本

 前言

      在摸索了很多的WRF安装教程后,自己实践出的一套比较可行的安装路径

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

     在虚拟机的Ubantu22.04.3中在线安装WRF4及以上版本-CSDN博客(推荐)

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

1.安装前准备

1.1导入gfortran7软件安装源

sudo apt-get update
sudo apt-get install vim -y

sudo vim /etc/apt/sources.list
#把以下这行加到文件的最后一行
deb https://mirrors.aliyun.com/ubuntu/ focal main universe

1.2 安装系统指令

sudo apt-get update
sudo apt install gcc-7 -y
sudo apt install gfortran-7 -y
sudo apt-get install cpp g++ m4 libxml2 libxml2-dev libhdf5-dev -y
sudo apt-get install libnetcdf-dev
sudo apt-get install csh -y
sudo apt-get install git -y
sudo apt install make

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

sudo update-alternatives --install /usr/bin/gfortran gfortran /usr/bin/gfortran-7 100

 把gfortran默认指向gfortran-7

1.3 设置好文件目录结构

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

mkdir Build_WRF
mkdir Build_WRF/TESTS
mkdir Build_WRF/LIBRARIES

1.4 测试编译器

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

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

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

从官网下载测试包

cd 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
wget https://www2.mmm.ucar.edu/wrf/OnLineTutorial/compile_tutorial/tar_files/netcdf-4.1.3.tar.gz
wget https://www2.mmm.ucar.edu/wrf/OnLineTutorial/compile_tutorial/tar_files/mpich-3.0.4.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/libpng-1.2.50.tar.gz
wget https://www2.mmm.ucar.edu/wrf/OnLineTutorial/compile_tutorial/tar_files/zlib-1.2.7.tar.gz
tar xvf netcdf-4.1.3.tar.gz
tar xvf mpich-3.0.4.tar.gz
tar xvf jasper-1.900.1.tar.gz
tar xvf libpng-1.2.50.tar.gz
tar xvf zlib-1.2.7.tar.gz

2.2 配置环境变量

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

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

export NETCDF_classic=1
export DIR=/home/ubuntu/Build_WRF/LIBRARIES
export CC=gcc-7
export CXX=g++
export FC=gfortran-7
export FCFLAGS=-m64
export F77=gfortran-7
export FFLAGS=-m64
export JASPERLIB=$DIR/grib2/lib
export JASPERINC=$DIR/grib2/include
export LDFLAGS=-L$DIR/grib2/lib
export CPPFLAGS=-I$DIR/grib2/include

export PATH=/usr/bin/gfortran-7:$PATH
export PATH=$DIR/netcdf/bin:$PATH
export NETCDF=$DIR/netcdf

export PATH=$DIR/mpich/bin:$PATH

2.3 安装各个依赖包

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

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

安装zlib

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

安装libpng

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

安装jasper

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

安装mpich

cd $DIR/mpich-3.0.4
./configure --prefix=$DIR/mpich
make
make install

安装netcdf

cd $DIR/netcdf-4.1.3
./configure --prefix=$DIR/netcdf --disable-dap --disable-netcdf-4 --disable-shared
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

将会下载默认版本

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

3.2编译WRF

cd $DIR/../WRF
./configure

 编译方式有4种:serial(串行,即非并行)、smpar(内存共享并行)、dmpar(分布式并行)、dm+sm(同时使用dmpar和smpar),这里我选34和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方式:

WRF安装和运行的技术教程-CSDN博客

spack方式:

 WRF安装和运行的技术教程-CSDN博客

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

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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值