安裝:
官網(wǎng)指南?compilation_tutorial
https://github.com/camposdelano/configuring-wrf-3.8-on-ubuntu-server-16.04
https://github.com/Toberumono/WRF-Setup-Script
https://blog.csdn.net/ESA_DSQ/article/details/78228678
Installing and running WRF 3.8 on Linux Ubuntu LTS 16.04 with Intel i7 4-core (8-threads) cpu
視頻教程:Configuring WRF 3.8 on Ubuntu Server 16.04?youtobe
日本https://sites.google.com/site/afcwrf/home
教程:WRF 3.9.1.1?在Ubuntu16.04 LTS?下的安裝包括Chem kpp?(氣象家園轉(zhuǎn))
64位win7和ubuntu16.04LTS雙系統(tǒng)下安裝WRF 3.9.1.1 (WPS, WRFV, WRFDA, WRF_Chem)
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
小其其格及其帖子
(http://bbs.06climate.com/forum.php?mod=viewthread&tid=55032&extra=page%3D1)
ljh110011及其帖子
(http://bbs.06climate.com/forum.php?mod=viewthread&tid=33557)
Lrxwisdom及其帖子
(http://bbs.06climate.com/forum.php?mod=viewthread&tid=37339)
科研菜鳥(博客地址http://blog.sciencenet.cn/u/sanshiphy)
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
所有軟件的版本介紹
系統(tǒng):Ubuntu 16.04 LTS(cat /etc/issue?查看)
WRF:V3.9.1.1?(WRFV3.9.1.1.TAR.gz酝静;WRFV3-Chem-3.9.1.TAR.gz池凄;WPSV3.9.1.TAR.gz;WRFDA_V3.9.1.tar.gz;?WRFDomainWizard)
NETCDF (NetCDF-C V4.4.1; NetCDF-FORTRAN V4.4.4)
HDF5: V1.8.18; NCL: V6.4.0
庫函數(shù):zlib: V1.2.10;Jasper: V1.900.1 (要是版本過高會(huì)不生成ungrid.exe,?也有解決辦法,后文提到) ; PNG:V1.6.26;Libjpeg.v9a
gcc 5.4.0??g++ 5.4.0??gfortran 5.4.0
byacc.1.9.tar.Z??wgrib2.tgz??
所有的軟件都已經(jīng)打包了好了太防,也是給自己以后留一個(gè)備份。
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Win&Ubuntu雙系統(tǒng)
/boot,?LinuxUUniversal_USB_Installer一定要首先更新一下系統(tǒng)祟霍,并且把所有的package都修復(fù)啦杏头!
sudo apt-get upgrade
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
安裝編譯工具
1)進(jìn)入Ubuntu后,打開左側(cè)ubuntuSoftware沸呐,查找”新立得軟件包管理器(synaptic)”醇王,點(diǎn)擊安裝,然后等待自行完成崭添。
2)perl(version 5 or later) (perl –v)
3)C shell(csh), Bourne shell (sh),這兩個(gè)可以被tcsh兼容寓娩,所以只需安裝tcsh
awk (which awk?若是usr/bin/awk返回,則說明OK)
4)接下來
apt-get install tcsh samba cpp m4 quota
tcsh --version
samba --version
cpp --version
m4 –version
檢查是否成功
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
安裝WRF編譯工具
1)首先判斷gcc呼渣,g++棘伴,gfortran版本是否一致
gcc --version
g++ --version
gfortran –version
基本上gfortran是沒有的,然后正常安裝即可
apt-get install gfortran
之后再檢查一遍這三個(gè)是否一樣屁置。Ubuntu16.04里面這三個(gè)都是5.4.0版本的焊夸。
2)根據(jù)小其其格的說法,需要重新連接一遍蓝角,不然會(huì)尋址不到阱穗。
【重新鏈接gcc,g++使鹅,gfortran】
1.建立備份文件夾:
mkdir /usr/bin/gccbackup
mkdir /usr/bin/g++backup
mkdir /usr/bin/gfortranbackup
2.先將原來的鏈接改名揪阶,終端輸入:
mv /usr/bin/gcc /usr/bin/gccbackup
mv /usr/bin/g++ /usr/bin/g++backup
mv /usr/bin/gfortran /usr/bin/gfortranbackup
3.重新鏈接
ln -s /usr/bin/gcc-5 /usr/bin/gcc
ln -s /usr/bin/gfortran-5 /usr/bin/gfortran
ln -s /usr/bin/g++-5 /usr/bin/g++
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
安裝NetCDF
NetCDF的安裝需要有HDF5lib,而HDF5的安裝需要先有zlib和curl患朱。所以先要安裝zlib和curl鲁僚。本人將zlib,curl,??jpeg, png.??Jasper?一起安裝了裁厅,并且建立了一個(gè)JASPER文件夾將這幾個(gè)lib與include都放在一起冰沙,方便后期的環(huán)境設(shè)置。
打開synaptic执虹,點(diǎn)擊搜索倦淀,輸入libjpeg8,然后libjpeg8-dbg/libjpeg8-dev選項(xiàng)声畏,前面沒有打鉤的。雙擊打鉤標(biāo)記,標(biāo)記后會(huì)變綠色插龄,點(diǎn)擊應(yīng)用愿棋,然后安裝。
同理輸入glibc均牢,然后就會(huì)看到結(jié)果有三個(gè)紅點(diǎn)的glibc選項(xiàng)糠雨,也apply。
同理輸入grib2徘跪,然后就會(huì)看到結(jié)果有libgrib2c-dev/libgrib2c0d選項(xiàng)甘邀,也apply。
開始安裝各個(gè)小東西
第一步解壓垮庐,把下載好的都解壓了松邪,我這里是解壓到/usr/local/src,安裝完可以刪除
tar -zxf zlib-1.2.10.tar.gz -C /usr/local/src
tar -zxf?jpegsrc.v9a.tar.gz?-C /usr/local/src
tar -zxf?libpng-1.6.26.tar.gz?-C /usr/local/src
tar -zxf jasper-1.900.1.zip -C /usr/local/src
接下來就是各種安裝了
1.?zlib
cd /usr/local/src/zlib-1.2.10/
./configure --prefix=/usr/local/zlib
make
make check
make install
2.?curl
apt-get install curl
3.?jpeg-9a
cd?/usr/local/src/?jpeg-9a
./configure --prefix=/usr/local/libjpeg
make
make install
4.?libpng
cd /usr/local/src/libpng-1.6.26
export LDFLAGS=-L/usr/local/zlib/lib
export CPPFLAGS=-I/usr/local/zlib/include
./configure --prefix=/usr/local/libpng
make
make install
5.?jasper-1.900.1
cd /usr/local/src/jasper-1.900.1
. /configure --prefix=/usr/local/jasper
make
make install
我安裝的是1.9,因?yàn)楦甙姹驹诤竺婵赡艹霈F(xiàn)不了ungrib.exe
根據(jù)科研菜鳥理論?高版本的Jasper需要修改jas_image.h文件
cd /usr/local/jasper/include/jasper/
gedit jas_image.h(找到bool inmem_;?將前面的“//“去掉)
配置環(huán)境變量
mkdir /usr/local/JASPER
mkdir /usr/local/JASPER/lib
mkdir /usr/local/JASPER/include
cp -r /usr/local/zlib/lib/* /usr/local/JASPER/lib
cp -r /usr/local/libpng/lib/* /usr/local/JASPER/lib
cp -r /usr/local/jasper/lib/* /usr/local/JASPER/lib
cp -r /usr/local/zlib/include/* /usr/local/JASPER/include
cp -r /usr/local/libpng/include/* /usr/local/JASPER/include
cp -r /usr/local/jasper/include/* /usr/local/JASPER/include
gedit ~/.bashrc
在最后添加下面路徑指向:
#for zlib
export ZLIB_HOME=/usr/local/zlib
export LD_LIBRARY_PATH=$ZLIB_HOME/lib:$LD_LIBRARY_PATH
#for libpng
export ZLIB_HOME=/usr/local/libpng
export LIBPNGLIB=/usr/local/libpng/lib
export LIBPNGINC=/usr/local/libpng/include
#set JASPER
export JASPER=/usr/local/JASPER
export JASPERLIB=/usr/local/JASPER/lib
export JASPERINC=/usr/local/JASPER/include
保存后退出
source ~/.bashrc
要是保存不了哨查,就?chmod 修改一下你的權(quán)限吧
(JASPER的兩個(gè)文件夾下分別有15個(gè)和7個(gè)文件)
安裝配置hdf5
tar-xf hdf5-1.8.18.tar -C /usr/local/src
cd /usr/local/src/hdf5-1.8.18
./configure --prefix=/usr/local/HDF5 --with-zlib=/usr/local/zlib
make (會(huì)有很多警告逗抑,但是不影響)
make check
make install
make check-install
時(shí)間稍長
gedit ~/.bashrc
在最后添加下面:
# for hdf5
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
安裝NetCDF-C
tar -zxf netcdf-c-4.4.1.tar.gz -C /usr/local/src
cd /usr/local/src/netcdf-c-4.4.1/
export CPPFLAGS=-I/usr/local/HDF5/include
export LDFLAGS=-L/usr/local/HDF5/lib
export LD_LIBRARY_PATH=$/usr/local/HDF5/lib
./configure --prefix=/usr/local/NETCDF --disable-netcdf-4
make
make check
make install
然后安裝好寒亥。
安裝NetCDF?-fortran
tar -xzf netcdf-fortran-4.4.4.tar.gz -C /usr/local/src
cd /usr/local/src/netcdf-fortran-4.4.4/
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/usr/local/NETCDF/lib
export CPPFLAGS=-I/usr/local/NETCDF/include
export LDFLAGS=-L/usr/local/NETCDF/lib
./configure --prefix=/usr/local/NETCDF FC=gfortran
make
make check
make install
接著設(shè)置環(huán)境變量
gedit ~/.bashrc
在最后添加下列語句:
#for netcdf
export PATH=/usr/local/NETCDF/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/NETCDF/lib:$LD_LIBRARY_PATH
保存后退出
source ~/.bashrc
安裝NCL
mkdir /usr/local/ncarg
tar -zxf ncl_ncarg-6.4.0.Linux_Debian8.6_x86_64_gnu492.tar.gz -C /usr/local/ncarg/
cd /usr/local/ncarg
gedit ~/.bashrc
在最后添加下列語句:
#for ncarg
Export NCARG_ROOT=/usr/local/ncarg
Export PATH=$NCARG_ROOT/bin:$PATH
Export MANPATH=$NCARG_ROOT/man:$MANPATH
Export DISPLAY=:0.0
export WRFIO_NCD_LARGE_FILE_SUPPORT=1(這一句用于WRF輸出大數(shù)據(jù))
保存后退出
source ~/.bashrc
檢驗(yàn)NCL是否成功安裝邮府,新終端輸入:
ncargversion
安裝wgrib2
cd /usr/local
tar –zxvf wgrib2.tgz
cd grib2
export CC=gcc
export FC=gfortran
make
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
安裝WRF
mkdir /home/yourname/model/
gedit ~/.bashrc
# for WRF
export JASPERLIB=/usr/local/JASPER/lib
export JASPERINC=/usr/local/JASPER/include
export NETCDF=/usr/local/NETCDF
source ~/.bashrc
tar -xzf WRFV3.9.1.1.TAR.gz -C /home/yourname/models
這時(shí)在/model出現(xiàn)了WRFV3的文件,進(jìn)入WRFV3里面的arch文件夾溉奕,找到Config_new.pl文件褂傀,打開后,找到下面這句并做如下修改:
$I_really_want_to_output_grib2_from_WRF= "TRUE" ;
對(duì)應(yīng)下面幾行加勤,找到并修改:
$sw_jasperlib_path= "/usr/local/JASPER/lib";
$sw_jasperinc_path= "/usr/local/JASPER/include";
保存后退出仙辟。
cd /home/yourname/models/WRFV3/
./configure
選擇gcc、gfortran胸竞、serial那一行(第32項(xiàng))欺嗤,輸入:32,回車
在arch文件夾里面找到configure_new.defaults卫枝,打開煎饼,找到這一部分
#ARCH? ?x86_64 Linux, gfortran compiler withgcc??#serial smpar dmpar dm+sm
找到下面幾行,做如下修改:
FORMAT_FIXED??=? ?? ? -ffixed-form -cpp
FORMAT_FREE? ?=? ?? ? -ffree-form -cpp -ffree-line-length-none
保存后退出校赤。
在WRFV3目錄下找到configure.wrf文件并打開吆玖,做如下修改:(同上)
FORMAT_FIXED??=? ?? ? -ffixed-form -cpp
FORMAT_FREE? ?=? ?? ? -ffree-form -cpp -ffree-line-length-none
保存后退出。
./compile em_real >&checkwrf.log
ls -ls main/*.exe
查看 main目錄下若有 ndwon.exe\real.exe\wrf.exe\tc.exe马篮,編譯成功沾乘。若未編譯成功,在 checkwrf.log中查看是否有 error浑测,修正 error后翅阵,用./clean -a清除前次編譯后歪玲,重新編譯。
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
安裝KPP
chongzika掷匠,如果您要查看本帖隱藏內(nèi)容請回復(fù)
Flex:
mkdir /usr/local/flex
cd /usr/local/flex
tar -xzf flex.tar.gz
cd flex-2.5.3
./configure --prefix=/usr/local/flex
make
make install
Yacc:
gzip -d byacc.1.9.tar.Z
mkdir /usr/local/yacc
tar -xf byacc.1.9.tar -C /usr/local/yacc
make
gedit ~/.bashrc
# for chem
export WRF_CHEM=1 (編譯 WRF_Chem)
export WRF_KPP=1(安裝 KPP滥崩,0 表示不安裝 KPP,若不安裝 KPP讹语,下面的環(huán)境變量不需要設(shè)置)
export PATH=/usr/local/yacc:$PATH
export PATH=/usr/local/flex/bin:$PATH
export YACC='/usr/local/yacc/yacc -d'
export FLEX=/usr/local/flex/bin/flex
export FLEX_LIB_DIR=/usr/local/flex/lib
source ~/.bashrc
設(shè)置前利用 which flex 和 which yacc 查一下系統(tǒng)原來是否安裝有 flex/yacc 其它版本钙皮。如果有,必須在 PATH 路徑中加入自己安裝的 flex/yacc 執(zhí)行程序路徑顽决,如上面標(biāo)黃部分所示短条。
WRF-Chem
tar –xzf WRFV3-Chem-3.9.1.TAR.gz -C /home/yourname/models/WRFV3
打開WRF-Chem下的arch文件夾,找到Config_new.pl才菠,打開并做如下修改:(同WRF)
$I_really_want_to_output_grib2_from_WRF = "TRUE" ;
對(duì)應(yīng)下面幾行茸时,找到并修改:
$sw_jasperlib_path = "/usr/local/JASPER/lib";
$sw_jasperinc_path = "/usr/local/JASPER/include";
保存后退出。
cd /home/yourname/models/WRFV3
./clean -a (刪除以前的 WRF 編譯)
./configure
./compileem_real >&checkwrf.log
ls -ls main/*.exe
查看 main 目錄下若有 ndwon.exe\real.exe\wrf.exe\tc.exe鸠儿,編譯成功
若未編譯成功屹蚊,在 checkwrf.log 中查看是否有 error,修正 error 后进每,用./clean -a 清除前次編譯后汹粤,重新編譯.
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
安裝WPS
WRFV3 和WPS 必須在同一個(gè)父目錄下。
tar -xzf WPSV3.9.1.1.TAR.gz -C /home/yourname/models/
cd /home/yourname/models/WPS
打開WPS下的arch文件夾田晚,找到configure.defaults嘱兼,打開,找到這一部分:
#ARCH? ? Linux x86_64, gfortran??# serial serial_NO_GRIB2 dmpardmpar_NO_GRIB2
在這部分里面做如下修改:
COMPRESSION_LIBS? ?= -L/usr/local/JASPER/lib -ljasper -lpng -lpng16 -lz
COMPRESSION_INC = -I/usr/local/JASPER/include
FFLAGS? ?? ?=-ffree-form -cpp -O-fconvert=big-endian-frecord-marker=4
F77FLAGS? ? =-ffixed-form -cpp -O -fconvert=big-endian-frecord-marker=4
保存后退出贤徒。
找到preamble文件芹壕,打開做如下修改:
WRF_DIR =?/home/yourname/model/WRFV3
編輯環(huán)境信息
gedit ~/.bashrc
# for WPS
export JASPERLIB=/usr/local/JASPER/lib
export JASPERINC=/usr/local/JASPER/include
export LD_LIBRARY_PATH=/usr/local/jasper/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=/usr/local/libpng/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=/usr/local/zlib/lib:$LD_LIBRARY_PATH
source ~/.bashrc
./configure
./compile > checkwps.log
ls -ls *.exe
檢查當(dāng)前目錄中(/home/models/WPS)是否有名為geogrid.exe\ungrib.exe\metgrid.exe的鏈接文件,若有接奈,編譯成功踢涌。
ls -ls util/*.exe
檢查當(dāng)前目錄中是否有如下exe,編譯成功:
avg_tsfc.exe g1print.exeheight_ukmo.exe mod_levs.exe
calc_ecmwf_p.exeg2print.exe int2nc.exe rd_intermediate.exe
若未編譯成功序宦,在checkwps.log 中查看是否有error睁壁,修正error 后,用./clean-a清除前次編譯后互捌,重新編譯潘明。
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
安裝WRFDA
打開WRFDA下的arch文件夾,找到Config_new.pl秕噪,打開并做如下修改: $I_really_want_to_output_grib2_from_WRF = "TRUE" ;
對(duì)應(yīng)下面幾行钳降,找到并修改:
$sw_jasperlib_path = "/usr/local/JASPER/lib";
$sw_jasperinc_path = "/usr/local/JASPER/include";
保存后退出。
終端輸入:
cd /home/yourname/model/WRFDA
./configure wrfda
選擇gcc腌巾、gfortran遂填、serial那一行(第32項(xiàng))铲觉,輸入:32,回車
gedit configure.wrf
做如下修改:
FORMAT_FIXED? ?=? ?? ?-ffixed-form -cpp
FORMAT_FREE? ? =? ?? ?-ffree-form -cpp-ffree-line-length-none
保存后退出城菊。
./compile all_wrfvar >&checkwrfda.log
cd var/build
ls *.exe
看看有沒有da_wrfvar.exe文件备燃,并且全部可執(zhí)行文件不顯示紅色,那么WRFDA安裝成功凌唬。
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
安裝WRFDomainWizard
首先安裝java
1.官網(wǎng)下載JDK
2.解壓縮,放到指定目錄
sudo mkdir/usr/lib/jvm
sudo tar -zxvf??jdk-7u79-linux-x64.tar.gz -C /usr/lib/jvm
3.修改環(huán)境變量:
sudo gedit ~/.bashrc
文件的末尾追加下面內(nèi)容:
#set oracle jdkenvironment
export JAVA_HOME=/usr/lib/jvm/jdk1.7.0_60??## 這里要注意目錄要換成自己解壓的jdk 目錄
export JRE_HOME=${JAVA_HOME}/jre??
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH??
使環(huán)境變量馬上生效
source ~/.bashrc
4.設(shè)置系統(tǒng)默認(rèn)jdk 版本
sudo update-alternatives --install /usr/bin/java java/usr/lib/jvm/jdk1.7.0_79/bin/java 300??
sudo update-alternatives --install /usr/bin/javac javac/usr/lib/jvm/jdk1.7.0_79/bin/javac 300??
sudo update-alternatives --install /usr/bin/jar jar /usr/lib/jvm/jdk1.7.0_79/bin/jar300? ?
sudo update-alternatives --install /usr/bin/javah javah/usr/lib/jvm/jdk1.7.0_79/bin/javah 300? ?
sudo update-alternatives --install /usr/bin/javap javap/usr/lib/jvm/jdk1.7.0_79/bin/javap 300? ?
然后執(zhí)行:
sudo update-alternatives--config java
若是初次安裝jdk,會(huì)有下面的提示
There is only one alternative in link group java (providing/usr/bin/java):
/usr/lib/jvm/jdk1.7.0_60/bin/java
否者,選擇合適的jdk
5.測試jdk
java –version
然后安裝WRFDomainWizard
解壓WRFDomainWizard.zip到/home/yourname/model下
終端輸入:
cd /home/yourname/model/WRFDomainWizard
chmod +x run_DomainWizard
./run_DomainWizard
這樣就出來一個(gè)圖形界面 (你已經(jīng)完全成功了)
感覺代碼寫的時(shí)候沒啥事,到網(wǎng)頁上之后漏麦,會(huì)有空格被吃掉的情況客税,大家一定要注意!撕贞!
# 運(yùn)行
https://github.com/toberumono/WRF-Runner
# 其他練習(xí)
[Brian_Blaylock](http://home.chpc.utah.edu/~u0553130/Brian_Blaylock/wrf.html)