COMMON 物理侧并行与传输
页面定位
覆盖 MPI、OpenMP 及组合并行的数据广播、分发、收集和控制状态。
兼容性关注:影响混合并行正确性、物理列通信和 XIOS/getin 广播。
本页是 5.3 到 6.3 版本差异详情页,只解释改动职责与影响,不展开逐行代码差异。
变化统计
本主题覆盖 9 个路径事件:新增 0、删除 0、修改 9。
主要变化
libf/phy_common/abort_physic.F90:调整物理侧终止诊断的标点和错误码文字,不改变 MPI_ABORT 与串行停止分支。libf/phy_common/geometry_mod.F90:新增线程私有 cell_area_for_lonlat_outputs,并提供初始化入口保存含复制极点的经纬网输出面积,避免改变物理 cell_area。libf/phy_common/init_print_control_mod.F90:把 lunout、prt_level 和 debug 改为初始化例程内的局部默认值,再通过 getin_p 读取覆盖值,避免依赖模块中的预置状态。libf/phy_common/ioipsl_getin_p_mod.F90:统一 getin_p 的主控判断:所有标量/数组读取从 MPI-root 与 OMP-root 联合条件迁到 mod_phys_lmdz_para:is_master。libf/phy_common/mod_phys_lmdz_mpi_transfert.F90:更新源码文件mod_phys_lmdz_mpi_transfert.F90:新增bcast_mpi_i5、bcast_mpi_i6、bcast_mpi_r5、bcast_mpi_r6;移除grid2dTo1d_mpi_r3、grid2dTo1d_mpi_l、grid2dTo1d_mpi_l1、grid2dTo1d_mpi_l2。libf/phy_common/mod_phys_lmdz_omp_transfert.F90:新增 5/6 维 OMP 广播,并把缓冲增长因子改为实数、分配区改用 SINGLE 同步,修正并行缓冲扩容与可见性。libf/phy_common/mod_phys_lmdz_para.F90:在 MESOSCALE 构建中跳过 Test_transfert 并行传输自检,其他构建仍保留该初始化检查。libf/phy_common/mod_phys_lmdz_transfert_para.F90:更新源码文件mod_phys_lmdz_transfert_para.F90:新增bcast_i5、bcast_i6、bcast_r5、bcast_r6。libf/phy_common/print_control_mod.F90:更新源码文件print_control_mod.F90中的print_control_mod、set_print_control:外部模块、例程、调用和 getin 键集合保持不变,差异集中在局部声明、维度或类型约束。
受影响路径
| 编号 | 5.3 路径 | 6.3 路径 | 类型 | SHA-256 核验 | 改动概述 | 官方记录 |
|---|---|---|---|---|---|---|
C-0102 |
libf/phy_common/abort_physic.F90 |
libf/phy_common/abort_physic.F90 |
修改 | ff341a89be6e→6a7db5e6392a(已核验) |
调整物理侧终止诊断的标点和错误码文字,不改变 MPI_ABORT 与串行停止分支。 | 源码差异;未找到对应 Changelog 条目 |
C-0103 |
libf/phy_common/geometry_mod.F90 |
libf/phy_common/geometry_mod.F90 |
修改 | 5940a0da8cf5→5a21e2c7c272(已核验) |
新增线程私有 cell_area_for_lonlat_outputs,并提供初始化入口保存含复制极点的经纬网输出面积,避免改变物理 cell_area。 | 源码差异;未找到对应 Changelog 条目 |
C-0104 |
libf/phy_common/init_print_control_mod.F90 |
libf/phy_common/init_print_control_mod.F90 |
修改 | 678b4d859305→40af8eacbb6c(已核验) |
把 lunout、prt_level 和 debug 改为初始化例程内的局部默认值,再通过 getin_p 读取覆盖值,避免依赖模块中的预置状态。 | 源码差异;未找到对应 Changelog 条目 |
C-0105 |
libf/phy_common/ioipsl_getin_p_mod.F90 |
libf/phy_common/ioipsl_getin_p_mod.F90 |
修改 | c056c4ac4f6d→4db436d1a969(已核验) |
统一 getin_p 的主控判断:所有标量/数组读取从 MPI-root 与 OMP-root 联合条件迁到 mod_phys_lmdz_para:is_master。 | 源码差异;未找到对应 Changelog 条目 |
C-0106 |
libf/phy_common/mod_phys_lmdz_mpi_transfert.F90 |
libf/phy_common/mod_phys_lmdz_mpi_transfert.F90 |
修改 | f8d971ea6aa2→2ef4a09be235(已核验) |
更新源码文件 mod_phys_lmdz_mpi_transfert.F90:新增 bcast_mpi_i5、bcast_mpi_i6、bcast_mpi_r5、bcast_mpi_r6;移除 grid2dTo1d_mpi_r3、grid2dTo1d_mpi_l、grid2dTo1d_mpi_l1、grid2dTo1d_mpi_l2。 |
源码差异;未找到对应 Changelog 条目 |
C-0107 |
libf/phy_common/mod_phys_lmdz_omp_transfert.F90 |
libf/phy_common/mod_phys_lmdz_omp_transfert.F90 |
修改 | 600d317b91f0→055f24f2b8dc(已核验) |
新增 5/6 维 OMP 广播,并把缓冲增长因子改为实数、分配区改用 SINGLE 同步,修正并行缓冲扩容与可见性。 | 源码差异;未找到对应 Changelog 条目 |
C-0108 |
libf/phy_common/mod_phys_lmdz_para.F90 |
libf/phy_common/mod_phys_lmdz_para.F90 |
修改 | a36f2bd76011→899ac7f01974(已核验) |
在 MESOSCALE 构建中跳过 Test_transfert 并行传输自检,其他构建仍保留该初始化检查。 | 源码差异;未找到对应 Changelog 条目 |
C-0109 |
libf/phy_common/mod_phys_lmdz_transfert_para.F90 |
libf/phy_common/mod_phys_lmdz_transfert_para.F90 |
修改 | 3c4349ffa521→6b817dc7f9a5(已核验) |
更新源码文件 mod_phys_lmdz_transfert_para.F90:新增 bcast_i5、bcast_i6、bcast_r5、bcast_r6。 |
源码差异;未找到对应 Changelog 条目 |
C-0110 |
libf/phy_common/print_control_mod.F90 |
libf/phy_common/print_control_mod.F90 |
修改 | fb880d9ac1a7→c5f3a728d246(已核验) |
更新源码文件 print_control_mod.F90中的 print_control_mod、set_print_control:外部模块、例程、调用和 getin 键集合保持不变,差异集中在局部声明、维度或类型约束。 |
源码差异;未找到对应 Changelog 条目 |
证据边界
- 路径状态和哈希关系来自两棵本地快照的机械比较。
- 官方记录来自 MARS Changelog 增量;COMMON 命中仅表示间接记录。
- 未找到 Changelog 条目不等于改动无意义,只表示没有可直接关联的官方文字记录。
- 本页不把未运行的数值或性能影响写成既定事实。