观潮 · 模式预报与气象 AI 观察
WRF 灌溉方案怎么开:Noah 用 sf_surf_irr_scheme,Noah-MP 用 opt_irr,静态数据要另下 FAO 一套
> 一位在埃及做「灌溉如何影响气候参数」的研究者已经用 WRF 4.1.3 跑完了对照试验,导师建议直接改 Noah 陆面方案的源码再编译,他听说新版本有更省事的办法于是来问。这个帖子的价值在于把几条容易踩混的线理清了:灌溉有两套独立方案,分别对应两个陆面方案;WPS 侧要额外下 FAO 静态数据,且 GEOGRID.TBL 和 METGRID.TBL 都要改;跑完之后要到 registry 里那批专用变量上去确认灌溉真的发生了。NCAR 支持方也给了很克制的表态:土壤湿度、土壤温度和地表通量一定会变,但长期积分的效果他们没有经验,两种方案没有做过对比。
缺的是哪一块
发帖人的需求很具体:已经有一个 4.1.3 的对照试验,现在要在模式里引入灌溉。他的问题集中在操作层面——怎么让 WRF 知道域内某个具体区域在整个积分时段里都在灌溉;这个改动写在哪儿,是 namelist.input 还是 namelist.wps;能不能只改某个区域而不是整个域;开了之后会不会真的体现到输出里;以及如果 4.1.3 没有这些选项,换版本再和旧版本对比会不会「有伤害」。
这类问题的常见误区是把「灌溉」当成单一开关。实际上它横跨三段:陆面方案里选哪套参数化、WPS 侧准备哪份静态掩膜、以及跑完之后看哪些诊断量。
两套方案分别归谁管
支持方的答复给了一条很干脆的分界:现在有两套灌溉选项,opt_irr 配 Noah-MP 用,sf_surf_irr_scheme 配 Noah 用。
Noah 这一路对应的是 WRF 用户手册里「地表灌溉参数化」那一章,部分选项从 4.2 版加入。代码提交说明里的描述是:参数化通过 namelist 开关 sf_surf_irr_scheme 激活(取值 1、2、3),时间和水量(单位毫米/天)都在 namelist 里显式设定;灌溉水量在空间上由一个来自 FAO 数据集的 IRRIGATION 掩膜调制,这份掩膜要交给 geogrid。文档里那句话的原意是:namelist 给的水量,再乘上格点内的灌溉百分比,而这个百分比来自 WPS 处理出来的 IRRIGATION 场。
Noah-MP 这一路支持方没有展开讲参数,而是指向引入该选项的那次代码提交,说提交说明本身会指向 run/README.namelist,往下翻能看到新增的 namelist 选项。
FAO 静态数据怎么接进去
静态数据要单独下载,解开后放进和其他静态目录同一层的目录里;只要 geog_data_res 设为 default,geogrid 就会自动去用。
判断依据在 WPS/geogrid/GEOGRID.TBL 里这一段:
字段 · 取值
name · IRRIGATION
priority · 1
optional · yes
dest_type · continuous
interp_option · default:average_gcell(0.0)+average_4pt+nearest_neighbor
masked · water
fill_missing · 0
rel_path · default:irrigation/fao/
相对路径 rel_path 的 default 指向 irrigation/fao,所以 geogrid 会去这个路径下找静态数据文件。
还有一条容易被漏掉:要插值这个新的灌溉掩膜场,WPS 里的 GEOGRID.TBL 和 METGRID.TBL 都得改,只改一处不够。
怎么确认灌溉真的发生了
跑完拿到 wrfout 之后,该看什么变量?支持方说,按 WRF/Registry/registry.noahmp 这个文件,要找的是下面这批:
变量 · 含义 · 单位
IRFRACT · 灌溉比例 · —
SIFRACT · 喷灌比例 · —
MIFRACT · 微灌比例 · —
FIFRACT · 漫灌比例 · —
IRNUMSI / IRNUMMI / IRNUMFI · 喷灌 / 微灌 / 漫灌事件次数 · —
IRWATSI / IRWATMI / IRWATFI · 单次事件的水量 · m
IRSIVOL / IRMIVOL / IRFIVOL · 累计灌溉水量 · mm
IRELOSS / IRRSPLH · 喷灌蒸发损失累计 · mm / J m^-2
这些变量在 registry 里都带 interp_mask_field:lu_index,iswater 的掩膜设置,也就是说它们只在陆地格点上有效。
官方对「有没有用」的回答
发帖人追问得很直接:开了之后模式真的会显示出灌溉、真的会影响输出吗?会不会只是微乎其微的变化?
支持方的回答分两层。确定的是:只要灌溉选项打开,土壤湿度、土壤温度和地表通量一定会变。不确定的是长期表现——他们没有用这个选项做长期积分的经验,只是从理论上讲,某个区域长期灌溉会影响气候,至少在局地到区域尺度上会。
至于两套方案哪个更好,答复是这很难说,模式表现永远依赖个例;他们没有比较过两套方案的表现,但两者在埃及区域都应该能用,建议自己跑几个快速试验来定。原话里也承认:这件事没有捷径,他们对这些选项的了解也有限,细节需要查文献。
关于换版本的问题,帖子里的处理方式是把注意力放在 4.2 之后新增的选项上;支持方确认发帖人贴出的 namelist 看起来没问题,并补了一句「如果你的结果合理、符合预期,那大概就是对的」。
边界与还没解决的部分
- Noah-MP 一侧没有给出可直接抄的参数组合。 支持方只指向代码提交说明和 README.namelist,没有列具体取值。
- 两套方案没有做过官方对比。 哪个更好属于个例依赖,需要使用者自己试。
- 长期积分的效果没有经验数据。 「会影响局地到区域气候」是理论判断,不是实测或长期模拟的结论。
- mask 的空间精度受 FAO 数据限制。 掩膜来自 FAO 数据集并按格点百分比调制,局地灌溉细节无法体现。
- 版本差异问题在帖子里没有正面回答。 换版本与旧版本对比是否可比,支持方没有给出明确结论,只是确认了新选项从 4.2 起才有。
一句话判断
开灌溉的正确顺序是:先定陆面方案(Noah 走 sf_surf_irr_scheme,Noah-MP 走 opt_irr),再补 FAO 静态掩膜并同时改 GEOGRID.TBL 与 METGRID.TBL,最后用 registry 里那批 IR 开头变量验收;至于开多少、开哪套,官方明确说没有捷径,得自己跑对比试验。