geometry output cell area

输入范围:phy_common/geometry_mod.F90dynphy_lonlat/inigeomphy_mod.F90。 Mars 运行参与度:条件经过;Mars 物理列几何和 lon-lat 输出可读取该状态。

当前行为

当前源码把物理 cell area 与 lon-lat 输出 cell area 分开:

符号 位置 作用
cell_area_for_lonlat_outputs(:) geometry_mod.F90:32 保存输出专用 lon-lat 面积。
THREADPRIVATE(cell_area_for_lonlat_outputs) geometry_mod.F90:36 OMP 线程私有。
init_geometry_cell_area_for_outputs geometry_mod.F90:84 初始化输出面积缓存。
CALL init_geometry_cell_area_for_outputs inigeomphy_mod.F90:241 从 dyn-phys 几何初始化阶段写入。

inigeomphy_mod.F90:14 导入 init_geometry_cell_area_for_outputs,说明输出面积初始化是几何桥接的一部分,不是后处理临时变量。

数据流

inigeomphy_mod
  -> 计算/准备 airefi_for_outputs
  -> init_geometry_cell_area_for_outputs(klon_omp, airefi_for_outputs)
       -> allocate cell_area_for_lonlat_outputs(klon)
       -> copy input area

geometry_mod.F90:88 注释把输入称为 tweaked lon-lat mesh。该数组用于输出网格面积,避免把物理列面积和 lon-lat 输出面积极点处理混在一起。

复现要点

  1. 诊断输出面积问题时,先确认使用的是 physics cell area 还是 cell_area_for_lonlat_outputs
  2. 极点差异通常来自输出 lon-lat 网格的特殊处理,不应直接归咎于物理列面积。
  3. OMP 运行要确认每个线程已初始化 threadprivate 面积缓存。
  4. 如果输出模块读不到该数组,回溯到 inigeomphy_mod 是否调用了 init_geometry_cell_area_for_outputs

相关页面