initdynav 串并行对照
输入范围
dyn3d_common\initdynav.F90
dyn3dpar\initdynav_p.F
Mars 运行参与度:条件经过。启用动力平均输出 dynav 时经过;当前 COMMON 串行入口调用串行 initdynav,并行入口在 root 分支也调用串行 initdynav,initdynav_p 属于支撑/保留实现。
例程定位
initdynav 初始化动力平均输出文件和变量定义。串行版直接使用 IOIPSL history API,并注册 u/v/temp/theta/phi/masse/ps;tracer 和 phis 注册在串行源码中为注释行。并行版增加 parallel_lmdz、flio_dom_set 等域定义,使并行子域输出可被 IO 层正确解释。
对照表
| 项 | 串行 | 并行 |
|---|---|---|
| 行数 | 190 | 200 |
| 主例程 | initdynav |
initdynav_p |
| 输出 API | histbeg/histvert/histdef/histend |
同 API 加 domain 设置 |
| 并行依赖 | 无 | parallel_lmdz, Write_field, misc_mod, flio_dom_set |
核心流程
- 构造经纬度、垂直轴和时间轴。
- 调用
histbeg创建输出文件。 - 调用
histvert定义垂直维。 - 多次
histdef定义平均动力变量。 - 调用
histend完成文件定义。
复现要点
initdynav只定义输出结构,不写具体平均值;写出由后续writedynav负责。- 并行版必须先设置 IO domain,否则输出维度和全局网格可能不匹配。
待确认
- 串行版 tracer 和
phis注册被注释,而部分_p支撑实现保留更多字段;是否为有意裁剪需维护者确认。