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

最近重新把WRF學(xué)習(xí)提上事宜,所以開(kāi)始重新鼓搗WRF。
由于WRF-DA的運(yùn)行需要依賴WPS程序,這里就填下之前兩篇WRF-DA模塊編譯中挖的坑。即WRF主程序的編譯與安裝。如果不太清楚的WRF與WRF-DA相關(guān)的可以去翻下前兩篇博客。

博客地址

最近本來(lái)準(zhǔn)備換VitualBox來(lái)玩虛擬機(jī),結(jié)果不小心玩脫了,把之前編譯安裝好WRF-DA模塊的Ubuntu系統(tǒng)刪除了,所以只好重頭再來(lái)了。所以這回我是從WRF主程序等一一安裝完,最后再來(lái)安裝WRF-DA模塊。不過(guò)這一次按照網(wǎng)上原來(lái)的教程裝了好多次都失敗了,不得已之下,我去請(qǐng)教了WRF官方郵箱。他們給我提供了一份官方安裝教程,結(jié)果一次成功。這里介紹下這份教程的過(guò)程。

WRF官方在線安裝教程

1 系統(tǒng)環(huán)境測(cè)試

首先對(duì)編譯需要的gfortran,cpp,gcc檢查是否安裝,版本是否匹配。

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

能顯示路徑說(shuō)明已安裝,版本檢查也未出現(xiàn)。
可以發(fā)現(xiàn)gfortran并未安裝。

apt install gfortran

接下來(lái)在安裝WRF的文件夾下創(chuàng)建兩個(gè)文件夾。一個(gè)是Build_WRF,一個(gè)是TESTS。
然后下載Fortran and C Tests Tar File文件,并放入TESTS文件夾下,對(duì)編譯器做測(cè)試。
解壓完畢。

一共有7個(gè)測(cè)試。
首先是對(duì)Fortran和C的編譯器做測(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

接下來(lái)測(cè)試下csh,perl,sh是否可行。

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

可以發(fā)現(xiàn)csh測(cè)試不通過(guò)。解決方案為安裝tcsh。

apt install tcsh

安裝完,測(cè)試通過(guò)。

2 安裝依賴庫(kù)

首先在Build_WRF文件夾下面創(chuàng)建一個(gè)LIBRARIES的文件夾。然后下載所需的依賴庫(kù)。

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

把這些壓縮包全部放到LIBRARIES下面。

接著設(shè)置環(huán)境變量開(kāi)始安裝。

1 netcdf安裝

這里用的是4.1.3版本的netcdf,這個(gè)版本還沒(méi)有把netcdf-fortran和netcdf-c拆開(kāi)。比較新的版本已經(jīng)把二者拆開(kāi)了,新版本則必須兩個(gè)都安裝。

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

雖然網(wǎng)上有很多教程要求先安裝zllib和hdf5后安裝netcdf,但是我決定按官方教程走走看。

2 mpich安裝

如果不需要并行運(yùn)算,可以不安裝這個(gè)庫(kù)。這里還是安裝一下。

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 依賴庫(kù)兼容性測(cè)試

接下來(lái)對(duì)安裝完的依賴庫(kù)兼容性做測(cè)試。
測(cè)試文件

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一下,出現(xiàn)如下界面。

選擇34和1。

./compile em_real >& log.compile

接下來(lái)只要等待編譯完成了。
用下面的語(yǔ)句檢查是否生成exe。

ls -ls main/*.exe

5 編譯WPS

接下來(lái)就是編譯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

出現(xiàn)如下界面

選擇3,然后運(yùn)行如下命令編譯。

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

上述的exe出現(xiàn)且不為紅色可以初步認(rèn)為編譯安裝成功。如何運(yùn)行WRF后面再介紹。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 由于筆者的研究需要用到數(shù)據(jù)同化技術(shù),所以開(kāi)始學(xué)習(xí)WRF相關(guān)內(nèi)容(主要是WRF-DA模塊)。這里先解釋下WRF是什么...
    G小調(diào)的Qing歌閱讀 2,885評(píng)論 0 3
  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,030評(píng)論 25 709
  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,554評(píng)論 19 139
  • 人處在黃金時(shí)代里常常是不自知的,很多養(yǎng)分在那段時(shí)間里,無(wú)意識(shí)地?fù)]霍掉了。遇到的人看起來(lái)誤打誤撞,卻往往會(huì)成為最貴重...
    小小僵尸姑娘閱讀 248評(píng)論 0 0
  • 紐約市東1街40號(hào)。 菜譜: 蘿卜湯。 可樂(lè)豬排。 清蒸石斑魚。 蒜蓉空心菜。 百合西芹炒臘味。 香煎藕餅。 紅酒...
    謎樣男人閱讀 248評(píng)論 0 0

友情鏈接更多精彩內(nèi)容