首先可以放一个喜欢的音乐,边听边安装,手边放好零食,保持愉快心情。
说明一下为什么不用官方教程安装,因为个人认为这么安装比官方教程简单,并且官方教程有时在细节上不甚明晰,可能出现许多莫名其妙的错误,到时也需要自己搜索解决,对于新手比较困难(至少在我安装时的那个版本,明明一步一步来,但莫名其妙报很多错)。然后网上的许多教程我尝试运行时,也不能顺利运行,不知道原因,如果非常顺利自然也不会有这个教程,而这里的安装过程理论上应该不会报错了。
官方教程地址:Compiling WRF
第一步,选择并下载ubuntu系统
下载ubuntu-18.04.6-desktop-amd64.iso
下载网址:https://mirrors.aliyun.com/ubuntu-releases/18.04/
不下载最新的ubuntu-22.04.3-desktop-amd64.iso是因为最新的ubuntu-22.04.3,在之后的sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"命令,会报错。
第二步,安装ubuntu系统
安装双系统或虚拟机(本人是在虚拟机上安装,虚拟机设置为10G内存,处理器数量为1,每个处理器的内核数量为2,分配120G硬盘空间),安装后将环境设置为中文(重启后才能生效),方便之后的使用。
注意虚拟机CPU数量不可以大于物理主机CPU的数量,个人电脑一般也就一个CPU。多了可能报错,有几次安装失败不知道是不是我当时填多了引起的。
Ubuntu的虚拟机的安装方式可以在哔哩哔哩上搜索,这里不进行赘述,注意密码最好设置简单一些,甚至一个数就行,因为需要经常输入,没必要难为自己。
第三步,更新软件列表与软件
更新当前软件列表与软件,否则之后可能导致安装错误,安装系统后开机会自动提示,安装后重启即可。
第四步,配置安装环境
打开终端,依次输入这几个命令,最好一个一个复制,如果报错,方便知道是哪个报错了
sudo apt-get install -y gcc g++ gfortran
sudo apt-get install -y csh
sudo apt-get install -y ksh
sudo apt-get install -y m4
sudo apt-get install -y make
sudo apt-get install -y zlib*
sudo apt-get install -y libpng12*
sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"
sudo apt update
sudo apt install libjasper1 libjasper-dev
sudo apt-get -y install mpich
第五步,设置环境变量
在终端输入:
nano ~/.bashrc
会打开一个文档,在文档最后加入
export HDF5=your_hdf5_install_path
export NETCDF=your_netcdf_install_path
export PATH=$NETCDF/bin:$HDF5/bin:$PATH
export LD_LIBRARY_PATH=$NETCDF/lib:$HDF5/lib:$LD_LIBRARY_PATH
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
最后四行我也不知道是干什么的,只是一开始安装失败,WPS不产生exe文件,然后看了一些别的安装教程,加上就有了,感谢那几个安装教程。
然后注意your_hdf5_install_path是你的安装路径,不要原模原样复制
我当时输入的是
export HDF5=/home/zzz/Build_WRF/LIBRARIES/hdf5
export NETCDF=/home/zzz/Build_WRF/LIBRARIES/netcdf
export PATH=$NETCDF/bin:$HDF5/bin:$PATH
export LD_LIBRARY_PATH=$NETCDF/lib:$HDF5/lib:$LD_LIBRARY_PATH
export DIR=/home/zzz/Build_WRF
export NETCDF2=$DIR/LIBRARIES/netcdf
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
之后同时按CTRL与X离开文档,会提示是否保存,再输入Y,回车键确定保存,自动回到终端界面。输入
source ~/.bashrc
使其生效。
第六步,下载与安装HDF5和NetCDF4
HDF5的版本非常重要,这里选用hdf5-1.8.22 .tar.gz
若使用更早的版本如hdf5-1.8.10.tar.gz,则在编译时,.c文件中会出现//这种代码,是符合旧标准的注释代码,但是在新标准里被判定为错误,导致代码无法正常编译。即使依照报错,修改文件中的//,也会有下一个文件继续报这个错,本人改了三个文件后,不知道后边还有多少个,终止,选择其他版本。
若使用较新版本,如hdf5-1.14.3.tar.gz, 则在编译NETCDF4.1.3时,其会用到HDF5旧版的一个东西,但是新版没有这个东西,会导致报错,本人查了很久才知道是这么回事。
综上所述,选用hdf5-1.8.22 .tar.gz
NETCDF版本选用NETCDF4.1.3
因为之后的版本安装方式不同,有两个需要分别安装,也会导致一些莫名其妙的错误,甚至导致其他软件报错,本人亲测。
在主文件夹里建一个Build_WRF
里边再建两个文件夹LIBRARIES与TESTS
将下载好的hdf5-1.8.22 .tar.gz与NETCDF4.1.3扔到LIBRARIES里然后解压缩
进入hdf5-1.8.22文件夹打开终端(注意,是在这里的文件夹里鼠标右键选择打开终端,或者其他地方打开终端后使用cd 位置的方法移动过去也行,不过简便方法是在这个文件夹里打开终端)
在终端依次输入(注意第一块是一个命令,只不过比较长)
./configure --prefix=$HDF5 CC=gcc FC=gfortran CXX=g++ --enable-fortran --enable-fortran2003 --enable-cxx
make
make install
h5dump #若出现h5dump的使用说明,则安装成功
之后进入NETCDF4.1.3文件夹打开终端依次输入(注意第一块是一个命令,只不过比较长)
./configure --prefix=$NETCDF CC=gcc FC=gfortran F77=gfortran CXX=g++ CPPFLAGS="-I$HDF5/include" LIBS="-L$HDF5/lib" --enable-netcdf4
make
make install
ncdump #若显示使用说明,则说明安装成功。
第七步,安装其他库
此时如果直接安装WRF,无法产生exe文件
打开终端输入
cd $DIR/LIBRARIES
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
tar xvf jasper-1.900.1.tar.gz
tar xvf libpng-1.2.50.tar.gz
cd $DIR/LIBRARIES/libpng-1.2.50
./configure --prefix=$DIR/LIBRARIES/grib2
make
make install
cd $DIR/LIBRARIES/jasper-1.900.1
./configure --prefix=$DIR/LIBRARIES/grib2
make
make install
第八步,下载与安装WRF
首先下载,在主文件夹打开终端,依次输入
wget https://www2.mmm.ucar.edu/wrf/src/WRFV4.0.TAR.gz
tar xzvf WRFV4.0.TAR.gz
cd WRF
./configure
会出现一个列表,输入34后回车确定,之后输入1后,按回车确定。
输入
./compile em_real
等待一段时间,完成后,在主文件夹看到四个exe文件
说明安装成功。
第九步,下载与安装WPS
在主文件夹输入
git clone GitHub - wrf-model/WPS: The official repository for the WRF Preprocessing System (WPS)
会提示安装git,安装后再次输入该命令即可下载好WPS
在主文件夹打开终端输入
cd WPS
或者在WPS文件夹下打开终端也行
然后输入
./configure
输入3,回车
接着输入
./compile
WPS文件夹里出现三个exe文件说明安装成功
第十步,大功告成,买瓶肥宅快乐水奖励一下自己吧~
喜欢的话,不妨点个关注支持一下。
附录:可能遇到的错误与解决
1. 网上下载的虚拟机,最后一步报错
No git found or not a git repository, git commit version not available.
解决方法:重新安装虚拟机
2. 虚拟机断网了,联不上网
解决方法在终端输入,
sudo nmcli networking off
sudo nmcli networking on
右上显示网络连接情况图标,顺便就能连接了
3. 输入csh后命令行不显示路径(本教程未涉及到csh, 如果使用官方教程,设置环境变量时需要先在终端输入csh,以此切换到csh才行)
解决办法:在csh状态输入以下代码可以暂时解决
alias precommand 'set prompt="${cwd} >"'
precommand
alias cd 'chdir \!* && precommand'
4. 输入./compile 程序文件夹名 后瞬间就结束了,没有编译过程
解决方法:在WRF文件夹打开终端,输入./clean -a,然后重新./configure 最后再次./compile