登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
本帖最后由 sunzy025 于 2021-8-21 15:43 编辑
教程:WRF 3.9.1.1 在Ubuntu16.04 LTS 下的安装包括Chem kpp 本人是在64位win7和ubuntu16.04LTS双系统下成功的安装了WRF 3.9.1.1 (WPS, WRFV, WRFDA, WRF_Chem) ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 首先先感谢 几位大神,以及我所参考的好多个帖子。吃水不忘挖井人,在此一一感谢。 小其其格及其帖子 ljh110011及其帖子 Lrxwisdom及其帖子 科研菜鸟(博客地址http://blog.sciencenet.cn/u/sanshiphy) 南方黑芝麻糊(发自内心的感谢这位超级大神!!,耐心回答了我很多问题) ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 所有软件的版本介绍 系统: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 库函数:zlib: V1.2.10;Jasper: V1.900.1 (要是版本过高会不生成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 所有的软件都已经打包了好了,也是给自己以后留一个备份。 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// Win&Ubuntu双系统 /boot, LinuxUUniversal_USB_Installer一定要首先更新一下系统,并且把所有的package都修复啦! sudo apt-get upgrade ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 安装编译工具 1)进入Ubuntu后,打开左侧ubuntuSoftware,查找”新立得软件包管理器(synaptic)”,点击安装,然后等待自行完成。 2)perl(version 5 or later) (perl –v) 3)C shell(csh), Bourne shell (sh),这两个可以被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 之后再检查一遍这三个是否一样。Ubuntu16.04里面这三个都是5.4.0版本的。 2)根据小其其格的说法,需要重新连接一遍,不然会寻址不到。 【重新链接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 一起安装了,并且建立了一个JASPER文件夹将这几个lib与include都放在一起,方便后期的环境设置。 打开synaptic,点击搜索,输入libjpeg8,然后libjpeg8-dbg/libjpeg8-dev选项,前面没有打钩的。双击打钩标记,标记后会变绿色,点击应用,然后安装。 同理输入glibc,然后就会看到结果有三个红点的glibc选项,也apply。 同理输入grib2,然后就会看到结果有libgrib2c-dev/libgrib2c0d选项,也apply。 开始安装各个小东西 第一步解压,把下载好的都解压了,我这里是解压到/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,因为高版本在后面可能出现不了ungrib.exe 根据科研菜鸟理论 高版本的Jasper需要修改jas_image.h文件 cd /usr/local/jasper/include/jasper/ gedit jas_image.h(找到bool inmem_; 将前面的“//“去掉) 配置环境变量 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 修改一下你的权限吧 (JASPER的两个文件夹下分别有15个和7个文件) 安装配置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 (会有很多警告,但是不影响)
make check
make install make check-install 时间稍长 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 接着设置环境变量
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输出大数据) 保存后退出 source ~/.bashrc 检验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 这时在/model出现了WRFV3的文件,进入WRFV3里面的arch文件夹,找到Config_new.pl文件,打开后,找到下面这句并做如下修改: $I_really_want_to_output_grib2_from_WRF= "TRUE" ; 对应下面几行,找到并修改: $sw_jasperlib_path= "/usr/local/JASPER/lib"; $sw_jasperinc_path= "/usr/local/JASPER/include"; 保存后退出。 cd /home/yourname/models/WRFV3/ ./configure 选择gcc、gfortran、serial那一行(第32项),输入: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 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,下面的环境变量不需要设置)
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 设置前利用 which flex 和 which yacc 查一下系统原来是否安装有 flex/yacc 其它版本。如果有,必须在 PATH 路径中加入自己安装的 flex/yacc 执行程序路径,如上面标黄部分所示。 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" ; 对应下面几行,找到并修改: $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 必须在同一个父目录下。 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 编辑环境信息 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 检查当前目录中(/home/models/WPS)是否有名为geogrid.exe\ungrib.exe\metgrid.exe的链接文件,若有,编译成功。 ls -ls util/*.exe 检查当前目录中是否有如下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" ; 对应下面几行,找到并修改: $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项),输入: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文件,并且全部可执行文件不显示红色,那么WRFDA安装成功。 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 安装WRFDomainWizard 首先安装java 1.官网下载JDK 2.解压缩,放到指定目录 sudo mkdir/usr/lib/jvm sudo tar -zxvf jdk-7u79-linux-x64.tar.gz -C /usr/lib/jvm 3.修改环境变量: sudo gedit ~/.bashrc 文件的末尾追加下面内容: #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 使环境变量马上生效 source ~/.bashrc 4.设置系统默认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 然后执行: sudo update-alternatives--config java
若是初次安装jdk,会有下面的提示
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 这样就出来一个图形界面 (你已经完全成功了)
感觉代码写的时候没啥事,到网页上之后,会有空格被吃掉的情况,大家一定要注意!!
2021.08.21补充:网盘里面的东西没有了,大家别下载了。切记!
|