libf 总览

路径

LMDZ.COMMON-6.3\LMDZ.COMMON\libf

职责

libf/ 汇集 COMMON 的 Fortran 源码。按当前 wiki 范围,它为 MARS 提供动力状态模块、串行/并行动力入口和 helper、lon-lat 动力-物理接口、公共物理层、滤波、IO 和通用数值工具。

Mars 运行参与度:条件经过。MARS 源码中存在对 dyn3d_commondyn3ddyn3dpardynphy_lonlat 中若干模块的直接转发或 USE/CALL 使用;部分目录是接口兼容或构建候选,需逐页标注。

目录内容

子目录 Mars 运行参与度 作用
dyn3d_common/ 必经/条件经过/接口兼容 共享动力常量、控制状态、网格几何、restart、垂直坐标、差分算子、输送和 I/O helper。
dyn3d/ 条件经过/接口兼容 串行 GCM 入口、配置读取、主时间推进调度、串行算子 helper。
dyn3dpar/ 接口兼容/条件经过 并行动力入口、MPI/halo/domain decomposition;MARS dyn1d 直接转发 parallel_lmdzmod_const_mpi
dynphy_lonlat/ 必经/条件经过/非 Mars 路径 动力-物理接口、网格转换、物理几何初始化;phyvenusphytitan.old 只作非 Mars 边界。
phy_common/ 待确认/条件经过 物理侧公共层、并行传输、XIOS/write_field、几何层。
misc/ 接口兼容/条件经过 IOIPSL、NetCDF95、插值、样条、断言和通用数值工具。
filtrez/ 条件经过 极区滤波和 FFT backend;串行 dyn3duse_filtre_fft 会中止。
grid/ 接口兼容 网格函数头文件和维度定义辅助。
evolution/ 非 Mars 路径 PEM/evolution 独立流程,当前覆盖记录已列为范围外,不写专页。

与其他目录的关系

相关目录 关系
LMDZ.MARS\libf\dynphy_lonlat\phymars 使用 COMMON 的控制、常量、tracer、接口模块,并有 MARS 专用 nogcm/leapfrog_nogcm
LMDZ.MARS\libf\phymars\dyn1d 多个文件是到 COMMON 的直接路径转发,用于 1D 物理测试链保持接口。
arch/ 和顶层构建脚本 决定 libf/ 下哪些源文件进入具体 build。

关键文件

文件 原因
dyn3d_common\control_mod.F90 保存 nday/day_step/iphysiq/read_start 等运行控制变量。
dyn3d_common\infotrac.F90 tracer 数量、名称和同位素关系,入口初始化后分配 q
dyn3d_common\comconst_mod.F90 动力常量和行星参数状态。
dyn3d\conf_gcm.F90 读取并设置控制变量,是 COMMON gcm 和 MARS phymars/nogcm 的配置中心。
dyn3d_common\dynetat0.F90 读取 start.nc 初始动力状态。
dyn3d_common\inigeom.F 构造 comgeom2.h 中的几何数组。

典型流程

  1. 入口程序调用 conf_gcm 设置控制变量。
  2. infotrac_init 确定 tracer 个数,入口程序据此分配 q(iip1,jjp1,llm,nqtot)
  3. read_start=.true.dynetat0start.nc 读取动力状态;否则 iniacademic 构造理想化初态。
  4. iflag_phys==1 等路径下,iniconstinigeominifilr 完成动力常量、几何和滤波初始化。
  5. 入口进入 leapfrog,调用 dyn3d_commondyn3d 的算子、输送、诊断、输出 helper。

范围排除

复现要点

待确认

相关页面