观潮 · 模式预报与气象 AI 观察

WRF 灌溉方案怎么开:Noah 用 sf_surf_irr_scheme,Noah-MP 用 opt_irr,静态数据要另下 FAO 一套

2026-10-18

> 一位在埃及做「灌溉如何影响气候参数」的研究者已经用 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 走 sf_surf_irr_scheme,Noah-MP 走 opt_irr),再补 FAO 静态掩膜并同时改 GEOGRID.TBL 与 METGRID.TBL,最后用 registry 里那批 IR 开头变量验收;至于开多少、开哪套,官方明确说没有捷径,得自己跑对比试验。

在观潮中打开(含配图与交互)→