WRF-DA代碼編譯與安裝(一)——依賴庫的編譯與安裝

由于筆者的研究需要用到數(shù)據(jù)同化技術(shù),所以開始學習WRF相關(guān)內(nèi)容(主要是WRF-DA模塊)。這里先解釋下WRF是什么東西。

WRF全稱Weather Research and Forecasting Model, 是一個天氣研究與預(yù)報模型.可以用來進行精細尺度的天氣模擬與預(yù)報。

二戰(zhàn)后,由于計算機技術(shù)的迅猛發(fā)展,氣象預(yù)報技術(shù)也隨之突飛猛進。短短的幾十年里,世界各地的氣象研究機關(guān)開發(fā)出了各自的相對獨立的氣象模式。這些模式之間缺少互換性,對科研及業(yè)務(wù)上的交流極其不便。從上世紀90年代后半開始,美國對這種亂立的模式狀況進行反省。最后由美國環(huán)境預(yù)測中心(NCEP),美國國家大氣研究中心(NCAR)等美國的科研機構(gòu)為中心開始著手開發(fā)一種統(tǒng)一的氣象模式。終于于2000 年開發(fā)出了WRF模式。同時,為使研究成果能夠迅速地應(yīng)用到現(xiàn)實的天氣預(yù)報當中去,WRF模式分為ARW(the Advanced Research WRF)和NMM(the Nonhydrostatic Mesoscale Model)兩種,即研究用和業(yè)務(wù)用兩種形式,分別由NCEP和NCAR管理維持著。
具體的可以見官網(wǎng):

http://www2.mmm.ucar.edu/wrf/users/

WRF模擬系統(tǒng)主要包含WPS和WRF兩部分模塊: WPS模塊全稱為WRF Pre-processing System,即WRF預(yù)處理系統(tǒng),用來為WRF模型準備輸入數(shù)據(jù);如果只是做理想實驗(idealized modeling),就不需要用WPS處理真實數(shù)據(jù)。但是理想實驗不在本文介紹范圍內(nèi),本文介紹的是進行真實數(shù)據(jù)模擬的操作。 WRF模塊就是數(shù)值求解的模塊,它有兩個版本:ARW(Advanced Research WRF) 和 NMM(Nonhydrostatic Mesoscale Model)。大多數(shù)研究者主要用的都是ARW版本,本文所有的介紹也都基于ARW版本。 除了WPS與WRF兩大核心模塊外,WRF系統(tǒng)還有很多附加模塊:比如用于數(shù)據(jù)同化的WRF-DA,用于化學傳輸?shù)腤RF-chem,用于林火模擬的WRF-fire(該段文字引自xg1990的博客,具體地址文末貼出,感謝該位大神的分享)。
安裝運行WRF模擬系統(tǒng)必須在Linux系統(tǒng)。而筆者又無法放棄windows系統(tǒng),同時目前工作還處于前期測試階段,故決定選擇用VMware虛擬機搭建一個Linux系統(tǒng)來測試。
選用的VMware版本:12.5.2。
Linux系統(tǒng):Ubuntu 16.04
具體安裝過程不是本文重點。詳情可見

https://jingyan.baidu.com/article/c275f6ba07e269e33d756714.html

此外附上Ubuntu官網(wǎng)鏈接

https://www.ubuntu.com/download/desktop

WRF-DA編譯與安裝主要參照官方提供的ppt和文檔(地址文末會貼出)。


首先看下WRF-DA編譯與安裝的需求。




上面提到了需求如下:
1.Linux/Mac系統(tǒng),基于Unix或Linux的系統(tǒng)
2.(3DVAR)三維變分的案例內(nèi)存占用不大,大的(4DVAR)四維變分內(nèi)存消耗較大。
3.支持C和Fortran的編譯器(ifort/icc, gfortran/gcc,pgf90/pgcc)
4..需要的一些庫,類似于WRF。包括:Zlib,netCDF C/Fortran,MPI(MPICH),BUFR,CRTM,RTTOV,HDF5。
系統(tǒng)已經(jīng)安裝完畢,而內(nèi)存部分目前暫時不考慮。接下來看C和Fortran的編譯器。
Ubuntu內(nèi)置了gcc的編譯器。可以通過命令來查看。

~$ gcc -v

結(jié)果如下:


這里寫圖片描述

接下來安裝gfortran,也是通過命令進行安裝。

~$ sudo apt-get install gfortran

