黄乾

个人信息

Personal information

副教授     硕士生导师
性别:男
主要任职:大气物理系主任
在职信息:在岗
所在单位:大气物理学院
学科:大气科学

办公地点:气象楼1001

教师博客

WRF进阶:热带气旋理想实验
发布时间:2024-12-20  点击次数:

本文建立在拥有一个可供登陆使用的服务器、创建好普通用户、root中已安装netCDF等必要库的基础上,旨在实践WRF的编译过程,并运行其中的em_tropical_cyclone热带气旋理想实验。考虑到该实验运行时间较长以及本人能力有限,只能在运行默认值的基础上进行尝试性探索。

一.WRF的下载和编译

下载WRF有两种方式,一种是通过git直接下载:

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

还有一种是访问github直接下载,通过以下的网站:

github.com/wrf-model/WR

关于WRF版本,需要提前说明的是,WRF 4.2.x/4.3.x/4.4.x 都可以无障碍编译运行,而4.5.x/4.6.x 在configure后不能成功编译,需在configure.wrf中的LIB_EXTERNAL最后手动增添-lnetcdf。这里我使用的版本是WRF.4.4.2。

下载后进行解压等操作,接下来到了编译部分。进入WRF的目录,输入./configure,然后会出现如下画面。我们选择32,然后默认选1。

会发现此时文件夹中多出一个configure.wrf的文件,接下来就可以开始编译了。

我们要运行的是em_tropical_cyclone理想实验,在WRF文件夹中输入:

./compile em_tropical_cyclone >& mylog &

等到编译完成,我们进入em_tropical_cyclone对应的文件夹查看:

cd test
cd em_tropical_cyclone

发现文件夹中存在ideal.exe和wrf.exe两个可执行程序,说明编译成功。需要说明的是,如果我们想要运行别的理想实验,在每次运行前都需要重新进行编译,否则ideal.exe和wrf.exe只适用于最近一次编译的实验,会出现报错。原因是理想实验文件夹中的ideal.exe与wrf.exe只是链接,链接的是主程序main里的ideal.exe与wrf.exe。

二.em_tropical_cyclone实验的运行

进入em_tropical_cyclone文件夹,我们先来阅读README。从中我们可以得知,此案例的初始条件是通过运行 ideal.exe 生成的。初始状态是静止的(u = v = 0)并且水平方向上是均匀的,除了在中间添加了一个分析的轴对称涡旋,且该涡旋满足静力平衡和梯度风平衡。初始的海面温度(SST)是常数,假设采用 f-plane(平面地球假设) 并且参数(对应北纬度)并且𝐶𝑜𝑟𝑖𝑜𝑙𝑖𝑠参数𝑓=5.0×10−5(对应北纬20度) 。边界条件是周期性边界条件。所有这些假设可以在我们决定运行更复杂的实验时被放宽或修改。

同时用户可以通过修改 "module_initialize_tropical_cyclone.F" 文件中的参数 r0rmaxvmax 和 zdd 来更改初始涡旋。这些文件位于 "dyn_em" 目录下。

初始的domain和resolution为 3000 km × 3000 km × 25 km,水平网格间距为 15 km,垂直网格间距为 1.25 km。

截取自README.tropical_cyclone

然后我们可以查看namelist.input,可以看到默认的运行时间为6天,时间间隔为30s,记录间隔为24h.

我们暂时不做修改。回到em_tropical_cyclone文件夹,直接运行ideal.exe:

./ ideal.exe

这时会生成wrfinput_d01的文件,接着运行wrf.exe:

./ wrf.exe >& mylog &

因为运行时间很长,我们把它放到后台运行,并写入日志来随时确认进度。如果不做任何修改,在我的服务器上跑完一次需要将近6个小时。跑完后,会产生两个400MB左右的nc文件:wrfout_d01_2007-09-01_00:00:00和wrfrst_d01_2007-09-07_00:00:00,前者是输出文件,后者是重启文件(用于在某个时刻暂停可以直接继续模拟而无需从头开始)。

我们打开Xming,使用ncview实现输出文件可视化(当然也可以将文件导出然后自己写代码进行再分析):

ncview wrfout_d01_2007-09-01_00:00:00

