inithist 串并行对照
输入范围
LMDZ.COMMON-6.3\LMDZ.COMMON\libf\dyn3d_common\inithist.F
LMDZ.COMMON-6.3\LMDZ.COMMON\libf\dyn3dpar\inithist_p.F
文件定位
inithist 初始化动力瞬时 history 输出。当前可达的串行/root 路径定义 U/V/scalar 三类 history 文件和 u/v/teta/phi/masse/ps 变量;tracer 和 phis 注册在串行源码中为注释行。并行 _p 版本在本 rank 纬向子域上定义 IOIPSL domain,但当前 dyn3dpar/gcm.F 的 _p 初始化调用处为注释保留路径。
Mars 运行参与度
条件经过:动力 history 输出开启时经过;当前 COMMON 串行入口调用串行 `inithist`,并行入口在 root 分支也调用串行 `inithist`,`inithist_p` 属于支撑/保留实现。
串行流程
- 调用
ymds2ju得到起始 Julian day。 - 分别
histbeg创建dynhistu_file、dynhistv_file和dynhist_file。 - 用
histvert定义presnivs垂直轴。 histdef定义u/v/teta/phi/masse/ps;tracer 和phis定义行被注释。histend保存histid/histvid/histuid。
并行流程
inithist_p(infile,day0,anne0,tstep,t_ops,t_wrt,fileid) 接收输出文件名和返回文件 id。它通过 flio_dom_set 设置 dynu_domain_id/dynv_domain_id,histbeg 只定义当前 rank 的 jj_begin:jj_end 子域。变量定义与串行版对应,但使用局部纬向长度 jjn。
复现要点
- 串行版 history id 存在
com_io_dyn_mod,并行_p版通过实参返回fileid。 - 并行版的 V-grid 文件名固定为
dyn_histv。 - 若后续重新启用 tracer 注册,变量名来源应为
infotrac:ttext。
待确认
- 串行版 tracer 和
phis注册被注释,而部分_p支撑实现保留更多字段;是否为有意裁剪需维护者确认。