本次安裝方式爲查閱官方文檔,經過自己對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]