advtrac 串并行对照

输入范围

dyn3d\advtrac.F90
dyn3dpar\advtrac_p.F90

Mars 运行参与度:条件经过。tracer advection 开启时由 leapfrog 调度;并行构建使用 _p 版本。

例程定位

advtrac 是 tracer 输送调度层,不是单一数值格式。它根据 tracer 配置选择 Van Leer、PPM、Prather、advnpentes_ini 等路径,并在必要时做质量平均、时间步适配和 isotope 检查。dyn3d/advtrac 是串行文件页;caladvtrac 到 tracer advection 循环 进一步展开 iapp_tracvl 累计门控、nqperes/iadv 顶层循环、串行 caladvtrac wrapper 和并行 advtrac_p 直调边界。

对照表

串行 advtrac.F90 并行 advtrac_p.F90
行数 407 531
主例程 advtrac advtrac_p
质量处理 massbar 并行质量/halo 兼容处理
Van Leer vlsplt、饱和分支 vlspltgen_pvlsplt_p
其他格式 advn, pentes_ini, prather, ppm3d 同类格式加并行交换和计时
isotope check_isotopes_seq 并行检查和同步点更多

调度顺序

  1. 根据当前质量和通量准备 advection 所需的 staggered mass。
  2. 按 tracer 的 iadv 或 scheme 标识进入不同输送格式。
  3. Van Leer 路径调用 split transport;饱和分支调用 vlspltqs 或并行通用 vlspltgen_p 的饱和内核。
  4. PPM/Prather/advn 路径调用 common 大内核或 moments 内核。
  5. 对 isotope 或父子 tracer 做一致性检查。
  6. 必要时调用 adaptdt 调整输送步长。

复现要点

相关页面

待确认