文章目录
- 前言
- 基础环境准备
- Ubuntu20.04子系统安装
- WSL功能开启与Ubuntu子系统下载
- Ubuntu用户创建
- Ubuntu 20.04 更换国内镜像
- 相关库及WRFDA安装
- 检验和安装基础包
- WRF基础环境测试
- 编译器基础环境测试
- 基础库安装
- zlib安装
- hdf5安装
- netcdf4-c 安装
- netcdf-fortran安装
- mpich安装
- 安装libpng
- 安装jasper
- netcdf与mpich兼容性测试
- 下载WRFDA
- RTTOV安装(可选的不影响WRFDA的使用)
- WRDA安装
- F&A区域
前言
Hello 大家好呀,由于毕业+就业的原因,我已经很久很久没有更新我的博客。正好最近需要涉及到资料同化的问题需要安装WRFDA,所以这一期就给大家带来一个保姆级的WRFDA安装教程!
基础环境准备
由于我用的是个人电脑测试的,所以直接用的微软的Ubuntu20.04子系统安装的WRFDA
如果各位用的是大型机,或者是实体机那么就可以直接跳过Ubuntu20.04的安装过程了!
Ubuntu20.04子系统安装
WSL功能开启与Ubuntu子系统下载
首先,我们需要在控制面板中点击程序
随后,单机启用或关闭Windows功能
然后开启适用于Linux的Windows子系统
,并重启电脑!
接下来在微软商店中搜索Ubuntu
,并安装。在这里我选用的是Ubuntu 20.04,大家也可以选择其他版本!!
Ubuntu用户创建
在第一次启动ubuntu 20.04的时候需要创建用户名和密码,用户名大家就起一个自己能记住的英文字符就好;密码在输入的时候是不显示的,并且需要输入两遍!
这里偷懒了,直接用我自己之前发过的图片啦
Ubuntu 20.04 更换国内镜像
我的Ubuntu 20.04使用的是清华的镜像源
首先,在更换镜像之前,我们需要给Ubuntu的原有镜像进行备份
sudo cp /etc/apt/sources.list /etc/apt/sources.list.back
随后,编辑sources.list
sudo nano /etc/apt/sources.list
输入密码之后,大家就能看到如下的界面,并将下面的全部链接源全部注释掉即可!
随后进入到下面的地址:
https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu/
将Ubuntu版本切换到20.04,并且复制下面的代码到sources.list中
完成之后的样子就是下面的样子
随后按ctrl + o
和ctrl + x
保存并退出
随后在命令框中输入下面两段命令,更新源
sudo apt update
sudo apt upgrade
至此,在Windows下安装配置Ubuntu子系统就完事了
相关库及WRFDA安装
其实WRFDA的安装过程与正常WRF的安装过程一模一样,如果你的电脑中已经配置好了WRF的相关环境,并且可以运行的话,那么就直接下载对应版本的WRF,将WRF文件夹重命名为WRFDA,并进入到WRFDA文件夹中输入:
./configure wrfda # 我在个人电脑中选择的是编号是32GUN串行编译。
随后直接
./compile all_wrfvar
就完事了
接下来我就详细讲述从0开始安装的流程
检验和安装基础包
which gfortran
which cpp
which gcc
如果输出和上面的不一样也没关系,大家可以在输入以下命令进行安装
sudo apt-get update
sudo apt-get install gfortran cpp gcc g++ m4 csh libcurl4-openssl-dev libxml2-dev libhdf5-dev
WRF基础环境测试
首先我们需要找一个地方来安装WRF,我个人是安装在D盘的!!那么就可以在终端中输入cd /mnt/d/
来切换到D盘
cd /mnt/d/
随后输入以下命令来创建测试文件夹和库文件夹
mkdir Build_WRF
cd Build_WRF
mkdir TESTS
mkdir LIBRARIES
接下来还需要将我们创建的Build_WRF
文件夹添加到系统变量中,方便后需的操作!!
export DIR='/mnt/e/Build_WRF' #这是我的个人文件夹目录,大家根据自己的路径修改
echo $DIR
随后,我们还需要将DIR
这个路径添加到~/.bashrc
中
sudo nano ~/.bashrc
将你刚才export
的DIR目录重新再bashrc中重新输入一遍即可
随后保存,并退出该文件。
编译器基础环境测试
输入下列命令,下载并解压测试文件。
cd $DIR/TESTS
wget https://www2.mmm.ucar.edu/wrf/OnLineTutorial/compile_tutorial/tar_files/Fortran_C_tests.tar
tar xvf Fortran_C_tests.tar
随后输入下列代码测试编译器基础环境
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
./TEST_csh.csh
./TEST_perl.pl
./TEST_sh.sh
如果输出的结果为
那就没问题,进入下一个环节即可~~~
基础库安装
接下来就到了掉头发的时候了,也是最折磨人的时候了~~
首先,需要再终端中输入下面代码
cd $DIR/LIBRARIES
wget https://www2.mmm.ucar.edu/wrf/OnLineTutorial/compile_tutorial/tar_files/mpich-3.0.4.tar.gz
wget https://www2.mmm.ucar.edu/wrf/OnLineTutorial/compile_tutorial/tar_files/jasper-1.900.1.tar.gz
wget https://www2.mmm.ucar.edu/wrf/OnLineTutorial/compile_tutorial/tar_files/libpng-1.2.50.tar.gz
wget https://downloads.unidata.ucar.edu/netcdf-c/4.9.2/netcdf-c-4.9.2.tar.gz
wget https://downloads.unidata.ucar.edu/netcdf-fortran/4.6.1/netcdf-fortran-4.6.1.tar.gz
wget https://www2.mmm.ucar.edu/wrf/OnLineTutorial/compile_tutorial/tar_files/zlib-1.2.11.tar.gz
wget https://hdf-wordpress-1.s3.amazonaws.com/wp-content/uploads/manual/HDF5/HDF5_1_14_3/src/hdf5-1.14.3.tar.gz
tar xvf mpich-3.0.4.tar.gz
tar xvf jasper-1.900.1.tar.gz
tar xvf libpng-1.2.50.tar.gz
tar xvf netcdf-c-4.9.2.tar.gz
tar xvf netcdf-fortran-4.6.1.tar.gz
tar xvf zlib-1.2.11.tar.gz
tar xvf hdf5-1.14.3.tar.gz
下载所有的依赖环境
zlib安装
#先安装zlib
cd $DIR/LIBRARIES/zlib-1.2.11
./configure --prefix=$DIR/LIBRARIES/grib2
make
make install
hdf5安装
cd $DIR/LIBRARIES/hdf5-1.14.3
./configure --prefix=$DIR/LIBRARIES/hdf5 --enable-fortran --enable-cxx --with-zlib=$DIR/LIBRARIES/grib2
make
make install
安装好Zlib与hdf5之后需要向bashrc中添加环境
export LD_LIBRARY_PATH=$DIR/LIBRARIES/grib2/lib:$DIR/LIBRARIES/hdf5/lib:$LD_LIBRARY_PATH
接下来输入
sudo nano ~/.bashrc
将export LD_LIBRARY_PATH=$DIR/LIBRARIES/grib2/lib:$DIR/LIBRARIES/hdf5/lib:$LD_LIBRARY_PATH
添加到环境中
保存,并退出~
netcdf4-c 安装
cd $DIR/LIBRARIES/netcdf-c-4.9.2
./configure --prefix=$DIR/LIBRARIES/netcdf --enable-dap --enable-netcdf4 --enable-shared LDFLAGS="-L$DIR/LIBRARIES/hdf5/lib -L$DIR/LIBRARIES/grib2/lib" CPPFLAGS="-I$DIR/LIBRARIES/hdf5/include -I$DIR/LIBRARIES/grib2/include"
make
make install
随后还是需要声明变量
export PATH=$DIR/LIBRARIES/netcdf/bin:$PATH
export NETCDF=$DIR/LIBRARIES/netcdf
export LD_LIBRARY_PATH=$DIR/LIBRARIES/netcdf/lib:$LD_LIBRARY_PATH
接下来输入
sudo nano ~/.bashrc
将刚刚声明的变量写到bashrc
中
netcdf-fortran安装
cd $DIR/LIBRARIES/netcdf-fortran-4.6.1
./configure --prefix=$DIR/LIBRARIES/netcdf --enable-shared LIBS="-lnetcdf -lz" LDFLAGS="-L$DIR/LIBRARIES/netcdf/lib -L$DIR/LIBRARIES/grib2/lib" CPPFLAGS="-I$DIR/LIBRARIES/netcdf/include -I$DIR/LIBRARIES/grib2/include"
make
make install
安装完成之后可以检查一下netcdf-c
和netcdf-fortran
是否安装成功
nc-config --has-nc4
nf-config --has-nc4
看到两个Yes就说明没毛病了
mpich安装
cd $DIR/LIBRARIES/mpich-3.0.4
./configure --prefix=$DIR/LIBRARIES/mpich
make
make install
随后声明mpich的路径
export PATH=$DIR/LIBRARIES/mpich/bin:$PATH\
接下来输入
sudo nano ~/.bashrc
将刚刚声明的变量写到bashrc
中
安装libpng
cd $DIR/LIBRARIES/libpng-1.2.50
./configure --prefix=$DIR/LIBRARIES/grib2
make
make install
安装jasper
cd $DIR/LIBRARIES/jasper-1.900.1
./configure --prefix=$DIR/LIBRARIES/grib2
make
make install
声明环境变量
export JASPERLIB=$DIR/LIBRARIES/grib2/lib
export JASPERINC=$DIR/LIBRARIES/grib2/include
export LDFLAGS=-L$DIR/LIBRARIES/grib2/lib
export CPPFLAGS=-I$DIR/LIBRARIES/grib2/include
接下来输入
sudo nano ~/.bashrc
将刚刚声明的变量写到bashrc
中
netcdf与mpich兼容性测试
cd $DIR/TESTS
wget https://www2.mmm.ucar.edu/wrf/OnLineTutorial/compile_tutorial/tar_files/Fortran_C_NETCDF_MPI_tests.tar
tar xvf Fortran_C_NETCDF_MPI_tests.tar
输出下面的结果表示安装的没毛病
下载WRFDA
在WRF4.0版本之后WRFDA就被集成到WRF中了,因此下载WRFDA和下载WRF是同一个东西的
cd $DIR
git clone --recurse-submodules https://github.com/wrf-model/WRF
下载好之后在你的电脑上就多出来一个文件夹
你可以直接将这个文件夹重命名问WRFDA也可以复制一个再重命名为WRFDA,甚至改都不用改也行(PS:自己能记住哦!)
RTTOV安装(可选的不影响WRFDA的使用)
RTTOV与 BUFR和CRTM一样都是辐射传输模型,只是RTTOV需要手动安装,而BUFR和CRTM被集成到了WRF源代码中。
RTTOV需要自己去官网注册和下载(魔法)
注册很简单的,就需要填写一下个人信息,外加上会给你发两个邮件就完事了
https://nwpsaf.eu/site/software/rttov/
随后可以根据下面的过程进行下载
点击user area
登录一下(已经登录的不会有这个页面哦)
拉到网页下面
然后输入下列代码解压rttov
tar -xf rttov132.tar.xz
随后进入到rttov的src文件夹下
cd /mnt/e/Build_WRF/rttov132/src #这是我个人的路径,请大家根据自己的路径进行修改
随后输入下列命令安装rttov
../build/rttov_compile.sh
安装过程中的会提示相关信息,大家可以根据自己需求是否开启。如果不是很清楚的,直接全默认即可~
随后声明rttov的路径
export rttov= $DIR/rttov132
然后将这个变量添加到bashrc
中
sudo nano ~/.bashrc
WRDA安装
cd $DIR/WRFDA
./configure wrfda # 这里我选择的是32 GUN串行编译
./compile all_wrfvar
在编译完成之后我们可以输入
ls -l var/build/*exe var/obsproc/src/obsproc.exe
检查一共生成了多少个.exe,如果是44个exe文件的话,那么WRFDA就安装完成了~~~~~~~~
F&A区域
这一部分我稍后整理一下,各种报错实在是层出不穷,各位童鞋们也可以积极留言,我尽可能的一一处理