history/dynav 输出串并行对照
输入范围
LMDZ.COMMON-6.3\LMDZ.COMMON\libf\dyn3d_common\writehist.F
LMDZ.COMMON-6.3\LMDZ.COMMON\libf\dyn3dpar\writehist_p.F
LMDZ.COMMON-6.3\LMDZ.COMMON\libf\dyn3d_common\writedynav.F90
LMDZ.COMMON-6.3\LMDZ.COMMON\libf\dyn3dpar\writedynav_p.F
文件定位
这组例程在 history 或 dynav 已由 inithist/initdynav 定义后,按当前动力时间写出瞬时或平均动力场。串行版使用全局数组和 com_io_dyn_mod 中的文件 id;并行版使用局部 ij_begin/ij_end 切片和传入的 history id。
Mars 运行参与度
条件经过:动力 history 或 dynav 输出开启时经过;具体频率由 `leapfrog` 输出调度控制。
写出内容
| 例程 | 主要变量 |
|---|---|
writehist |
u/v/teta/phi/masse/ps,tracer 写出当前注释掉。 |
writehist_p |
ucov/vcov/teta/phi/tracer/masse/ps/phis。 |
writedynav |
u/v/theta/temp/phi/masse/ps 平均或派生场。 |
writedynav_p |
u/v/theta/temp/phi/tracer/masse/ps/phis 局部切片。 |
共同流程
- 计算
itau_w = itau_dyn + time。 - 需要时把 covariant wind 转为 natural wind,或由
teta/ppk/cpp计算温度。 - 调用
histwrite写变量。 ok_sync为真时调用histsync。
串并行差异
- 串行版写全局维度,使用
histid/histvid/histuid/histaveid等模块状态。 - 并行版依赖
parallel_lmdz和misc_mod,只写ijb:ije局部段。 - 并行版 tracer 写出活跃,变量名来自
infotrac:ttext。
待确认
- 串行
writehist中 tracer 和phis写出被注释;字段注册和门控边界见 history/dynav 字段注册和写出门控。