WRF与WPS的编译与安装

本次安装方式为查阅官方文档,经过自己对linux的兴趣,通过一整天时间研究整理出此文档,希望对大家有所帮助,谢谢。

有不足的地方希望各位指点,本人及时改正。

系统环境:Ubuntu server 18.04.3


目录

一、系统环境测试

1、查看系统是否安装所需的编译器

2、使用官方测试文件,测试基本环境

3、测试 Fortran 和 C

二、安装所需依赖库

1、下载所需依赖库的软件包

2、安装所有的依赖库

3、设置临时局部环境变量

4、安装 netcdf-4.1.3.tar.gz

5、安装 mpich-3.0.4.tar.gz

6、安装 zlib-1.2.7.tar.gz

7、安装 libpng-1.2.50.tar.gz

8、安装 jasper-1.900.1.tar.gz

三、依赖库兼容性测试

1、使用官方测试文件

2、完成2个测试

四、安装WRF

1、下载 WRF 软件包

2、减压WRF

3、进入到 WRF 目录

4、切换 root 用户

5、root 用户设置临时局部变量

6、编译安装 WRF

五、安装WPS

1、下载 WPS 软件包

2、减压 WPS

3、进入到 WPS 目录

4、切换 root 用户

5、root 用户设置临时局部变量

6、编译安装 WPS

六、大功告成


一、系统环境测试

1、查看系统是否安装所需的编译器

gfortran、gcc、cpp

(1)、gfortran --version      建议使用4.6或更高版本

GNU Fortran (Ubuntu 7.4.0-1ubuntu1~18.04.1) 7.4.0
Copyright (C) 2017 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

(2)、gcc --version

gcc (Ubuntu 7.4.0-1ubuntu1~18.04.1) 7.4.0
Copyright (C) 2017 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

2、使用官方测试文件,测试基本环境

测试文件下载:https://download.csdn.net/download/qq_27721925/12005404

(1)、创建测试目录:sudo mkdir /test

(2)、减压测试文件到 /test 目录下:sudo tar -xvf Fortran_C_tests.tar -C /test/

(3)、减压后测试文件有

(4)、后面切换到 test 目录进行测试

3、测试 Fortran 和 C

验证是否正确构建了fortran编译器,并且该编译器与C编译器兼容。

测试一:TEST_1_fortran_only_fixed.f

命令行执行:sudo gfortran TEST_1_fortran_only_fixed.f (执行完后会生成新的 a.out 文件)

命令行 执行:./a.out

执行完成后在屏幕上输出的内容

测试二:TEST_2_fortran_only_free.f90

命令行执行:sudo gfortran TEST_2_fortran_only_free.f90 (执行完后会生成新的 a.out 文件)

命令行执行:./a.out

执行完成后在屏幕上输出的内容

测试三:TEST_3_c_only.c

命令行执行:sudo gcc TEST_3_c_only.c (执行完后会生成新的 a.out 文件)

命令行执行:./a.out

执行完成后在屏幕上输出的内容

测试四:TEST_4_fortran+c_c.c TEST_4_fortran+c_f.f90

Fortran调用C函数。gcc 和 gfortran 具有不同的默认值,在组合它们时需要统一使用64位[-m64]。

命令行执行:sudo gcc -c -m64 TEST_4_fortran+c_c.c (执行完后会生成 TEST_4_fortran+c_c.o 文件)

命令行执行:sudo gfortran -c -m64 TEST_4_fortran+c_f.f90 (执行完后会生成 TEST_4_fortran+c_f.o 文件)

命令行执行:sudo gfortran -m64 TEST_4_fortran+c_f.o TEST_4_fortran+c_c.o (执行完后会生成新的 a.out 文件)

命令行执行:./a.out

执行完成后在屏幕上输出的内容

安装 WRF 除 gfortran 和 gcc 外还必须有:csh、perl、sh,这3个脚本语言,正常情况下linux系统都有。下面测试这3个脚本语言。

测试五:csh

命令行执行:./TEST_csh.csh

执行完成后在屏幕上输出的内容

测试六:perl

命令行执行:./TEST_perl.pl

执行完成后在屏幕上输出的内容

测试七:sh

命令行执行:./TEST_sh.sh

执行完成后在屏幕上输出的内容

上边的七个测试输出都正确证明基本环境没有问题,请进行后面的操作。如有问题自行查阅相关资料解决。


