physics_distribution_mod.F90
路径
LMDZ.COMMON-6.3\LMDZ.COMMON\libf\phy_common\physics_distribution_mod.F90
文件定位
physics_distribution_mod.F90 定义物理分布初始化模块 physics_distribution_mod。它把网格类型、顶点数、经纬向点数、垂直层数和 communicator 串联到三个初始化步骤:物理全局网格、物理 MPI/OMP 分布、dimphy 局部维度。
Mars 运行参与度
条件经过:Mars 物理初始化通过 COMMON `inigeomphy_mod` 调用 `init_physics_distribution` 时经过。
定义的符号
| 符号 | 类型 | 行号 | 作用 | | --- | --- | --- | | physics_distribution_mod | module | 4 | 物理分布初始化封装。 | | init_physics_distribution | subroutine | 9 | 初始化物理网格、并行分布和 dimphy。 |
初始化流程
init_grid_phy_lmdz(grid_type,nvertex,nbp_lon,nbp_lat,nbp_lev)
init_phys_lmdz_para(nbp,nbp_lon,nbp_lat,communicator)
OMP parallel:
init_dimphy(klon_omp,nbp_lev)
其中 nbp 是当前 MPI 进程物理列数,nbp_lon/nbp_lat/nbp_lev 分别是经向、纬向和垂直层规模。
依赖
| 依赖 | 用途 |
|---|---|
mod_grid_phy_lmdz:init_grid_phy_lmdz |
保存全局物理网格规模和 klon_glo。 |
mod_phys_lmdz_para:init_phys_lmdz_para,klon_omp |
初始化 MPI/OMP 物理列分布。 |
dimphy:Init_dimphy |
用每个 OpenMP 线程的 klon_omp 初始化物理维度。 |
复现要点
init_dimphy在 OpenMP parallel 区内调用,因此每个线程使用自己的klon_omp。- 旧
Init_Phys_lmdz代码整段注释保留,不是当前执行路径。 - 本模块不分配几何数组;几何值由
inigeomphy_mod后续传给geometry_mod。
补充说明
- 已由 mod_grid_phy_lmdz 说明
regular_lonlat=1、unstructured=0;本页不再展开映射细节。