高分辨率下的沙尘数值稳定性

结论

直接提高水平分辨率后出现的失稳,首先应视为网格、动力时间步和动力—物理耦合间隔没有共同缩放的问题,而不是已经证实的单一沙尘模块错误。模式中已有多层沙尘局部保护,但没有根据分辨率自动重配时间步、耗散和物理调用频率的统一机制。

脱敏运行试验进一步表明:

范围与证据等级

本页综合当前源码树的静态审计与受控短积分结果。为避免混淆,结论分为三类:

标签 含义
源码事实 可由下列 LMDZ.MARSCOMMONS 相对源码引用直接核验。
运行观测 来自同一初值下改变 dtvriphysiq 的脱敏配置对照。
解释/待验证 与现有证据一致,但仍需增加诊断或单因素试验。

本轮运行覆盖 prescribed-scaling active dust、29 个垂直层、7 个 tracer,并关闭 free dust、RDS 和 topographic dust flow。结论不能直接外推到自由沙尘、RDS、topflows、垂直加密或季节尺度积分。

为什么提高分辨率会改变稳定性

提高水平分辨率会缩小格距。若仍沿用原有 day_stepiphysiq,可能同时产生两类问题:

  1. 动力步相对格距过长,平流和动力算子的 Courant 约束变紧;
  2. physics 调用间隔过长,动力产生的强风、负 tracer 或其他异常在进入下一次物理修正前积累。

当前最符合证据的失效链是:

水平格距缩小
  → 动力时间步/Courant 约束变紧
  → 强风与 tracer 异常在 coupling interval 内形成
  → 下一次 physics 入口已存在负 tracer
  → convadj、CO₂ 凝结、vdifc 或沙尘链条首先触发检查/停机

沙尘辐射反馈仍可能放大异常,但尚未完成 active dust radiation 的开关对照,不能把它确定为首发原因,也不能排除其作用。

模式代码中已有的稳定性处理

1. 普通 tracer 平流

iadv=10 对应 Van Leer 路径,advtrac_p 直接调用 vlsplt_padaptdt 只在其他若干平流选项中调用,默认的 iadv=10 分支没有自动缩短时间步或自动增加子步。

源码引用:

2. 地表交换与沙尘源

沙尘地表通量进入 vdifc 的边界层隐式求解,这比完全显式更新更稳健。但它不是一个统一的源强上限,也不会代替对整体物理时间步的检查。

源码引用:

3. 沉降

沙尘沉降调用链支持粒子在一个物理步内跨越多层,并限制界面输送量,避免从某层移除超过可用量的 tracer。

源码引用:

这说明“沉降完全没有稳定性处理”并不成立;但若进入沉降前 tracer 或风场已经异常,局部通量限制不能恢复整个耦合状态。

4. dust mass–number 与粒径

updaterdust 在 dust mass 或 dust number 过小时回退到最小半径,并把三阶半径约束到预设上下限后再开立方。这能避免除以极小 number 和非物理粒径进入后续光学计算。

源码引用:

该保护会使粒径保持有界,但也可能掩盖上游 mass–number 配对已经失真,因此应同时检查 mass、number 和裁剪预算。

5. RDS 与 topographic dust transport

RDS 和 topographic transport 内部包含速度/质量通量约束、Van Leer 垂直输送和自适应子步。这些保护只在相应功能开启时生效;本轮运行关闭了这两条路径,不能用它们解释当前稳定边界。

源码引用:

6. 沙尘辐射缩放

dust_rad_adjust 在特定缩放路径中按本地时跨 sol 插值,并把新的调整系数上限设为 5,以避免光学厚度突然飙升。该保护依赖具体的 scaling mode,不能当作所有沙尘辐射路径的统一限幅。

源码引用:

7. tracer 非负修复

physiq 中有若干过程特定的非负修复;物理倾向返回动力后,addfi_p 对各 tracer 独立执行正下限裁剪。

源码引用:

这些处理能阻止负值直接保留到下一状态,但当前实现没有统一输出每个 tracer 的裁剪点数、最小值和全局质量/数浓度修正。对 dust mass 与 dust number 独立裁剪还可能改变两者配比。

代码没有自动处理的部分

源码中没有发现以下统一机制:

参考配置本身也说明时间步参数需要随网格和版本人工调整:

参考配置 day_step iphysiq physics 次数/sol tetagdiv/tetagrot/tetatemp
32×24 GCM5 480 10 48 3000/9000/9000 s
64×48 GCM5 960 10 96 2500/5000/5000 s
64×48 GCM6 960 5 192 2500/5000/5000 s

源码引用:

受控运行结果

时间步关系为:

dtvr   = daysec / day_step
dtphys = iphysiq × dtvr
physics calls per sol = day_step / iphysiq

