LMDZ.MARS 项目结构总览
路径
LMDZ.MARS
职责
LMDZ.MARS 是火星行星气候模型(Planetary Climate Model, PCM)的物理包,包含火星大气环流模式的物理过程实现。该项目不包含完整的 GCM 源码(仅包含物理过程部分),而是提供 Fortran 源码供其他动力框架调用。
源码依据:README 文件说明这是 "Mars Planetary Climate (PCM) physics package"。
目录内容
| 子目录/文件 | 类型 | 作用 |
|---|---|---|
README |
文件 | 项目说明文档 |
changelog.txt |
文件 | 代码变更记录 |
Licence_CeCILL_V2-en.txt |
文件 | CeCILL 开源许可证(英文) |
Licence_CeCILL_V2-fr.txt |
文件 | CeCILL 开源许可证(法文) |
libf/ |
目录 | 核心 Fortran 源码(物理过程实现) |
deftank/ |
目录 | 配置文件和运行脚本示例 |
util/ |
目录 | 后处理工具集 |
startfiles/ |
目录 | 初始状态文件 |
datadir/ |
目录 | 运行时外部数据集 |
doc/ |
目录 | 用户手册 LaTeX 源文件 |
目录详解
libf/ - 核心源码目录
这是最重要的目录,包含所有物理过程的 Fortran 实现:
| 子目录 | 职责 |
|---|---|
phymars/ |
核心物理模块:辐射、尘埃、水循环、CO2、云、边界层、重力波等 |
aeronomars/ |
高层大气模块:光化学、热层、电离层、分子扩散 |
dynphy_lonlat/ |
动力-物理耦合与初始化(当前仅包含 phymars 子目录) |
源码依据:README 说明 libf 是 "Fortran source code of the Mars physics package"。
deftank/ - 配置目录
包含 GCM 运行所需的配置文件示例和运行脚本:
run.def- 运行参数配置(网格、时间步长等)callphys.def- 物理过程调用开关traceur.def- 示踪剂配置z2sig.def- 垂直坐标定义iodef.xml/context_lmdz_physics.xml- XIOS 输出配置run0、run_mcd- 运行脚本- 子目录
ciclad、occigen、irene、mesu、spirit- 不同机器的调度脚本
源码依据:deftank/README 说明需要 "run.def, callphys.def, traceur.def and z2sig.def" 输入文件。
util/ - 后处理工具
| 工具 | 作用 |
|---|---|
concatnc.F90 |
合并 NetCDF 输出文件 |
extract.F90 |
提取变量和区域 |
zrecast.F90 |
垂直坐标转换 |
localtime.F90 |
本地时间计算 |
lslin.F90 |
Ls 线性化重采样 |
gencol.F90 |
生成列数据 |
hrecast.F90 |
水平重网格 |
startarchive2icosa |
初始场格式转换 |
simu_MCS.F90 |
MCS 模拟配置 |
startfiles/ - 初始状态
包含 1D 模型初始状态文件 start1D.txt。
源码依据:startfiles/README 说明 1D 模型使用 8 层大气层和 5 个示踪剂 [co2, h2o_ice, h2o_vap, dust_number, dust_mass]。
datadir/ - 运行时数据
本目录当前只包含 README,其中指向在线 datadir 数据包下载位置;实际运行所需的外部数据文件不随此目录完整提供。
源码依据:datadir/README 指向在线数据集下载位置。
doc/ - 文档
用户手册 LaTeX 源文件。
与其他目录的关系
| 相关目录 | 关系 |
|---|---|
| libf/ | 提供物理过程源码,被 deftank 中的配置驱动 |
| deftank/ | 提供运行配置,调用 libf 中的物理过程 |
| util/ | 处理 deftank 运行产生的输出数据 |
| startfiles/ | 提供初始状态,由 deftank 中的脚本加载 |
| datadir/ | 提供运行时查表数据,被 libf 中的模块使用 |
关键文件
| 文件 | 原因 |
|---|---|
libf/phymars/physiq_mod.F |
主物理入口,是 phymars 的核心调用入口 |
libf/phymars/callradite_mod.F |
辐射计算入口,调度长波和短波辐射主程序 |
libf/aeronomars/ |
光化学、热层、电离层实现 |
deftank/run.def.* |
不同配置的运行参数 |
deftank/callphys.def.* |
物理过程开关配置 |
典型运行流程
初始化阶段:
- 读取
run.def获取网格、时间步长等参数 - 读取
z2sig.def定义垂直坐标 - 读取
traceur.def配置示踪剂 - 读取
callphys.def配置物理过程开关 - 从
startfiles/加载初始状态 - 从
datadir/加载运行时数据
- 读取
物理计算阶段:
- 主循环中调用
physiq_mod.F中的物理过程 - 辐射计算(
callradite_mod.F) - 尘埃循环(
dust_*.F) - 水循环(
water*.F) - CO2 循环(
co2*.F) - 高层大气(
aeronomars/)
- 主循环中调用
输出阶段:
- 通过 XIOS 写入 NetCDF 输出
- 使用
util/工具进行后处理
运行场景
- 3D GCM 模式:与动力核心耦合,全火星模拟
- 1D 垂直列模式:使用
testphys1d程序,固定水平位置的时间演化 - 离线诊断模式:使用已有输出进行诊断计算
复现要点
- 需要从 LMDZ 主框架获取动力核心(
dyn_em或类似) - 需要配置合适的
run.def、callphys.def、traceur.def、z2sig.def - 需要下载
datadir数据集 - 需要获取合适的初始状态文件
- 不同配置(GCM5/GCM6/MCD5/MCD6)对应不同的物理过程组合
后续细节入口
本页只保留项目结构层级和运行场景;早期概览中的细节问题已拆到专题页和模块页维护:
- 物理过程主入口与水/CO2 循环调用点见 physiq-water-cycle-callpoints.md 和 physiq-co2-cycle-callpoints.md。
- 配置文件字段、读取例程和运行边界见 config-system.md、co2-cycle-config.md、water-cycle-config.md、testphys1d-config.md。
- XIOS 输出变量、文件组合和垂直轴语义见 xios-config.md。
- 物理模块依赖关系以模块页和索引维护,入口见 libf-overview.md、phymars/index.md、aeronomars/index.md。