黄乾
个人信息
Personal information
副教授
硕士生导师
性别:男
主要任职:大气物理系主任
在职信息:在岗
所在单位:大气物理学院
学科:大气科学
办公地点:气象楼1001
本文建立在拥有一个可供登陆使用的服务器、创建好普通用户、root中已安装netCDF等必要库的基础上,旨在实践WRF的编译过程,并运行其中的em_tropical_cyclone热带气旋理想实验。考虑到该实验运行时间较长以及本人能力有限,只能在运行默认值的基础上进行尝试性探索。
一.WRF的下载和编译
下载WRF有两种方式,一种是通过git直接下载:
git clone https://github.com/wrf-model/WRF
还有一种是访问github直接下载,通过以下的网站:
https://github.com/wrf-model/WRF/releases
关于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(平面地球假设) 并且参数(对应北纬度) 。边界条件是周期性边界条件。所有这些假设可以在我们决定运行更复杂的实验时被放宽或修改。
同时用户可以通过修改 "module_initialize_tropical_cyclone.F" 文件中的参数 r0
, rmax
, vmax
和 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为 (北纬10°),发现热带气旋在DAY 3基本形成,但在DAY 5明显减弱,到了DAY 7又明显增强。这一发展过程或许可以理解为f的减小造成热带气旋的稳定性变差。事实上,科里奥利力是热带气旋的核心物理驱动力之一。它不仅决定了气旋的旋转方向,还促使气旋的形成、发展和结构演变。因此热带气旋一般不会在赤道直接形成,而是生成于低纬度地区。
气压 DAY 3
气压 DAY 5
气压 DAY 7
总的来说,本文包括WRF的下载、em_tropical_cyclone的编译与运行、简单修改module_initialize_tropical_cyclone.F中的参数并对比运行结果,值得探索的实验细节还有很多。