WRF安装记录

WRF安装

虚拟机 Ubuntu 22.04.1 LTS

aptitude,类似apt-get,但功能更强大

sudo apt-get install aptitude

WRF基础依赖软件及库安装(apt-get一键安装)

安装编译器 ( #编译c,c++,fottran语言统一使用一套编译器,使用gun系列,对应gcc,g++,gfortran,使用intel系列,对应icc,i++,ifort,或者使用pgi系列对应的。编译wrf和netcdf等要使用同一套系列,否则容易出错,此次使用gun系列)

sudo apt-get install gcc g++ gfortran

sudo apt-get install make

安装WPS需要的库libpng,zlib,jasper

sudo apt-get install libpng12*

sudo apt-get install zlib*

sudo apt-get install libjasper-dev

安装libjasper-dev报错
在这里插入图片描述
解决方法:添加源

sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"

sudo apt update

sudo apt install libjasper1 libjasper-dev

缺少公钥报错:
在这里插入图片描述

打开终端,下载公钥:

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 40976EAF437D05B5

PS:后面那个40976EAF437D05B5换成缺少的密钥,是什么就换成什么

安装用于并行的mpich

sudo apt-get install mpich

安装用于图形显示的

sudo aptitude install xorg-dev

安装另外的shell语言

sudo apt-get install csh

sudo apt-get install ksh

安装m4,暂时不知道用于啥,还没具体查

sudo apt-get install m4

HDF5与NECTCDF(手动编译安装)

前期准备,可以先设置HDF5和NETCDF的环境变量
例如把hdf5与netcdf安装在/home/zzy/app这个目录
在这两个目录建立hdf5和netcdf文件夹

mkdir hdf5
mkdir netcdf

设置环境变量

gedit ~/.bashrc

在文件中添加这些内容

export APP_DIR=$HOME/app #app这个目录用的频繁,给设置一个环境变量
export NETCDF=$APP_DIR/netcdf #设置netcdf的环境变量
export HDF5=$APP_DIR/hdf5
export PATH=$PATH:$NETCDF/bin:$HDF5/bin #在PATH后面加上netcdf和hdf5的bin路径
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$NETCDF/lib:$HDF5/lib
#在 LD_LIBRARY_PATH后面加上netcdf和hdf5的lib路径

(PATH和LD_LIBRARY_PATH都是系统有的环境变量,新安装软件,在他们后面加上对应的bin和lib路径就可)

修改完后,保存退出
执行 .bashrc脚本,使刚才设置的环境变量生效

source ~/.bashrc

HDF5下载:https://support.hdfgroup.org/ftp/HDF5/releases/

NETCDF下载:https://www.unidata.ucar.edu/downloads/netcdf/

HDF5

./configure --prefix=$HDF5 CC=gcc FC=gfortran CXX=g++ --enable-fortran --enable-fortran2003 --enable-cxx
make #(或者make -j 4 并行编译,4线程,线程数可根据自己的电脑选择)
make install

注解:–prefix=$HDF5, $HDF5是安装hdf5的路径,换成自己的

NETCDF

NetCDF高版本的C\C++\Fortran部分需要分开编译
先装C版本

./configure --prefix=$NETCDF CC=gcc FC=gfortran F77=gfortran CXX=g++ CPPFLAGS="-I$HDF5/include" LIBS="-L$HDF5/lib"
make #(或者make -j 4 # 并行编译,4线程,线程数可根据自己的电脑选择)
make check (可忽略)
make install

再装Fortran版本

./configure --prefix=$NETCDF CC=gcc FC=gfortran F77=gfortran CXX=g++ CPPFLAGS="-I$NETCDF/include" LIBS="-L$NETCDF/lib"
make #(或者make -j 4 # 并行编译,4线程,线程数可根据自己的电脑选择)
make check (可忽略)
make install

注解:$NETCDF是netcdf的路径,换成自己的

WRF与WPS

下载WRF和WPS,解压后,WRF和WPS一定要在同一个父目录

也可以用git clone(需要先安装git)

git clone --recurse-submodules https://github.com/wrf-model/WRF
git clone https://github.com/wrf-model/WPS

WRF

定位到WRF文件夹,终端中运行

./configure

根据使用的配置,即GNU编译器(gfortran/gcc)+ dmpar(mpich)选择33选项(34编译不成功,还不知道原因)。
在这里插入图片描述
serial 表示串行计算;
smpar 表示内存共享并行计算(shared memory option),即使用openMP,大部分多核电脑都支持这项功能;
dmpar 表示分布式并行计算(distributed memory option),即使用MPI 进行并行计算,主要用在计算集群,单个电脑就没必要用了;
dm+sm 表示同时使用openMP与MPI两种并行方式.

嵌套方式:选择1,即基础嵌套即可。​​​​​​​

若出现错误:
在这里插入图片描述
因为ubuntu默认的sh是连接到dash的,又因为dash跟bash的不兼容所以出错了,执行时可以把sh换成 ’ bash 文件名.sh ’ 来执行,成功。
修改sh默认连接到bash的一种方法:

sudo dpkg-reconfigure dash

选择no 即可!

export J="-j 4" #设置并行编译的环境变量J ,4是核数,根据机器选(字面上设置的是核数,实际是线程)
./compile em_real >& compile_wrf.log

编译类型有以下几种
WRF-Chem(WRF大气化学模型)
em_real (3D真实情况)
em_quarter_ss (3D理想的情况下)
em_b_wave (3D理想的情况下)
em_les (3D理想的情况下)
em_heldsuarez (3D理想的情况下)
em_tropical_cyclone (3D理想的情况下)
em_hill2d_x (2D理想的情况下)
em_squall2d_x (2D理想的情况下)
em_squall2d_y ( 2d理想情况)
em_grav2d_x (2d理想情况)
em_seabreeze2d_x (2d理想情况)
em_scm_xy (1d理想情况)

真实情况编译完成后,在main目录下会出现ndown.exe,real.exe, tc.exe, wrf.exe这4个可执行程序;理想情况编译后会生成wrf.exe,ideal.exe 这2个可执行程序。

ls main/*exe # 出现 ndown.exe real.exe tc.exe wrf.exe即成功

WPS

先编译WRF,再编译WPS
WPS要和WRF在同一个父目录下
定位到WPS目录,终端执行:

./configure

选择1

./compile>& complie_wps.log
ls *exe # 出现geogrid.exe  metgrid.exe  ungrib.exe即成功

出现问题:编译后只生成了ungrib.exe。
解决方法:
修改./configure生成的configure.wps文件:
将“-lgomp”添加到configure.wps文件WRF_LIB变量中(只需将其附加到 -lnetcdf 之后)
在这里插入图片描述
重新执行

./compile>& complie_wps.log

生成geogrid.exe metgrid.exe ungrib.exe,完成!

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值