地球流体的数值模拟与AI预测(2):WRF 真实模拟
构建real.exe文件
由于此前已经进行过理想模拟, 所以登陆后, 首先要清除编译文件,
再改用em_real重新编译.\(\newcommand{\K}{\mathbb{K}}\newcommand{\R}{\mathbb{R}}\newcommand{\C}{\mathbb{C}}\newcommand{\b}{\mathbf}\newcommand{\bi}{\boldsymbol}\newcommand{\rank}[1]{\text{rank}\left(#1
\right)}\newcommand{\dim}[1]{\text{dim}\left(#1
\right)}\newcommand{\diag}[1]{\text{diag}\left(#1
\right)}\newcommand{\det}[1]{\text{det}\left(#1
\right)}\newcommand{\Det}[1]{\left|\begin{matrix} #1
\end{matrix}\right|}\newcommand{\set}[1]{\left\{ #1
\right\}}\newcommand{\abs}[1]{\left| #1
\right|}\newcommand{\norm}[1]{\left|\!\left|#1\right|\!\right|}\)
1 | |
打开文件后, 需要修改第168~169行的内容为如下:
1 | |
修改完成后, 可以开始编译, 使用sbatch提交任务,
例如提交脚本叫compile.sh:
1 | |
检查正确编译的方法: 在WRF/main目录下, 观察是否有
ndown.exe, tc.exe, real.exe, wrf.exe文件.
编译WPS
现在WRF的编译任务全部完成, 为了得到运行所需的条件, 就需要编译WPS.
1 | |
打开文件后, 需要修改第62,63,67和68行的内容为如下:
1 | |
修改完成后, 可以开始编译WPS:
1 | |
检查正确编译的方法: 在WPS目录下,
观察是否有geogrid.exe, ungrib.exe, metgrid.exe等可执行文件的软链接.
Geogrid
Geogrid的作用是, 设定模拟区域, 并将各类地面数据集插值到模型网格中.
获取陆地输入数据
UCAR的可以在网上下载, 但是过程极其缓慢. 建议直接使用曙光超算上的公共路径.
1 | |
另一种方案是, 使用哥白尼数据空间生态系统气候数据库的数据(推荐).
进一步编辑namelist.wps并运行geogrid.exe
在geogrid环节,
只需要编辑&share和&geogrid部分.
1 | |
如果运行成功,
WPS目录下应该出现文件geo_em.d01.nc.
Ungrib
Ungrib的作用是解包GRIB气象数据, 并将其打包为中间文件格式. GRIB是世界气象组织的标准文件格式.
输入数据可以从UCAR官网下载.
建议直接用链接下载到PC, 再从PC上传到HPC(假设上传到~/NNRP/),
然后如下操作
1 | |
如果最后显示Successful completion of ungrib,
并且只剩下FILE:${timestamp}格式命名的文件,
临时文件PFILE被全部删除, 说明ungrib步骤成功.
Metgrid
Metgrid的作用是将气象数据(ungrib输出的FILE:${timestamp})水平插值到模型区域(geo_em.d01.nc)中.
如果检查确定namelist.wps中,
&metgrid.fg_name和&ungrib.prefix的值相同,
就可以直接运行metgrid.exe了.
1 | |
处理成功的标志一方面见输出, 另一方面,
FILE:${timestamp}的步长原来是6h,
如果在处理后变成了自定义步长(此处是10800s=3h, 更多时刻的FILE被插值得到),
并且出现了met_em.d01.${timestamp}.nc文件, 说明处理成功.
最后, 要创建这些met_em.d01.${timestamp}.nc文件的软链接,
以便WRF访问:
1 | |
运行WRF实现模拟
首先修改namelist.input文件,
确保与WPS/namelist.wps一致:
1 | |
然后运行real.exe, 确定成功后,
再提交wrf.exe的任务
1 | |