通過命令查看是否安裝成功。

~$ gfortran -v

接下來是幾個庫的下載與安裝。
zlib:

http://www.zlib.net/

netCDF C/Fortran:

http://www.unidata.ucar.edu/downloads/netcdf/index.jsp

MPI(MPICH):

http://www.mpich.org/downloads/

BUFR:包含在WRF源代碼中

CRTM:包含在WRF源代碼中

RTTOV:

https://nwpsaf.eu/site/software/rttov/

需注冊,最好自備梯子。

HDF5:

https://support.hdfgroup.org/HDF5/

將如上的幾個庫的安裝包通過共享文件夾放入虛擬機中(mnt/hgfs/Share)。

zlib和hdf5和netCDF 4相關(guān)。具體安裝步驟和教程借鑒了官方文檔

http://www.unidata.ucar.edu/software/netcdf/docs/getting_and_building_netcdf.html#build_nc4_dap_from_source

1.zlib的安裝:解壓到/usr/下

$ cp -r zlib-1.2.11.tar.gz /usr/
$ tar zvf zlib-1.2.11.tar.gz

然后進入解壓文件夾,并安裝

$ ./configure --prefix=/usr/local/zlib
$ make check
$ make install

修改環(huán)境變量。

gedit ~/.bashrc
# for zlib  
export ZLIB_HOME=/usr/local/zlib  export
LD_LIBRARY_PATH=$ZLIB_HOME/lib:$LD_LIBRARY_PATH

2.HDF5的安裝:解壓到/usr/下

$ tar -xvf hdf5-1.8.18.tar

然后進入解壓文件夾,并安裝

$ ./configure --with-zlib=/usr/local --prefix=/usr/local/hdf5
$ make 
$ make check
$ make install

HDF5的安裝和檢驗參照:

./configure --prefix=/usr/local/hdf5 --with-zlib=/usr/local/zlib 

http://blog.csdn.net/luoying_1993/article/details/53228473

HDF5還需配置一個環(huán)境變量,避免下面的netCDF C安裝報錯。

$ gedit ~/.bashrc
#for hd5
export CPPFLAGS=-I$PRO_PATH/usr/local/hdf5/include 
export LDFLAGS=-L$PRO_PATH/usr/local/hdf5/lib 
export LD_LIBRARY_PATH=$PRO_PATH/usr/local/hdf5/lib
$ source ~/.bashrc

3.netCDF C/Fortran安裝
先裝netCDF C:

$ export CPPFLAGS=-I$PRO_PATH/usr/local/hdf5/include 
$ export LDFLAGS=-L$PRO_PATH/usr/local/hdf5/lib 
$ export LD_LIBRARY_PATH=$PRO_PATH/usr/local/hdf5/lib
$ ./configure --prefix=/usr/local/NETCDF --enable-netcdf-4
$ make 
$ make check
$ make install

接著裝netCDF Fortran:
先聲明環(huán)境變量:

$ export CPPFLAGS=-I/usr/local/NETCDF/include
$ export LDFLAGS=-L/usr/local/NETCDF/lib

然后進行下一步編譯。

$ ./configure --prefix=/usr/local/NETCDF FC=gfortran

4.mpich的安裝:
解壓之類的步驟同上,同樣放到usr下面。
解壓到指定路徑。

$ tar zxf mpich-3.2.tar.gz 
$ ./configure -prefix=/usr/local/mpi/

5.rttov的安裝:
rttov解壓出來東西較多,同樣新建個path來存放。

$ tar zxf rttov121.tar.gz 
$ cd src
$ ../build/rttov_compile.sh

打完收工。目前應(yīng)該就完成了WRF-DA編譯安裝前所有需要的依賴庫的編譯及安裝。下一篇更新WRF-DA具體的編譯與安裝。由于對Linux系統(tǒng)不熟悉,加上坑爹的rttov,博客寫了兩三天。從內(nèi)心堅持要提醒大家的一點,Linux編譯環(huán)境一定要注意環(huán)境變量?。?!

最后重點鳴謝幾位主要參考大神的博客以及相關(guān)文檔:

https://wenku.baidu.com/view/58851bc269eae009591bec0a.html
https://nwpsaf.eu/site/software/rttov/rttov-v12/
http://www2.mmm.ucar.edu/wrf/users/wrfda/updates-3.8.1.html
https://xg1990.com/blog/archives/190
http://blog.csdn.net/luoying_1993/article/details/53228473

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

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

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