WRF主程序與WPS的編譯與安裝

最近從新把WRF學習提上事宜,因此開始從新鼓搗WRF。 因爲WRF-DA的運行須要依賴WPS程序,這裏就填下以前兩篇WRF-DA模塊編譯中挖的坑。即WRF主程序的編譯與安裝。若是不太清楚的WRF與WRF-DA相關的能夠去翻下前兩篇博客。php

博客地址git

最近原本準備換VitualBox來玩虛擬機,結果不當心玩脫了,把以前編譯安裝好WRF-DA模塊的Ubuntu系統刪除了,因此只好重頭再來了。因此這回我是從WRF主程序等一一安裝完,最後再來安裝WRF-DA模塊。不過這一次按照網上原來的教程裝了好屢次都失敗了,不得已之下,我去請教了WRF官方郵箱。他們給我提供了一份官方安裝教程,結果一次成功。這裏介紹下這份教程的過程。github

WRF官方在線安裝教程學習

1 系統環境測試

首先對編譯須要的gfortran,cpp,gcc檢查是否安裝,版本是否匹配。測試

which gfortran
which cpp
which gcc
gfortran --version
gcc --version
g++ --version

能顯示路徑說明已安裝,版本檢查也未出現。 能夠發現gfortran並未安裝。ui

apt install gfortran

接下來在安裝WRF的文件夾下建立兩個文件夾。一個是Build_WRF,一個是TESTS。 而後下載Fortran and C Tests Tar File文件,並放入TESTS文件夾下,對編譯器作測試。 解壓完畢。code

一共有7個測試。 首先是對Fortran和C的編譯器作測試。教程

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

接下來測試下csh,perl,sh是否可行。ip

./TEST_csh.csh
./TEST_perl.pl
./TEST_sh.sh

能夠發現csh測試不經過。解決方案爲安裝tcsh。get

apt install tcsh

安裝完,測試經過。

2 安裝依賴庫

首先在Build_WRF文件夾下面建立一個LIBRARIES的文件夾。而後下載所需的依賴庫。

mpich-3.0.4 netcdf-4.1.3 Jasper-1.900.1 libpng-1.2.50 zlib-1.2.7

把這些壓縮包所有放到LIBRARIES下面。

接着設置環境變量開始安裝。

1 netcdf安裝

這裏用的是4.1.3版本的netcdf,這個版本尚未把netcdf-fortran和netcdf-c拆開。比較新的版本已經把兩者拆開了,新版本則必須兩個都安裝。

exprot DIR=/home/Build_WRF/LIBRARIES
export CC=gcc
export CXX=g++
export FC=gfortran
export FCFLAGS=-m64
export F77=gfortran
export FFLAGS=-m64
tar zxvf netcdf-4.1.3.tar.gz
cd netcdf-4.1.3
./configure --prefix=$DIR/netcdf --disable-dap \
 --disable-netcdf-4 --disable-shared
make
make install
export PATH=$DIR/netcdf/bin:$PATH
export NETCDF=$DIR/netcdf

雖然網上有不少教程要求先安裝zllib和hdf5後安裝netcdf,可是我決定按官方教程走走看。

2 mpich安裝

若是不須要並行運算,能夠不安裝這個庫。這裏仍是安裝一下。

tar xzvf mpich-3.0.4.tar.gz
cd mpich-3.0.4
./configure --prefix=$DIR/mpich
make
make install
export PATH=$DIR/mpich/bin:$PATH

3 zlib安裝

export LDFLAGS=-L$DIR/grib2/lib
export CPPFLAGS=-I$DIR/grib2/include

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

4 libpng安裝

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

5 jasper安裝

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

3 依賴庫兼容性測試

接下來對安裝完的依賴庫兼容性作測試。 測試文件

1 Fortran+C+NetCDF

tar -xf Fortran_C_NETCDF_MPI_tests.tar
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

2 Fortran+C+NetCDF+MPI

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

4 編譯WRF

下載WRF的源碼,放在Build_WRF裏面。 WRF3.9.1

gunzip WRFV3.9.1.1.TAR.gz
tar -xf WRFV3.9.1.1.TAR
cd WRFV3
./configure

須要安裝m4。

apt-get install m4

接着configure一下,出現以下界面。

選擇34和1。

./compile em_real >& log.compile

接下來只要等待編譯完成了。 用下面的語句檢查是否生成exe。

ls -ls main/*.exe

5 編譯WPS

接下來就是編譯WPS。

gunzip WPSV3.9.1.TAR.gz
tar -xf WPSV3.9.1.TAR
cd WPS
./clean
export JASPERLIB=$DIR/grib2/lib
export JASPERINC=$DIR/grib2/include
./configure

出現以下界面

選擇3,而後運行以下命令編譯。

WRF_DIR = ../WRFV3
./compile >& log.compile

上述的exe出現且不爲紅色能夠初步認爲編譯安裝成功。如何運行WRF後面再介紹。

相關文章
相關標籤/搜索