稳定边界

网格 配置变化 观测结果
96×45×29 dtvr=246.60 s 失败
96×45×29 dtvr=164.40 s123.30 s 完成 1 sol
120×60×29 dtvr=164.40 s 超时
120×60×29 dtvr=123.30 s98.64 s 完成 1 sol
176×90×29,36 次 physics/sol dtvr=82.20 s61.65 s49.32 s 均未完成
176×90×29,72 次 physics/sol dtvr=49.32 sdtphys=1232.99 s 完成 1 sol,并按日分段完成 10 sol

176×90×29 当前可用的短期诊断起点是:

day_step = 1800
iphysiq  = 25
dtvr     ≈ 49.32 s
dtphys   ≈ 1232.99 s

这不是精确稳定阈值,也不是生产参数。每个配置只有一条确定性轨迹,因此只能说明配置改变了该轨迹的完成状态,不能推断稳定概率或统计显著性。

首次完整捕获的异常

在开启 physics 入口检查后,任何新的物理过程执行前已经观测到:

因此,首发窗口位于“上一次 physics 返回”与“下一次 physics 入口”之间。convadj、CO₂ 凝结和 vdifc 的停机位置不能直接当作根因。

10-sol 结果的限定

10 个日末 restart 中 tracer 均有限且非负,但运行过程中记录到:

检查位置 负 tracer 日志行数
physics 输入 43
physics 输出 23,435

这些数字是日志行数,不是独立网格点数。physics 输出的负值随后由 addfi_p 裁剪;日志没有给出负值幅度或全局修正预算。

短期 dust 总量演变为:

状态 dust mass/初值 dust number/初值
第 1 sol 0.924780 0.922682
第 10 sol 0.923524 0.868910

dust mass 的主要调整发生在第 1 sol,dust number 此后仍继续下降。这个方向与凝并或选择性 number 损失一致,但初值 spin-up、沉降、清除、lifting、微物理和 clipping 同时存在,当前不能作单一过程归因。

已确认的独立代码风险

RDS stormdust number 修复变量不一致

rdstorm 路径的负值修复中,stormdust number 越界分支使用了 background dust number 计算修复趋势,mass 与 number 的索引不一致。

源码引用:

本轮 rdstorm=F,因此该问题存在但不能解释本轮失稳。

vdifc 水汽潜热子步缺少上限

make_tsub 根据地表温度趋势计算 ntsub=ceiling(abs(ztsub)),没有统一最大子步数。异常温度倾向可能生成很大的循环次数,表现为运行停滞或超时。

源码引用:

这属于需要单独修复或保护的性能—稳定性风险,但不是沙尘专属机制。

当前判断

判断 置信度 依据
提高水平分辨率后必须重新选择动力时间步 96×45 和 120×60 的受控 dtvr 对照
176×90 还需要缩短 physics coupling interval 同一 dtvr 下只改变 iphysiq 即改变完成状态
失稳不是已证实的单一沙尘沉降错误 沉降已有跨层和通量限制;physics 入口已出现整体异常
沙尘辐射反馈可能参与放大 中/待验证 active dust radiation 未做开关对照
当前 10-sol 配置严格正值且守恒 不支持 中间负 tracer 大量出现,clipping 预算未知
当前结果可外推到 free dust、RDS、topflows 或垂直加密 不支持 相应机制未开启或未试验

建议的下一轮试验

P0:先增加诊断

  1. addfi_p 中按 tracer 输出裁剪前最小值、位置、点数和全局修正量;
  2. 对 dust mass 与 dust number 同时记录单独裁剪和联合裁剪情况;
  3. 每个动力步输出 u/v/ps/teta 与各 tracer 的全局极值;
  4. 在 tracer advection 后输出真实 x/y/z Courant 最大值;
  5. 记录 vdifc 的最大水汽子步数、位置及对应温度趋势。

P1:分离动力步与 coupling interval

优先测试:

day_step = 1440
iphysiq  = 20

该组合保持约 72 次 physics/sol 和 dtphys≈1233 s,但把 dtvr 放宽到约 61.65 s,可检验 1800 个动力步是否必要。

随后可在 day_step=1800 下测试 iphysiq=30,夹逼较经济的 coupling interval。

P2:验证分段效应

用同一配置补做不中断的连续 10-sol 试验,与按日分段结果比较。

P3:再进入沙尘专属试验

固定已验证的时间步后,一次只改变一个机制:

  1. prescribed scaling 下 active dust radiation on/off;
  2. free dust;
  3. RDS;
  4. topographic dust flow;
  5. 最后才开展长季节积分。

垂直分辨率应另建试验矩阵,因为它会同时改变 z-CFL、薄层质量、沉降落距和按层定义的物理处理。

相关页面

待确认