WRF模式中的移动嵌套

notes

This article was last updated on <span id="expire-date"></span> days ago, the information described in the article may be outdated.

以下所有内容几乎全部来自ChatGPT。

要点总结(先看这一段)

  1. 两种实现方式
    • 自动移动子域(推荐用于台风跟踪):WRF 支持 vortex-following 的自动移动(和“preset moves”指定移动两种模式)。要用自动移动必须在编译时打开移动嵌套选项(见下)。自动模式会定期寻找中层涡心并把子网格移动到合适位置。(参考链接WRF版本为v2,需要重新确认选项)
    • 静态子域 + 手动重心/重新初始化:不想重新编译 WRF 的情况下,可以把 d02 设在台风可能经过的区域并做更长时间的多次重启/重新定位(人工“跟随”),或把初始 d02 定在台风起始位置并接受一定偏移。
  2. 必须的准备
    • WPS(namelist.wps)中按常规设置嵌套(e_we, e_sn, parent_id, parent_grid_ratio, i_parent_start, j_parent_start 等)。
    • 若用自动/指定移动:编译 WRF 时需要打开移动嵌套支持-DMOVE_NESTS;若使用 vortex-following 还需 -DVORTEX_CENTER),然后在 namelist.input 中设置移动相关参数。(参考链接WRF版本为v2,需要重新确认选项)
  3. 常用/重要的移动参数(都写在 namelist.input 中,通常在 &domains 区块处或 namelist 变量区)
    • vortex_interval:多长时间(分钟)重新计算涡心(默认 15 min)。(参考链接WRF版本为v3.7,需要重新确认选项)
    • max_vortex_speed:计算搜索半径时用到的最大涡速(m/s)。
    • corral_dist:当子域接近粗域边界时允许的最小距离(以粗域网格点数计),用于整体“牵带”。
    • track_level:用来追踪涡心的气压水平(Pa),例如 50000 Pa(500 hPa)或 85000 Pa 等。
    • time_to_move / move_interval / move_cd_x/move_cd_y:用于“指定移动(preset moves)”的参数(如果你想预先给出移动表)。(参考链接WRF版本为v3.7,需要重新确认选项)
  4. 限制/注意
    • 自动 vortex-following 假设有明显的中层涡(对弱/发展中风暴不稳健)。(参考链接WRF版本为v2,需要重新确认选项)
    • 需要在编译时启用并编译对应的选项,不能在已编译的二进制上开关。(参考链接WRF版本为v2,需要重新确认选项)
    • 移动会带来额外的 I/O/重插值与边界初始化问题(leading edge 初始化来自父域插值),并非把子域“整个画面”直接移动;可观察到子域内部场随移动被重新插值。(参考链接为2017年的presentation,需要重新确认选项)

详细步骤(从准备到运行)

A. WPS(namelist.wps)——域定义(静态初始位置)

namelist.wps&geogrid 区给出 d01 与 d02 的网格参数(d02 的 parent_id 指向 d01,parent_grid_ratioi_parent_startj_parent_start 指定初始位置)。示例(摘要):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
&geogrid
max_dom = 2,
parent_id = 1, 1,
parent_grid_ratio = 1, 3, ! d02 比 d01 细 3
i_parent_start = 1, 50, ! 你为 d02 在 d01 中指定起点(初始)
j_parent_start = 1, 70,
e_we = 121, 121,
e_sn = 101, 101,
dx = 27000, 9000, ! 举例:d01 27 km, d02 9 km
dy = 27000, 9000,
ref_lat = 20.0, ref_lon = 120.0,
truelat1 = 30.0, truelat2 = 60.0,
map_proj = 'mercator',
...
/

这里 i_parent_start/j_parent_start 的值要按你希望子域一开始位于父域何处来设置(通常以网格点计);移动嵌套会在此基础上动态改变位置。

B. 编译 WRF(如需移动嵌套)

  • 若要使用指定移动(preset moves):在 configure.wrfARCHFLAGS 添加 -DMOVE_NESTS,然后 ./compile em_real 等。
  • 若要使用自动涡旋追踪(vortex-following):添加 -DMOVE_NESTS -DVORTEX_CENTER 再编译(自动模式会额外追踪 500 hPa 涡心并移动嵌套)。(参考链接WRF版本为v2,需要重新确认选项)