二、安装所需依赖库

1、下载所需依赖库的软件包

mpich-3.0.4.tar.gz、netcdf-4.1.3.tar.gz、jasper-1.900.1.tar.gz、libpng-1.2.50.tar.gz、zlib-1.2.7.tar.gz

所有软件包打包下载:https://download.csdn.net/download/qq_27721925/12005310

2、安装所有的依赖库

必须与WRF和WPS的安装目录在一起,必须谨慎安装

(1)、创建WRF的安装目录:sudo mkdir /usr/local/wrf

(2)、创建安装依赖库的目录:sudo mkdir /usr/local/wrf/LIBRARIES

3、设置临时局部环境变量

在安装依赖库前需要在当前 shell 设置局部变量,退出 shell 后失效

export DIR=/usr/local/wrf/LIBRARIES
export CC=GCC
export CXX=g++
export FC=gfortran
export FCFLAGS=-m64
export F77=gfortran
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

4、安装 netcdf-4.1.3.tar.gz

在软件包目录下执行:

          sudo tar -xvf netcdf-4.1.3.tar.gz

          cd netcdf-4.1.3/

          sudo ./configure --prefix=$DIR/netcdf --disable-dap --disable-netcdf-4 --disable-shared

          sudo make

          sudo make install

设置临时局部环境变量:

          export NETCDF=$DIR/netcdf

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

切换到安装包目录:

          cd ..

5、安装 mpich-3.0.4.tar.gz

在软件包目录下执行:

          sudo tar -xvf mpich-3.0.4.tar.gz

          cd mpich-3.0.4/

          sudo ./configure --prefix=$DIR/mpich

          sudo make

          sudo make install

设置临时局部环境变量:

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

切换到安装包目录:

          cd ..

6、安装 zlib-1.2.7.tar.gz

在软件包目录下执行:

          sudo tar -xvf zlib-1.2.7.tar.gz

          cd zlib-1.2.7/

          sudo ./configure --prefix=$DIR/grib2

          sudo make

          sudo make install

切换到安装包目录:

          cd ..

7、安装 libpng-1.2.50.tar.gz

在软件包目录下执行:

          sudo tar -xvf libpng-1.2.50.tar.gz

          cd libpng-1.2.50/

          sudo ./configure --prefix=$DIR/grib2

          sudo make

          sudo make install

切换到安装包目录:

          cd ..

8、安装 jasper-1.900.1.tar.gz

在软件包目录下执行:

          sudo tar -xvf jasper-1.900.1.tar.gz

          cd jasper-1.900.1/

          sudo ./configure --prefix=$DIR/grib2

          sudo make

          sudo make install

切换到安装包目录:

          cd ..


三、依赖库兼容性测试

1、使用官方测试文件

测试文件下载:https://download.csdn.net/download/qq_27721925/12005398

(1)、减压测试文件到 /test 目录下: sudo tar -xvf Fortran_C_NETCDF_MPI_tests.tar -C /test/

(2)、减压后测试文件有

2、完成2个测试

测试一:Fortran + C + NetCDF

测试 NetCDF 时,需要将 NETCDF 软件中 include 目录下的 netcdf.inc 文件拷贝到测试目录。

sudo cp ${NETCDF}/include/netcdf.inc

执行步骤 

命令行执行:sudo gfortran -c 01_fortran+c+netcdf_f.f        (执行完后会生成新的 01_fortran+c+netcdf_f.o 文件)
命令行执行:sudo gcc -c 01_fortran+c+netcdf_c.c        (执行完后会生成新的 01_fortran+c+netcdf_c.o 文件)
命令行执行:sudo gfortran 01_fortran+c+netcdf_f.o 01_fortran+c+netcdf_c.o -L${NETCDF}/lib -lnetcdff -lnetcdf        (执行完后会生成新的 a.out 文件)
命令行 执行:./a.out

执行完成后在屏幕上输出的内容

测试二:Fortran + C + NetCDF + MPICH

测试 NetCDF + MPICH 时,需要将 NETCDF 软件包中 include 目录下的 netcdf.inc 文件拷贝到测试目录,因为执行 MPICH 时会自动读取软件包中 include 目录下的 mpif.h 文件,所以不需要复制。

sudo cp ${NETCDF}/include/netcdf.inc .

后面编译时需要使用 MPICH 可执行文件 mpif90 和 mpicc。

