LMDZ.COMMON 项目结构
路径
LMDZ.COMMON-6.3\LMDZ.COMMON
职责
LMDZ.COMMON 是 LMDZ 系列行星模式共享的源码树。本 wiki 只覆盖 LMDZ.MARS 运行会经过、条件经过,或为了 MARS 接口兼容必须保留的 COMMON 路径。源码根目录包含构建脚本、平台配置、IOIPSL 安装脚本和 libf/ Fortran 源码。
Mars 运行参与度:条件经过。MARS 运行可通过构建链组合 COMMON 的动力、公共接口和工具代码;MARS 源码中还存在 phymars/dyn1d 到 COMMON 文件的直接路径转发。
目录内容
| 子目录/文件 |
类型 |
作用 |
arch/ |
平台配置目录 |
提供不同机器、编译器、MPI/OMP 组合的 .fcm、.path、.env 配置。 |
ioipsl/ |
外部依赖安装脚本 |
按平台安装或配置 IOIPSL,供 NetCDF、日历和 getin 相关路径使用。 |
libf/ |
Fortran 源码目录 |
动力、动力-物理接口、公共物理层、IO/数值工具和滤波实现。 |
bld.cfg |
FCM 构建配置 |
约束构建系统使用的源目录、预处理和对象组织。 |
build_gcm |
构建入口脚本 |
辅助构建 GCM 可执行程序。 |
create_make_gcm |
makefile 生成脚本 |
生成或协调 GCM 构建所需 make 规则。 |
makelmdz, makelmdz_fcm |
构建脚本 |
面向 LMDZ/FCM 的构建入口。 |
Licence_CeCILL_V2-*.txt |
许可证 |
CeCILL 许可证文本。 |
与其他目录的关系
| 相关目录 |
关系 |
LMDZ.MARS |
MARS 通过构建链和若干直接路径转发使用 COMMON 的公共动力、接口和工具文件。 |
LMDZ.COMMON\libf\dyn3d_common |
串行/并行动力共享的常量、状态、初始化、restart、算子和输送例程。 |
LMDZ.COMMON\libf\dyn3d |
串行动力入口、配置、主循环和串行 helper。 |
LMDZ.COMMON\libf\dyn3dpar |
并行动力入口和 MPI/halo/decomposition 路径,本批只在总览中提及,未写专页。 |
LMDZ.COMMON\libf\dynphy_lonlat |
lon-lat 动力与物理之间的数据映射和行星专用接口边界。 |
LMDZ.COMMON\libf\evolution |
当前列为范围外;无 MARS 正常运行路径证据。 |
关键文件
| 文件 |
原因 |
libf\dyn3d\gcm.F90 |
串行 GCM program 入口,读取配置、初始化状态并进入 leapfrog。 |
libf\dyn3d\conf_gcm.F90 |
串行运行控制变量和 run.def/getin 配置读取中心。 |
libf\dyn3d_common\dynetat0.F90 |
从 start.nc 读取动力初始状态,包含 Mars 的 planeto start 处理。 |
libf\dyn3d_common\inigeom.F |
构造动力网格几何、面积、伸长系数和 Coriolis 相关数组。 |
libf\dynphy_lonlat\mod_interface_dyn_phys.F90 |
MARS dyn1d 直接转发的动力-物理接口状态模块。 |
典型流程
- 构建脚本读取平台配置和源目录设置,把
libf/ 下的 COMMON 源码与行星侧源码组合。
- COMMON 串行动力入口从
dyn3d/gcm.F90 进入;入口先解析 runtime options,再读取 run.def 配置,初始化 tracer、restart、网格、耗散、I/O 和物理接口。
dyn3d_common 提供初始化状态、几何、垂直坐标、差分算子、输送和 restart 读写。
dynphy_lonlat 在 lon-lat 网格上衔接动力和物理;Venus/Titan 子目录是行星专用变体,本 wiki 不为其写专页。
复现要点
- 复现 COMMON 行为不能只读 COMMON 源码,还要查 MARS 侧调用点;但 当前 COMMON 源码已删除
dyn3d/nogcm.F90 和 leapfrog_nogcm.F,Mars 专用同类入口不在当前 COMMON 正文展开。
arch/ 和顶层构建脚本决定实际编译哪些目录,但本页不展开 build 细节;构建链由独立构建页面展开。
evolution/、phyvenus/、phytitan.old/ 已按覆盖记录标注为非 Mars 路径或边界说明,不应扩写普通专页。
待确认
- COMMON 串行
dyn3d/gcm.F90 在当前 Mars 常规生产运行中是否直接作为入口使用,还是主要作为接口兼容和构建候选路径保留,需要结合具体 make 配置确认。
phy_common 中各并行和 XIOS 文件对 Mars 的参与度需要后续从构建清单和 MARS 物理调用链逐项确认。
相关页面