libf 总览
路径
LMDZ.COMMON-6.3\LMDZ.COMMON\libf
职责
libf/ 汇集 COMMON 的 Fortran 源码。按当前 wiki 范围,它为 MARS 提供动力状态模块、串行/并行动力入口和 helper、lon-lat 动力-物理接口、公共物理层、滤波、IO 和通用数值工具。
Mars 运行参与度:条件经过。MARS 源码中存在对 dyn3d_common、dyn3d、dyn3dpar、dynphy_lonlat 中若干模块的直接转发或 USE/CALL 使用;部分目录是接口兼容或构建候选,需逐页标注。
目录内容
| 子目录 |
Mars 运行参与度 |
作用 |
dyn3d_common/ |
必经/条件经过/接口兼容 |
共享动力常量、控制状态、网格几何、restart、垂直坐标、差分算子、输送和 I/O helper。 |
dyn3d/ |
条件经过/接口兼容 |
串行 GCM 入口、配置读取、主时间推进调度、串行算子 helper。 |
dyn3dpar/ |
接口兼容/条件经过 |
并行动力入口、MPI/halo/domain decomposition;MARS dyn1d 直接转发 parallel_lmdz、mod_const_mpi。 |
dynphy_lonlat/ |
必经/条件经过/非 Mars 路径 |
动力-物理接口、网格转换、物理几何初始化;phyvenus 和 phytitan.old 只作非 Mars 边界。 |
phy_common/ |
待确认/条件经过 |
物理侧公共层、并行传输、XIOS/write_field、几何层。 |
misc/ |
接口兼容/条件经过 |
IOIPSL、NetCDF95、插值、样条、断言和通用数值工具。 |
filtrez/ |
条件经过 |
极区滤波和 FFT backend;串行 dyn3d 中 use_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 中的几何数组。 |
典型流程
- 入口程序调用
conf_gcm 设置控制变量。
infotrac_init 确定 tracer 个数,入口程序据此分配 q(iip1,jjp1,llm,nqtot)。
- 若
read_start=.true.,dynetat0 从 start.nc 读取动力状态;否则 iniacademic 构造理想化初态。
- 在
iflag_phys==1 等路径下,iniconst、inigeom、inifilr 完成动力常量、几何和滤波初始化。
- 入口进入
leapfrog,调用 dyn3d_common 和 dyn3d 的算子、输送、诊断、输出 helper。
范围排除
libf/evolution、COMMON dyn3d/nogcm.F90 和 COMMON dyn3d/leapfrog_nogcm.F 在 当前源码已删除。
dynphy_lonlat/phyvenus 与 dynphy_lonlat/phytitan.old 是其他行星变体,本 wiki 只在边界表中说明,不写专页。
复现要点
- 目录级复现应先确定入口和构建组合;同名文件不一定代表 Mars 使用。
- 读单个文件页时,要同步查看
control_mod、logic_mod、comconst_mod、temps_mod 中被读写的共享状态。
- 串行与并行动力很多文件成对存在,后续对照页应避免把并行 halo 行为套用到串行路径。
待确认
phy_common 中各文件对 MARS 的实际构建参与度需后续 P3/P4 页面补充依据据。
filtrez 在 Mars 常规 lon-lat 配置中的具体启用方式需结合运行配置确认。
相关页面