本次安装方式为查阅官方文档,经过自己对linux的兴趣,通过一整天时间研究整理出此文档,希望对大家有所帮助,谢谢。
有不足的地方希望各位指点,本人及时改正。
系统环境:Ubuntu server 18.04.3
目录
一、系统环境测试
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]