命令行执行:sudo mpif90 -c 02_fortran+c+netcdf+mpi_f.f        (执行完后会生成新的 02_fortran+c+netcdf+mpi_f.o 文件)
命令行执行:sudo mpicc -c 02_fortran+c+netcdf+mpi_c.c        (执行完后会生成新的 02_fortran+c+netcdf+mpi_c.o 文件)
命令行执行:sudo mpif90 02_fortran+c+netcdf+mpi_f.o 02_fortran+c+netcdf+mpi_c.o -L${NETCDF}/lib -lnetcdff -lnetcdf        (执行完后会生成新的 a.out 文件)
命令行 执行:sudo mpirun ./a.out

执行完成后在屏幕上输出的内容


四、安装WRF

1、下载 WRF 软件包

WRFV3.9.1.1.TAR.gz 和 WPSV3.9.1.TAR.gz 打包下载地址:https://download.csdn.net/download/qq_27721925/12005335

2、减压WRF

将 WRFV3.9.1.1.TAR.gz 减压到 WRF 的安装目录:sudo tar -xvf WRFV3.9.1.1.TAR.gz -C /usr/local/wrf/

3、进入到 WRF 目录

cd /usr/local/wrf/WRFV3/

4、切换 root 用户

下面的操作建议使用root用户执行。如果普通用户使用sudo命令去执行的话会找不到安装依赖对应的环境变量,所以省点事直接切换到 root 用户下执行。

sudo -s

5、root 用户设置临时局部变量

因为后面编译安装时需要知道netcdf的位置

export DIR=/usr/local/wrf/LIBRARIES
export NETCDF=$DIR/netcdf

6、编译安装 WRF

(1)、命令行执行:./configure

在执行完后会提示选择2次,第一次选择数字 34 ,第二次选择数字 1 。如下图:

执行完后,最后输出:

(2)、命令行执行:./compile em_real >& log.compile 或者 ./compile em_real

说明:
./compile em_real >& log.compile   ------→   将执行时输出的内容追加到 log.compile 文件中,用作日志记录。
./compile em_real   ------→   将执行时输出的内容直接输出到屏幕,本人比较喜欢这样有错误警告及时查看,避免上一种还需要动态查看执行日志文件。

本步骤执行时间较长,大约需要 10—20 分钟,执行完成后会提示在 WRF 目录的 main 下生成4个 .exe 可执行文件,如下图。

(3)、编译完成后检查4个 .exe 文件是否存在


五、安装WPS

1、下载 WPS 软件包

WPSV3.9.1.TAR.gz 和 WRFV3.9.1.1.TAR.gz 打包下载地址:https://download.csdn.net/download/qq_27721925/12005335

2、减压 WPS

将 WPSV3.9.1.TAR.gz 减压到 WRF 的安装目录:sudo tar -xvf WPSV3.9.1.TAR.gz -C /usr/local/wrf/

3、进入到 WPS 目录

cd /usr/local/wrf/WPS/

4、切换 root 用户

下面的操作建议使用root用户执行。如果使用普通用户 sudo 去执行的话会找不到之前安装依赖对应的环境变量,所以省点事直接切换到 root 用户下执行。

sudo -s

5、root 用户设置临时局部变量

因为后面编译安装时需要 mpich、grib2 、netcdf 、wrf 。(本步骤为关键因素,如果后边编译报错请检查步骤)

export DIR=/usr/local/wrf/LIBRARIES
export PATH=$DIR/mpich/bin:$PATH
export PATH=$DIR/grib2/bin:$PATH
export JASPERLIB=$DIR/grib2/lib
export JASPERINC=$DIR/grib2/include
export NETCDF=$DIR/netcdf
xport WRF_DIR=/usr/local/wrf/WRFV3

6、编译安装 WPS

(1)、命令行执行:./configure

在执行完后会提示选择1次,选择数字 3 。如下图:

执行完后,最后输出:

(2)、命令行执行:./compile >& log.compile 或者 ./compile

说明:
./compile >& log.compile   ------→   将执行时输出的内容追加到 log.compile 文件中,用作日志记录。在执行时也可动图查看 log.compile 文件。
./compile   ------→   将执行时输出的内容直接输出到屏幕。本人喜欢这样有错误警告及时查看。

(3)、编译完成会生成3个 .exe 文件,如下


六、大功告成

各位老师发现问题欢迎指出,谢谢。联系邮箱:[email protected]

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章