我们先来看看热带气旋中比较关心的气压(图片下方标注了时间,从红色到蓝色代表值越小):

DAY 0

DAY 1

DAY 6

可以看到中心区域的气压随着涡旋的形成明显降低。

再来看看风速(U,其中蓝色为负值,红色为正值):

DAY 0

DAY 1

DAY 2

DAY 3

可以看到涡旋形成并稳定的过程。

最后看水汽混合比:

DAY 0 此时中心水汽略高于其他地区(5%)

DAY2

DAY 6 气旋中心及周围水汽明显增多

结合运行结果,我们来简单说明一下热带气旋的形成过程。在本实验中,设置了一个初始的轴对称涡旋,特点是其中心的气压比周围的气压低。由于科里奥利力的影响,气流会在低压中心周围旋转并向内部移动,在低压中心形成上升气流。空气上升过程中,水汽凝结,释放潜热,进一步为上升气流提供能量,使得对流进一步加强,风速进一步增大,气压进一步降低,又会加强下层空气的汇聚。最终随着时间的推移形成热带气旋风暴

三.em_tropical_cyclone实验的尝试性探索

尝试修改"module_initialize_tropical_cyclone.F" 文件中的参数 r0, rmax, vmax 和 zdd 来更改初始涡旋。它们分别代表:

  • r0 : outer radius,初始热带气旋涡旋的外半径,表示气旋中心到涡旋边缘的距离,单位是米。

  • rmax : approximate radius of max winds, 表示气旋中心到最大风速所在位置的距离,单位是米。

  • vmax : approximate value of max wind speed,表示气旋在初始时刻所能达到的最大风速,单位是米每秒。

  • zdd : depth of vortex,表示涡旋的垂直深度,单位是米。

当然,由于原来的运行时间实在太长,我尝试着修改了时间间隔,最终确定为120s(发现取180s的时候数值格式不稳定),同时记录间隔改为12h,使得有更多的数据可以查看。

需要注意的是,修改module_initialize_tropical_cyclone.F后,相当于修改源代码,因此必须要重新编译一次代码。如果想要节省时间,可以将编译的不同版本的wrf.exe等文件copy后放在不同的文件夹中同时运行,要注意直接copy文件而不要copy链接。

截取自module_initialize_tropical_cyclone.F

修改r0为512500m,可以看到初始时低压范围变大,但最后形成的气旋尺度只有微弱的增大,而气压则显著降低,说明气旋强度变高。

气压 DAY 0

DAY4

修改rmax为152500m,我们发现整体来看初始风场其实变弱了,并且直到DAY 5才形成稳定的热带气旋。推测为rmax太大使得近低压中心的风场较小,相较不利于热带气旋的形成。事实上我最开始尝试的是修改rmax为102500m,但是变化太小。所以rmax对热带气旋的影响应该较小。

U DAY 0

气压 DAY 5

修改vmax为25m/s,可以看到初始风场明显变大,带来的初始低压中心的气压也明显降低,相比之前的模式仅在DAY 2就已经形成了稳定的热带气旋。说明vmax的增加能显著影响气旋的强度,更大的风速会带来更强大的热带气旋。

初始风场 DAY 0

初始气压 DAY 0

气压 DAY 2

修改zdd为30000m,也可以看到初始低压中心的气压变得更低,但最后形成的气旋似乎没有太大变化,推测zdd主要影响的是热带气旋的垂直结构,对于水平结构影响不大。

初始气压 DAY 0

DAY 4

修改f为2.5×10−5 (北纬10°),发现热带气旋在DAY 3基本形成,但在DAY 5明显减弱,到了DAY 7又明显增强。这一发展过程或许可以理解为f的减小造成热带气旋的稳定性变差。事实上,科里奥利力是热带气旋的核心物理驱动力之一。它不仅决定了气旋的旋转方向,还促使气旋的形成、发展和结构演变。因此热带气旋一般不会在赤道直接形成,而是生成于低纬度地区。

气压 DAY 3

气压 DAY 5

气压 DAY 7

总的来说,本文包括WRF的下载、em_tropical_cyclone的编译与运行、简单修改module_initialize_tropical_cyclone.F中的参数并对比运行结果,值得探索的实验细节还有很多。