prather.F

路径

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

文件定位

prather.F 定义三维 Prather moments 输送入口 prather。它维护 tracer 的 0 到 9 阶 moments 表示,按 x-y-z-y-x 顺序调用 advxp/advyp/advzp,用于比普通 Van Leer 更高阶的 tracer 输送分支。

Mars 运行参与度

条件经过:Mars tracer advection 配置选择 Prather scheme 时经过;否则由 Van Leer、PPM 或其他输送路径替代。

定义的符号

符号 类型 行号 作用
prather subroutine 4 使用 moments 表示进行三维 split advection。

输入输出

参数 方向 说明
q(...,0:9) inout tracer moments;0 阶是平均量,其余阶描述单元内分布。
w, pbaru, pbarv in 垂直、x、y 方向质量通量。
masse in 网格空气质量。
nt, dt in 子步数和时间步。

依赖和调用

符号 作用
comconst_mod: pi 构造经向几何相关缓存。
advxp x 方向 Prather moments advection。
advyp y 方向 Prather moments advection。
advzp z 方向 Prather moments advection。

核心流程

  1. 首次调用时构造经纬几何缓存和极区/面积相关权重。
  2. q(...,0:9) 拆出 moments 工作数组 s0/sx/sy/sz/...
  3. 调用 advxp(limit,0.5*dt,...) 做半步 x 输送。
  4. 调用 advyp(limit,0.5*dt*nt,...) 做半步 y 输送。
  5. 调用 advzp(limit,dt*nt,...) 做整步 z 输送。
  6. 再执行 y 半步和 x 半步,形成对称 split。
  7. 将更新后的 moments 写回 q

伪代码

initialize geometry cache on first call
load 10 Prather moments from q
advxp half step
advyp half step
advzp full step
advyp half step
advxp half step
store moments back to q

复现要点

待确认

相关页面