caldyn 串并行对照
输入范围
dyn3d\caldyn.F
dyn3dpar\caldyn_p.F
Mars 运行参与度:条件经过。串行动力主循环调用 caldyn,并行动力主循环调用 caldyn_p;Mars 是否走 COMMON 版本取决于构建入口和并行配置。
例程定位
caldyn 是动力核心 tendency 计算的短入口,负责把当前风、质量、位温、压力等状态组织为后续积分所需的动力 tendency。并行版本保留同类职责,但使用子域数组和并行输出/调试 helper。
对照表
| 项 | 串行 caldyn.F |
并行 caldyn_p.F |
|---|---|---|
| 行数 | 145 | 214 |
| 主例程 | SUBROUTINE caldyn |
SUBROUTINE caldyn_p |
| 质量平均 | massbarxy |
massbarxy_p |
| 并行差异 | 全局数组 | 子域范围、并行调试输出 |
| 输出 | 动力 tendency 和辅助量 | 本地子域 tendency,需和 halo/decomposition 保持一致 |
核心流程
- 从当前
ucov/vcov/teta/masse/ps等状态读取动力变量。 - 构造 staggered grid 上需要的质量平均。
- 调用梯度、散度、旋度、位势等 common 算子组合得到动量和热力 tendency。
- 把 tendency 传回主循环,由
integrd或对应并行积分例程更新 prognostic state。
复现要点
caldyn本身不是时间积分器;它计算 tendency,实际更新由后续积分例程完成。- 串并行结果对照时,先比较
massbarxy与massbarxy_p的格点位置和边界带处理。 caldyn_p中的WriteField_p类调用用于诊断,不应被当成物理输出。
相关页面
- caldyn 动力 tendency 分段
- dyn3d 总览
- dyn3d_common 总览
- 差分算子总览
- 压力与质量算子 family
- 风场转换与质量通量算子组
- 动能、Bernoulli、位势涡度与位势高度算子
待确认
caldyn_p的 halo 前置条件应由并行主循环 重点页 进一步确认。