Dust free evolution tests

页面定位

版本提示:本页试验基于 LMDZ.MARS 5.3 版本进行,可能与 wiki 主文档记载的源码版本或分支行为有所不同。

本页记录一组尘埃自由演化配置试验,用于补充 dust-cycle 主题 中无法仅由源码确认的运行行为。它不是通用推荐配置页,也不引用任何本机运行目录、用户名、绝对路径或派生 .def 文件作为证据;只记录配置键、源码分支含义、诊断量和试验结论。

试验日期:2026-07-02。

目标是关闭尘埃光学厚度 scaling,让模式尽量依靠自身尘埃源项演化,同时保持运行稳定,并尽量避免按目标光学厚度注入沙尘。

判据:

源码边界

这些结论来自 conf_phys.Fvdifc_mod.Fcompute_dtau_mod.F90dust_scaling_mod.F90dustdevil.F90dust_windstress_lift.F90 的源码阅读。

配置或路径 源码行为
dustscaling_mode = 0 compute_dustscalingtauscaling=1,不按 tau_pref_scenario 重缩放辐射用 aerosol
freedust = .true. conf_phys.F 中默认令 dustscaling_mode=0,并要求 doubleq=.true.
freedust=.true., lifting=.true., dustinjection=0 GCM 编译分支在 conf_phys.F 中中止:free dust 且无 injection 时不允许 lifting
dustinjection = 1 要求 freedust=.true.lifting=.true.compute_dtau 用目标 tau 与 GCM tau 的差计算 dustliftday
doubleq=.true., lifting=.true., dustinjection=0 vdifc_mod.F 的 GCM 分支走 old injection scheme:对 dust mass/number 给固定 -alpha_lift 源项,不计算摩擦速度阈值。
doubleqlifting 路径 vdifc_mod.F 才调用 dust_windstress_lift(),用 us>ust 的风应力阈值起尘公式。
callddevil=.true. 调用 dustdevil(),可作为不依赖目标 tau 的自然沙尘源。

关键边界是:当前 GCM two-moment dust mass/number 体系中,lifting=.true. 不能简单理解为“风应力阈值起沙”。在 doubleq=.true. 分支,dustinjection=0 对应 old constant lifting;真正的阈值摩擦速度路径在非 doubleq 分支调用 dust_windstress_lift()

因此,若目标是“保留 two-moment dust mass/number,同时使用 GCM surface wind threshold lifting 且无目标 tau injection”,仅改 .def 不够,需要源码改造或新增分支。

试验配置组

标签 主要参数设置 物理含义 结果
A. no-scale old lifting 初试 active=.true., doubleq=.true., lifting=.true., freedust=.false., dustscaling_mode=0, dustinjection=0, callddevil=.false., iaervar=1, tauvis=0.1 绕过 freedust + lifting + no injection 的硬检查;关闭 scaling;保留 old GCM lifting。 不稳定。一次未写出正常 diagfi 即在 CO2 condensation 附近中止;后续 1 天短跑可完成到 date=1.0,但 tau 已达几十量级。
B. no-scale old lifting 复测 同 A 验证 old lifting 无 scaling 是否可用。 1 天内失控。tau(610 Pa) 局地可到 30 以上,后续出现 convective adjustment 报错。说明这一路径不是可接受的 free dust 方案。
C. no-scale + injection active=.true., doubleq=.true., lifting=.true., freedust=.true., dustscaling_mode=0, dustinjection=1, coeff_injection=0.25, callddevil=.false., iaervar=1, tauvis=0.1 关闭 optical scaling,但用 dust injection 方案补沙尘;注入强度由目标 tau 与 GCM tau 的差决定。 稳定。90 天长跑完成,date=90.0, Ls~324.8,无 NaN 或 fatal stop;但物理上仍依赖目标 tau 注入,不是纯自由 lifting。
D. 原始对照 active=.false., doubleq=.true., lifting=.true., freedust=.false., dustscaling_mode=1, dustinjection=0, callddevil=.false., iaervar=25 原始 prescribed/scenario dust 对照。沙尘 tracer 可输送,但 radiative dust 主要跟 scenario/scaling 走;dust devil 关,old wind lifting 开。 10 天稳定。tauscaling0.0012,不是 free dust。与 free dust 试验物理机制不同,只能作动力/热力参考。
E. no-scale + no injection + dust devil active=.true., doubleq=.true., lifting=.false., freedust=.true., dustscaling_mode=0, dustinjection=0, callddevil=.true., iaervar=1, tauvis=0.1 关闭 scaling 和目标 tau injection;关闭 GCM old lifting 以避开硬检查和常量源爆沙尘;用 dust devil 作为自然沙尘源。 10 天稳定完成。tauscaling=1tau_pref_gcm 10 天均值约 0.526,末值约 0.482;和 injection 方案差别很小。当前 def-only 最干净候选。
F. no-scale + no injection + old lifting 10 天尝试 active=.true., doubleq=.true., lifting=.true., freedust=.false., dustscaling_mode=0, dustinjection=0, callddevil=.false., iaervar=1, tauvis=0.1 与 A/B 同物理路径,作为 10 天目标的正式复核;用 freedust=.false. 只是为了绕过硬检查,仍关闭 scaling。 失败。只正常写到 1 天;面积平均 tau 到约 12,局地最大约 72,随后不再正常推进,作业取消。

