pentes_ini.F

路径

LMDZ.COMMON-6.3\LMDZ.COMMON\libf\dyn3d_common\pentes_ini.F

文件定位

pentes_ini.F 定义 pentes_ini,用于为 slope-limited advection 准备 tracer 的方向斜率并做一次对称预输送。它调用 limx/limy/limz 限制斜率,再按 x-y-z-y-x 顺序调用串行 advx/advy/advz。这些外部 advx/advy/advz moments 算子与 advn.F 内部的 advnx/advny/advnz 不是同一组例程;对照见 COMMON tracer advection operator family

Mars 运行参与度

条件经过:Mars 串行 tracer advection 选择相关 slope/Prather 预处理分支时经过;并行或 PPM/Van Leer 特定路径可能绕过。

定义的符号

符号 类型 行号 作用
pentes_ini subroutine 4 初始化并限制三方向 slope,执行对称预输送。

输入输出

参数 方向 说明
q inout tracer 场或其工作表示。
w, pbaru, pbarv in 垂直、x、y 方向质量通量。
masse in 网格质量。
mode in 控制处理模式的整数分支。
pente_max internal/derived slope limiter 上限。

依赖和调用

符号 作用
comconst_mod: dtvr, pi 时间步和几何常数。
limx, limy, limz 分别限制 x/y/z 方向 slope。
advx, advy, advz 串行三方向 slope advection。

核心流程

  1. 根据输入 q/masse 构造 s0/sx/sy/sz/sm 工作数组。
  2. 对 x 方向调用 limx,再以 0.5*dtvradvx
  3. 对 y 方向调用 limy,再以 0.5*dtvradvy
  4. 对 z 方向调用 limz,再以 dtvradvz
  5. 再做 y 半步和 x 半步,保持 split 对称。
  6. 根据 mode 和 limiter 结果写回更新后的 tracer/slope。

伪代码

prepare cell mean and slopes from q
limx; advx half dtvr
limy; advy half dtvr
limz; advz full dtvr
limy; advy half dtvr
limx; advx half dtvr
write updated slopes/state back

复现要点

待确认

相关页面