编译后你会得到支持移动嵌套的 real.exe / wrf.exe

C. namelist.input ——关键域与移动参数

&domains(必须设置 max_dom >= 2),并加入移动相关参数(在 &domains 中或 namelist 规定处,参考你的 WRF 版本 run/README.namelist)示例片段:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
&domains
max_dom = 2,
e_we = 121, 121,
e_sn = 101, 101,
dx = 27000, 9000,
dy = 27000, 9000,
parent_id = 1, 1,
parent_grid_ratio = 1, 3,
i_parent_start = 1, 50,
j_parent_start = 1, 70,
feedback = 1, ! 两向嵌套(子网向父网回馈)
...

! 以下为自动移动(vortex-following)相关(WRF必须以vortex-following编译)
vortex_interval = 15, ! 每15分钟重新定位
max_vortex_speed = 40, ! m/s
corral_dist = 8, ! 离粗网边界最小距离(格点数)
track_level = 50000, ! 在 500 hPa 层追踪
time_to_move = 0, ! 什么时候开始移动(min from start)
/

如果使用“指定移动(preset moves)”,需要在 namelist 中给出 num_movesmove_timemove_cd_xmove_cd_y(也可以用 move_interval / move_cd_* 指定每次移动方向/步长)——这通常在 run/README.namelist 有示例。(参考链接WRF版本为v3.7,需要重新确认选项)

D. 标准运行流程

  1. 在 WPS:geogrid.exeungrib.exemetgrid.exe(生成 met_em.d01met_em.d02 等)。
  2. met_em* 链接到 WRF 运行目录(ln -sf ../WPS/met_em* .)。
  3. 运行 real.exe 生成 wrfinput_d0*wrfbdy_d01 等。
  4. 运行 wrf.exe(若编译了移动嵌套,wrf 会在运行时根据参数定期移动 d02)。(参考链接为2017年的presentation,需要重新确认选项)

E. 输出和可视化注意

  • 若移动嵌套,请将输出设置为每域单独文件(默认 wrfout_d01_...wrfout_d02_...),便于后处理。
  • 日志 (e.g. rsl.out.*) 会输出涡追踪信息,可用 grep ATCF rsl.out.* 得到台风位置与强度信息(自动移动模式下会打印)。(参考链接WRF版本为v3.7,需要重新确认选项)

推荐的物理与运行建议(针对台风模拟)

  • 两向嵌套(feedback=1):通常建议启用(子域能给父域反馈,以得到更真实交互),但若你只做降尺度敏感试验可选择单向。www2.mmm.ucar.edu
  • 子域尺寸:d02 大小要足够包住台风中心及其动力/对流作用半径,避免频繁接近边界导致移动。
  • track_level:台风强烈时 500 hPa 常用于追踪涡心(WRF 默认做中层追踪),但也可改为 850 hPa/700 hPa 看效果。(参考链接WRF版本为v3.7,需要重新确认选项)
  • vortex_interval:15 min 是常用值;间隔太短会增加计算开销但响应快,太长可能错过快速移动。
  • 测试:先做短时段(12~24 h)测试,观察移动是否按预期,再做长模拟。
  • 物理选型:移动嵌套的实现历史上对某些物理方案有限制(部分方案未全面测试),查阅 User Guide 关于兼容方案的说明。(参考链接WRF版本为v2,需要重新确认选项)

若你不能重编译 WRF(替代方案)

  • 手动“跟随”法:用静态 d02,但在模拟中期停止、用当前父域输出重生成 d02 的 wrfinput_d02/wrfbdy_d02(重新 center),然后从该时间点继续——即人工“搬移子域并重启”。繁琐但不需重编译。
  • 使用外部预处理脚本:有些小组写脚本根据台风最佳轨迹每隔若干小时重生成嵌套并做连续 runs(也相当常见)。

关键参考(你可以直接查阅)

  • WRF 官方“Moving Nest”说明(包含编译与参数说明)。www2.mmm.ucar.edu
  • WRF Users Guide — nesting / moving nest 章节(具体 namelist 变量与解释)。www2.mmm.ucar.edu
  • WRF Namelist best practices(关于输出、nest 输出格式、restart 等建议)。www2.mmm.ucar.edu

Author: Syize

Permalink: https://blog.syize.cn/2025/11/12/note-wrf-move-nest/

本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Syizeのblog

Comments