10 天定量对比

三组完整 10 天结果如下:C 是 no-scale injection,D 是原始对照,E 是 no-scale no-injection dust devil。

C: no-scale + injection D: 原始对照 E: no-scale + dust devil
tau_pref_gcm 10 天均值 0.509 0.713 0.526
tau_pref_gcm 末值 0.452 0.661 0.482
tau 10 天均值 0.516 0.741 0.531
tau 末值 0.456 0.683 0.484
tauscaling 10 天均值 1.000 0.00121 1.000

E 相对 C 的 200-500 Pa 诊断差异很小:

压力层 温度 风速 dustq dustN reffdust dsodust
500 Pa +0.07 K +0.13 m/s +2.9% +0.6% +0.6% +2.6%
250 Pa +0.31 K +0.10 m/s +6.4% +1.1% +1.4% +5.7%
100 Pa +0.45 K +0.47 m/s +5.3% +1.0% +1.1% +4.8%

E 相对 D 的主要差异:

压力层 温度 风速 dustq dustN reffdust
500 Pa +1.33 K -0.14 m/s -9.7% +7.9% -4.8%
250 Pa -0.85 K +0.10 m/s -11.5% +5.5% -2.5%
100 Pa -4.73 K +0.77 m/s -12.9% +2.8% -0.7%

注意:D 中 active=.false.,因此 dsodust 诊断为 0,不能和 free dust 方案直接按同一物理含义比较。

诊断输出

10 天试验均输出了沙尘相关诊断,包括:

同时做了压力层插值,包含 500 Pa、250 Pa、100 Pa 等层,便于比较 200-500 Pa 区间。

当前 def-only 候选

当前只改配置时,最合理的候选是 E:

callphys.def:
  active = .true.
  doubleq = .true.
  lifting = .false.
  dustscaling_mode = 0
  freedust = .true.
  dustinjection = 0
  callddevil = .true.

my.def:
  iaervar = 1

这个组合满足无 scaling、无目标 tau injection、沙尘辐射活跃、10 天稳定,并且与 C 的热力和沙尘场差异较小。

后续源码方向

如果坚持“GCM surface wind lifting + no injection + freedust”,仅靠 .def 参数不够。需要改源码,至少要处理两点:

  1. 放开或重构 freedust=.true., lifting=.true., dustinjection=0 的 GCM 硬检查。
  2. 保留 doubleq=.true. 的 dust mass/number 体系,同时让 dustinjection=0 使用风应力阈值 lifting;或者至少把 old constant lifting 的源强参数化并可从 .def 控制。

待确认

相关页面