Dust free evolution tests
页面定位
版本提示:本页试验基于 LMDZ.MARS 5.3 版本进行,可能与 wiki 主文档记载的源码版本或分支行为有所不同。
本页记录一组尘埃自由演化配置试验,用于补充 dust-cycle 主题 中无法仅由源码确认的运行行为。它不是通用推荐配置页,也不引用任何本机运行目录、用户名、绝对路径或派生 .def 文件作为证据;只记录配置键、源码分支含义、诊断量和试验结论。
试验日期:2026-07-02。
目标是关闭尘埃光学厚度 scaling,让模式尽量依靠自身尘埃源项演化,同时保持运行稳定,并尽量避免按目标光学厚度注入沙尘。
判据:
dustscaling_mode = 0,且输出tauscaling = 1。- 沙尘 tracer 真实输送:
tracer = .true.,dustbin = 2,doubleq = .true.。 - 沙尘对辐射生效:
active = .true.。 - 尽量不用
dustinjection = 1这类按tau_pref_target - tau_pref_gcm计算的目标 tau 注入。 - 先以 10 天短试验检验稳定性,必要时再做长积分。
源码边界
这些结论来自 conf_phys.F、vdifc_mod.F、compute_dtau_mod.F90、dust_scaling_mod.F90、dustdevil.F90 与 dust_windstress_lift.F90 的源码阅读。
| 配置或路径 | 源码行为 |
|---|---|
dustscaling_mode = 0 |
compute_dustscaling 中 tauscaling=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 源项,不计算摩擦速度阈值。 |
非 doubleq 的 lifting 路径 |
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 天稳定。tauscaling 约 0.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=1,tau_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 天试验均输出了沙尘相关诊断,包括:
- 柱光学厚度:
tau_pref_scenario,tau_pref_gcm,tau,tauscaling - 沙尘三维量:
dustq,dustN,reffdust,dsodust - 地表沉降/通量诊断:
dqsdust,dqndust - 云凝结核相关量:
ccnq,ccnN,surfccnq,surfccnN
同时做了压力层插值,包含 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 参数不够。需要改源码,至少要处理两点:
- 放开或重构
freedust=.true.,lifting=.true.,dustinjection=0的 GCM 硬检查。 - 保留
doubleq=.true.的 dust mass/number 体系,同时让dustinjection=0使用风应力阈值 lifting;或者至少把 old constant lifting 的源强参数化并可从.def控制。
待确认
- E 只完成 10 天稳定性验证,仍需长积分检查季节尺度稳定性、尘埃收支闭合和气候态偏差。
- old constant lifting 在无 scaling 下快速爆沙尘的结论已有短试验证据,但其源强是否可通过
alpha_lift或 tracer 设置调到可用,需要另做参数敏感性试验。 - two-moment dust mass/number 与风应力阈值 lifting 的源码改造需要单独设计,不能由本页直接视为已实现能力。