水循环配置
本页汇总驱动 LMDZ.MARS 水循环(水汽/水冰云微物理、地表冰、永久冰盖、HDO)的配置项:callphys.def.* 中的物理开关、traceur.def.* 中的水 tracer 集合、以及 XIOS 中的水循环输出字段。CO2 循环配置见 co2-cycle-config;通用配置体系见 config-system。
源码依据:libf/phymars/conf_phys.F 中的 getin_p 读取与 abort_physic 校验;deftank/callphys.def.GCM6 中的样例值;deftank/traceur.def.* 中的 tracer 名;deftank/xios/field_def_physics.xml 与 file_def_physics.xml 中的字段定义和输出引用。
路径
LMDZ.MARS\deftank\callphys.def.*
LMDZ.MARS\deftank\traceur.def.*
LMDZ.MARS\deftank\xios\field_def_physics.xml
LMDZ.MARS\deftank\xios\file_def_physics.xml
类型
配置(物理开关 + tracer 清单 + 输出字段定义)
作用
控制是否计算水循环、用哪种云方案(简单 vs 完整微物理)、水冰是否辐射活跃、地表/永久冰盖与霜的反照率与热惯量、地表升华方案,以及水相关 tracer 的输运和诊断输出。
1. callphys.def 水循环开关
下表「源码默认」来自 libf/phymars/conf_phys.F 中各 getin_p 前的赋值;「样例值」来自 deftank/callphys.def.GCM6(完整水循环 v6 配置)。源码默认普遍是关闭/保守值,真实模拟靠 callphys.def 打开。
| 字段 | 源码默认 | 样例值(GCM6) | 含义 | 读取行(conf_phys.F) |
|---|---|---|---|---|
water |
.false. |
.true. |
水循环总开关。关则全部水过程跳过 | 715 |
microphys |
.false. |
.true. |
水冰云微物理方案(成核/凝结),否则用简化云 | 852 |
activice |
.false. |
.true. |
水冰作为辐射活性气溶胶参与辐射传输 | 710 |
supersat |
.true. |
(默认) | 允许水汽过饱和(微物理用) | 858 |
temp_dependent_m |
.false. |
.true. |
温度依赖的接触参数(Määttänen 2014),否则用常数 mteta |
865 |
mteta |
0.95 |
(仅 temp_dependent_m=F 时读) | 常数接触参数 | 871 |
cloud_adapt_ts |
.false. |
.true. |
云微物理自适应时间步(JN 2023) | 879 |
nuice_sed |
0.45 |
0.15 |
水冰沉降对数正态分布有效方差 | 822 |
nuice_ref |
0.1 |
(默认) | 水云参考有效方差 | 837 |
ccn_factor |
4.5 |
(仅 microphys=F 用) | 无 scavenging 时 CCN 缩减因子 | 844 |
sedimentation |
.true. |
.true. |
重力沉降(作用于水冰) | 704 |
scavenging |
.false. |
.true. |
尘埃被 H2O/CO2 降雪洗脱(随冰沉降) | 899 |
scavco2cond |
.false. |
.true. |
瞬时 CO2 凝结洗脱尘埃/水冰(与 co2clouds 互斥) | 933 |
caps |
.true. |
.true. |
两极永久水冰盖(北极水源、南极冷阱),强烈推荐 | 961 |
latentheat_surfwater |
.true. |
.true. |
地表水冰升华潜热反馈 | 415 |
hdo |
.false. |
(HDO 配置才开) | HDO 同位素循环 | 720 |
hdofrac |
.true. |
HDO 分馏 | 725 | |
CLFvarying |
.false. |
.false. |
次网格部分云量(变) | 743 |
CLFfixval |
1.0 |
1 |
固定云量值 | 738 |
surfaceice_tifeedback |
.false. |
地表水冰热惯量反馈,见 waterice_tifeedback_mod | 781 | |
old_wsublimation_scheme |
.true. |
旧地表升华方案(地表用动量导度 zcdv 而非热导度 zcdh) |
1018–1019 |
地表冰/霜/反照率参数
| 字段 | 源码默认 | 样例值(GCM6) | 含义 | 读取行 |
|---|---|---|---|---|
albedo_h2o_cap |
0.35 |
0.38 |
永久冰盖(老冰)反照率 | 977 |
albedo_h2o_frost |
0.35 |
0.38 |
新霜反照率(cst_cap_albedo=F 时用) |
980 |
cst_cap_albedo |
.false. |
.false. |
冰盖反照率不受新霜沉积影响 | 991 |
frost_albedo_threshold |
0.005 |
0.005 |
触发霜反照率的霜厚阈值(kg/m²,≈5.4 µm) | 984 |
refill_watercap |
.false. |
.false. |
霜变质补充永久冰盖(JN 2021) | 998 |
frost_metam_threshold |
0.05 |
0.05 |
霜变质成老冰的厚度阈值(仅 refill_watercap=T) | 1005 |
inert_h2o_ice |
2400 |
800 |
水冰热惯量(J·m⁻²·K⁻¹·s⁻¹ᐟ²) | 1013 |
注:inert_h2o_ice 源码默认 2400,但 GCM6 样例用 800;albedo_h2o_ice 是已废弃字段,若出现会触发 abort(conf_phys.F 968–972),需改用 albedo_h2o_cap。
依赖与互斥校验(conf_phys.F 中 abort_physic)
复现时这些组合非法,会让模式中止:
| 约束 | 行 | 说明 |
|---|---|---|
activice 需 water |
800–804 | 水冰辐射活跃必须先开水循环 |
hdo 需 water |
806–810 | HDO 依赖水循环 |
surfaceice_tifeedback 需 water 且 callsoil |
786–798 | 热惯量反馈依赖水循环和土壤 |
microphys 需 water 且 doubleq |
906–911 | 微物理需要双矩尘埃 |
scavenging 需 microphys 且 dustbin≥1 |
921–926 | 洗脱依赖微物理 |
cloud_adapt_ts 需 temp_dependent_m |
889–895 | 自适应步需温度依赖接触参数,否则水循环失真 |
scavco2cond 需 dustbin>0 |
937–940 | |
co2clouds 与 scavco2cond 互斥 |
943–951 | co2clouds 已含微物理洗脱,二者不能同开 |
另有警告(不中止):microphys 开但 scavenging 关时打印 WARNING。
2. traceur.def 水 tracer
traceur.def.* 首行是 tracer 总数,其后每行一个 tracer 名。水循环相关 tracer:
| tracer | 含义 | 何时需要 |
|---|---|---|
h2o_vap |
水汽 | water=.true. |
h2o_ice |
水冰 | water=.true. |
ccn_number |
云凝结核数密度 | microphys=.true. |
ccn_mass |
云凝结核质量 | microphys=.true. |
dust_number |
尘埃数密度(CCN 来源) | microphys/scavenging |
dust_mass |
尘埃质量 | 同上 |
hdo_vap |
HDO 汽 | hdo=.true. |
hdo_ice |
HDO 冰 | hdo=.true. |
样例 traceur.def.watercycle.GCM5(7 个 tracer,最小水循环+尘埃微物理集合):
7
co2
dust_number
dust_mass
ccn_number
ccn_mass
h2o_ice
h2o_vap
traceur.def.GCM6(11 个)在此基础上加 stormdust_*、topdust_*(风暴/地形尘)。tracer 名与 initracer.F90 中的 igcm_* 索引匹配,见 initracer-co2-tracers(其中也含水 tracer 的索引识别逻辑)。
复现风险:tracer 名的拼写与顺序必须与 initracer.F90 的字符串匹配逻辑一致,否则对应 igcm_* 为 0,相关物理被静默跳过。tracer 总数(首行)必须与实际行数一致。
3. XIOS 水循环输出字段
字段定义在 field_def_physics.xml,是否实际输出由 file_def_physics.xml 的 <field field_ref=.../> 决定。源码依据:field_def_physics.xml 457–480 定义水柱量与 CCN 字段,866–881 定义 h2o_ice/h2o_vap 混合比;file_def_physics.xml 42–43、117–126、188–228 引用水汽、水冰、地下冰通量和坡面水冰/冰盖字段。
大气场(field_def_physics.xml)
| 字段 id | 含义 |
|---|---|
h2o_vap / h2o_ice |
水汽/水冰混合比 |
mtot |
柱积分水汽总质量 |
icetot |
柱积分水冰总质量 |
reffice |
柱平均水冰有效半径 |
Nccntot / Mccntot |
柱积分 CCN 数/质量 |
tauTES / tauTESap |
825 cm⁻¹ 水冰云光学厚度(模拟 TES) |
mass_h2o_ice / mass_h2o_vap |
全球水冰/水汽质量 |
地表场
| 字段 id | 含义 |
|---|---|
h2o_ice_s(_slopeNN) |
地表水冰质量(含各坡度分量) |
watercaptag |
永久水冰位置标记 |
watercap(_slopeNN) |
永久水冰厚度 |
surf_h2o_lh |
地表水潜热通量 |
waterdensity_surface |
地表水密度 |
flux_ssice(_slopeNN) |
与地下冰交换的总通量(来自 vdifc,见 vdifc-water-surface-exchange) |
file_def_physics.xml(GCM6 样例)实际启用了 h2o_vap、h2o_ice、h2o_ice_s、watercap 及各坡度分量。
被读取的位置
| 读取例程 | 文件 | 说明 |
|---|---|---|
conf_phys(getin_p) |
libf/phymars/conf_phys.F |
所有 callphys.def 水开关;存入 callkeys_mod 模块变量 |
initracer |
libf/phymars/initracer.F90 |
解析 traceur.def tracer 名→igcm_* 索引 |
iniphysiq/infotrac 等 |
libf/dynphy_lonlat/phymars/*, libf/phymars/dyn1d/infotrac.F90 |
读取 traceur.def 行数与名字 |
| XIOS 库 | field_def_physics.xml/file_def_physics.xml |
由 write_output 调用触发 |
影响的计算流程
| 主题 | 影响 |
|---|---|
| 大气水冰云 | water→watercloud;microphys 选 improvedclouds/simpleclouds,见 watercloud_mod |
| physiq 调用链 | water/activice/microphys/scavenging 决定 tendency 注入,见 physiq-water-cycle-callpoints |
| 地表水汽交换 | latentheat_surfwater/old_wsublimation_scheme/caps/frost_albedo_threshold 影响地表升华,见 vdifc-water-surface-exchange |
| 辐射 | activice 决定水冰是否进辐射传输 |
| 地表反照率/热惯量 | albedo_h2o_*/inert_h2o_ice/surfaceice_tifeedback |
| 饱和约束 | supersat 控制是否允许过饱和,见 water-saturation-helpers |
复现要求
- 真实水循环模拟必须显式设
water=.true.(源码默认是.false.)。完整 v6 微物理还需microphys=.true.、temp_dependent_m=.true.、cloud_adapt_ts=.true.、scavenging=.true.。 - traceur.def 必须含
h2o_vap/h2o_ice,微物理还需ccn_*/dust_*;首行总数与行数一致,名字与initracer.F90匹配。 - 遵守依赖校验:
microphys需water+doubleq;cloud_adapt_ts需temp_dependent_m;co2clouds与scavco2cond不能同开。 - 复现历史结果要对齐
old_wsublimation_scheme、nuice_sed、inert_h2o_ice等数值默认(源码默认与 GCM6 样例不同)。 albedo_h2o_ice已废弃,出现即中止;用albedo_h2o_cap。
已核验边界
traceur.def的旧式首行计数格式由tracer_mod和 1Dinit_testphys1d_mod解析;带额外列的 transporting-fluid/父子关系逻辑见 tracer_mod、infotrac 和 init_testphys1d_mod。本页只列水循环必需 tracer 名,不重复完整解析器说明。reffice的输出单位为 m:physiq_mod.F:3549-3551调write_output('reffice', ..., 'm', rave(:))。rave在scavenging=true时按冰+CCN 表面积反推有效半径,在scavenging=false时按水冰质量加权;rave2是备用质量加权半径但输出块被注释。- 各
callphys.def.*变体的差异已在本页列出核心水开关和 GCM6 样例;复现实验仍应以实际运行目录中的callphys.def为准。
复现风险
callphys.def与traceur.def必须成组匹配:开microphys但缺少ccn_*或dust_*tracer 会导致后续索引缺失或相关物理无法按预期运行。- 水循环关键默认值与 GCM6 样例不同;复现实验时不能只依赖源码默认,必须保存实际运行用的
callphys.def。 - XIOS 字段“已定义”不等于“已输出”;只有
file_def_physics.xml中引用的字段才会进入对应输出文件。