ioipsl_getin_p_mod.F90

源码路径:LMDZ.COMMON-6.3\LMDZ.COMMON\libf\phy_common\ioipsl_getin_p_mod.F90。 Mars 运行参与度:条件经过;Mars 并行物理配置读取可经过本 wrapper。

文件定位

本模块提供并行上下文中的 getin_p 泛型:master 读取配置,然后通过 mod_phys_lmdz_transfert_para:bcast 广播给其它 MPI ranks/OMP threads。

master abstraction

当前实现要点:

位置 行为
12 USE mod_phys_lmdz_para, ONLY : is_master
13 USE mod_phys_lmdz_transfert_para, ONLY : bcast
18-25 INTERFACE getin_p 绑定 char/int/real/logical 标量和数组。
43, 57, 73, 85, 97, 111, 123, 135, 149, 161, 173 各类型例程用 IF (is_master) CALL getin(...)

旧的 is_mpi_root .AND. is_omp_root 判断不再是 主线;master 语义集中到 mod_phys_lmdz_para:is_master

调用模式

getin_p(key, VarOut)
  -> IF (is_master) CALL getin(key, VarOut)
  -> CALL bcast(VarOut)

字符 1D 例程对每个元素广播;其它标量/数组调用 bcast(VarOut) 泛型。该泛型在 支持到 5D/6D。

复现检查

  1. 配置只应由 master 读,非 master 通过 broadcast 同步。
  2. 若某 rank/线程参数不同,先查 is_master 定义和 bcast 泛型。
  3. 高维数组配置要确认 parallel-transfer-6d 已纳入构建。
  4. 没有 IOIPSL 时,源码可改用 ioipsl_getincom:getin fallback。

相关页面