phy_common 总览

路径

LMDZ.COMMON-6.3\LMDZ.COMMON\libf\phy_common

职责

phy_common 提供物理侧公共基础设施:物理列并行分布、MPI/OpenMP transfer、物理几何和垂直层状态、XIOS/write_field 封装、打印控制和物理侧 abort。它位于动力-物理接口之后,为行星物理包提供统一的网格、并行和输出支撑。

Mars 运行参与度

条件经过:Mars 物理初始化、物理输出或 COMMON 物理侧并行抽象被使用时经过;具体文件是否进入 Mars 标准路径取决于 phymars 调用和编译宏。

当前覆盖页面

页面 作用
mod_phys_lmdz_para 物理侧并行抽象入口,串联 MPI/OMP data 和 transfer。
mpi-data-transfer MPI 物理列分布和 MPI transfer 接口族。
mod_phys_lmdz_mpi_transfert MPI transfer 主文件页,覆盖 8 个泛型、94 个 specific procedures、SCATTERV/GATHERV/REDUCE 和局部 1D/2D 转换。
omp-data-transfer OMP 物理列分布和线程内 transfer 接口族。
mod_phys_lmdz_transfert_para MPI/OMP 组合 transfer wrapper,覆盖 bcast/scatter/gather/scatter2D/gather2D/reduce_sum 泛型、顺序和临时数组约定。
mod_phys_lmdz_omp_transfert OMP transfer 主文件页,覆盖共享 buffer、同步指令、列形状约定和高维 broadcast。
parallel-transfer-6d 5D/6D broadcast 泛型和 OMP buffer/race 修复。
physics_distribution_mod grid、parallel、dimphy 三段初始化封装。
mod_grid_phy_lmdz 全局物理网格规模、klon_gloGrid1Dto2D_glo/Grid2Dto1D_glo 映射。
geometry-grid-layers 局部几何、regular lon-lat、垂直层和 1D/2D 网格映射。
geometry_mod 物理列局部经纬度、边界、面积、输出面积和全局 cell index 状态。
grid-coordinate-state 全局 regular lon-lat 坐标轴和物理侧 threadprivate 垂直层状态。
ioipsl_getin_p_mod is_master getin wrapper 和 broadcast 约定。
write-field-xios 物理侧 XIOS 和旧 write_field 输出封装。
xios_writefield CPP_XIOS 下的临时 field dump 封装,覆盖 native/regular/unstructured domain 分支。
print-control-abort 物理侧打印控制、lunout/prt_level/debug 和 abort 组页。
abort_physic 物理侧统一错误终止入口、IOIPSL close/getin dump 和 MPI abort 分支。

目录文件分组

分组 文件 Mars 运行参与度 说明
并行抽象 mod_phys_lmdz_para.F90, mod_phys_lmdz_transfert_para.F90 条件经过 上层物理并行入口和 MPI/OMP transfer 组合封装;mod_phys_lmdz_transfert_para.F90 已由 mod_phys_lmdz_transfert_para 展开。
MPI data/transfer mod_phys_lmdz_mpi_data.F90, mod_phys_lmdz_mpi_transfert.F90 条件经过 MPI rank 物理列分布和通信包装;mod_phys_lmdz_mpi_transfert.F90 已由 mod_phys_lmdz_mpi_transfert 展开。
OMP data/transfer mod_phys_lmdz_omp_data.F90, mod_phys_lmdz_omp_transfert.F90 条件经过 OpenMP 线程物理列分布和线程内 transfer;mod_phys_lmdz_omp_transfert.F90 主文件页已完成。
网格/几何/垂直层 mod_grid_phy_lmdz.F90, geometry_mod.F90, regular_lonlat_mod.F90, vertical_layers_mod.F90, physics_distribution_mod.F90 条件经过 初始化和保存全局物理网格、物理列几何、边界、面积、垂直坐标和 1D/2D 映射;geometry_mod.F90geometry_mod 展开,regular lon-lat 与垂直层由 grid-coordinate-state 展开。
输出 xios_writefield.F90, write_field_phy.F90 条件经过 物理侧 XIOS/write_field 输出封装;组页见 write-field-xiosxios_writefield.F90 细节见 xios_writefield
控制/错误 init_print_control_mod.F90, print_control_mod.F90, abort_physic.F90 条件经过 打印控制由 print-control-abort 组页覆盖;abort_physic.F90 的终止分支由 abort_physic 展开。
getin 转发 ioipsl_getin_p_mod.F90 接口兼容 当前使用 is_master 的物理侧 getin 包装,和 misc/ioipsl getin 系统相关。

典型初始化链

inigeomphy_mod
  -> physics_distribution_mod:init_physics_distribution
      -> mod_grid_phy_lmdz:init_grid_phy_lmdz
      -> mod_phys_lmdz_para:init_phys_lmdz_para
          -> mod_phys_lmdz_mpi_data:init_phys_lmdz_mpi_data
          -> mod_phys_lmdz_omp_data:Init_phys_lmdz_omp_data
      -> dimphy:Init_dimphy
  -> regular_lonlat_mod:init_regular_lonlat
  -> geometry_mod:init_geometry
  -> vertical_layers_mod:init_vertical_layers

复现要点

待确认

相关页面