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]

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