GCM def 配置体系

路径

LMDZ.MARS\deftank\

类型

配置集合目录(含运行配置文件、垂直坐标定义、示踪物定义、化学反应速率、XIOS 输出配置、运行脚本和机器相关作业脚本)。

作用

deftank 目录集中存放了 LMDZ.MARS GCM 运行所需的所有配置文件和示例运行脚本。这是复现模型运行的关键入口目录——缺少其中任何一个必要的 def 文件,模型将无法启动。

根据 README,运行 GCM 至少需要四个 def 文件:

目录中按不同 GCM 配置版本(GCM5、MCD5、GCM6、MCD6)提供了后缀变体(如 callphys.def.GCM5callphys.def.MCD6),使用前需重命名为无后缀的基础名称。

目录结构总览

deftank/
  README                          # 目录说明
  run.def.*                       # 动力核心运行控制(6 个变体 + 1 个 1D 版本)
  callphys.def.*                  # 物理参数化配置(6 个变体)
  traceur.def.*                   # 示踪物列表(9 个变体)
  z2sig.def.*                     # 垂直坐标定义(3 个变体)
  chemthermos_reactionrates.def   # 热层化学反应速率常数
  run0                            # 串联模拟主脚本
  run_mcd                         # 按火星月分步运行的包装脚本
  launch_1Dchained.sh             # 1D 链式模拟启动脚本
  launch_orb_1Dchained.sh         # 1D 轨道链式模拟启动脚本
  xios/                           # XIOS 输出系统配置
    iodef.xml                     # XIOS 总配置
    context_pcm_physics.xml       # XIOS 物理上下文
    field_def_physics.xml         # 物理场定义
    file_def_physics.xml          # 输出文件定义
  adastra/                        # AdAstra 集群作业脚本
  ciclad/                         # Ciclad 集群作业脚本
  irene/                          # Irène 集群作业脚本
  mesu/                           # Mesu 集群作业脚本
  occigen/                        # Occigen 集群作业脚本
  spirit/                         # Spirit 集群作业脚本

源码依据deftank/README


1. run.def —— 动力核心运行控制

作用

控制 GCM 动力核心的时间积分方案、水平耗散、垂直坐标类型、物理调用频率、zoom 网格和 sponge 层等。run.def 还通过 INCLUDEDEF=callphys.def 指令引入物理配置。

关键字段

字段 示例值 含义 影响模块
planet_type mars 行星类型 全局
nday 9999 模拟总天数(9999 = 无限运行) 动力核心
day_step 480 (GCM5) / 960 (GCM6) 每天动力步数(必须为 iperiod 倍数) 动力核心
iperiod 5 Matsuno 步间隔 动力核心时间方案
iconser 120 动力诊断输出间隔(步) 动力核心输出
idissip 1 耗散应用间隔 动力核心耗散
lstardis .true. 耗散算子类型(star / non-star) 动力核心耗散
hybrid .true. 使用混合垂直坐标(否则 sigma) 动力核心
nitergdiv 1 gradiv 侧向耗散迭代次数 动力核心耗散
nitergrot 2 nxgradrot 侧向耗散迭代次数 动力核心耗散
niterh 2 divgrad 侧向耗散迭代次数 动力核心耗散
tetagdiv 3000. (GCM5) / 2500. (GCM6) u, v 最短波长耗散时间尺度 (s) 动力核心耗散
tetagrot 9000. (GCM5) / 5000. (GCM6) u, v (nxgradrot) 耗散时间尺度 (s) 动力核心耗散
tetatemp 9000. (GCM5) / 5000. (GCM6) h (divgrad) 耗散时间尺度 (s) 动力核心耗散
coefdis 0. gamdissip 系数 动力核心耗散
purmats .false. 时间推进方案(.true.=Matsuno, .false.=Matsuno-Leapfrog) 动力核心
physic .true. 是否调用物理 动力-物理耦合
iphysiq 10 (GCM5) / 5 (GCM6) 每多少动力步调用一次物理 动力-物理耦合
grireg .true. 使用规则经纬网格 动力核心
clon, clat 63., 0. zoom 中心经纬度 动力核心(zoom 网格)
grossismx, grossismy 1., 1. zoom 增强因子(1=无 zoom) 动力核心(zoom 网格)
fxyhypb .false. zoom 函数类型(.true.=双曲, .false.=正弦) 动力核心(zoom 网格)
callsponge .true. 启用 sponge 层 上边界
nsponge 3 sponge 层覆盖顶层数 上边界
mode_sponge 2 sponge 模式(0/1/2,见注释) 上边界
tetasponge 30000 sponge 层时间尺度 (s) 上边界
INCLUDEDEF callphys.def 引入物理配置文件 物理模块

GCM6 vs GCM5 差异

GCM6 的 run.def 相比 GCM5 新增了高度相关耗散系数:

字段 GCM6 新增 含义
dissip_fac_mid 2 中层大气(~20-70km)耗散系数
dissip_fac_up 10 高层大气(~100km+)耗散系数

源码依据deftank/run.def.32x24x25.GCM5deftank/run.def.64x48x54.GCM6

1D 版本特殊字段

run.def.1d 包含 1D 模型 testphys1d 特有的字段(替代 GCM 3D 动力控制):

字段 示例值 含义
day0 0 初始日期(火星 sol;Ls=0 时为 0)
time 0. 初始本地时间(小时)
day_step 48 每天物理步数
ndt 669 运行 sol 数
psurf 610. 表面气压 (Pa)
tauvis 0.2 参考可见光尘埃 opacity(610 Pa 处)
latitude 0. 纬度(度)
albedo 0.2 裸地反照率
inertia 400 土壤热惯量 (SI)
u, v 10., 0. 地转风分量 (m/s)
co2ice 0. 地表 CO2 冰初始量 (kg/m²)
ichoice 5 初始温度廓线类型(1-8)
tref 200 参考温度 (K)

源码依据deftank/run.def.1d


2. callphys.def —— 物理参数化配置

作用

这是 GCM 中最重要的配置文件,控制所有物理参数化的开关(辐射、湍流、对流、凝结、重力波、尘埃、水循环、光化学、热层等)及相关参数。

关键字段

通用选项

字段 GCM5 示例 GCM6/MCD6 示例 含义
outputs_per_sol 4 8 每 sol 输出的 diagfi.nc 数量
diurnal .true. .true. 日变化(否则日平均太阳加热)
season .true. .true. 季节变化(否则 Ls 保持 start 中的值)
callstats .true. .true. 保存统计到 stats.nc
calleofdump .false. 保存 EOF 廓线到 profiles
datadir /users/lmdz/WWW/planets/mars/datadir ./datadir 外部输入数据目录
check_physics_inputs .false. .false. 进入物理前检查输入场
check_physics_outputs .false. .false. 物理结束后检查输出场

尘埃方案

字段 GCM5 示例 GCM6 示例 MCD5 示例 MCD6 示例 含义
iaervar 26 8 24 8 尘埃场景(1/2/3/4/6/7/8/24-35)
tauvis 0.2 0.2 0.1 0.2 恒定尘埃可见光 opacity(iaervar=1 时)
iddist 3 3 3 3 尘埃垂直分布(0-3)
topdustref 55. 55. 55. 55. 尘埃顶高度 (km)(iddist=1 时)

GCM6/MCD6 新尘埃字段

字段 示例值 含义
dustiropacity tes 尘埃 IR opacity 参考波长(tes: 9.3μm / mcs: 21.6μm)
reff_driven_IRtoVIS_scenario .true. IR→VIS 转换系数依赖有效半径
freedust .true. freedust 模式
dustscaling_mode 2 dust scaling 模式(0/1/2)
dustinjection 1 启用 dust injection 方案
coeff_injection 0.25 dust injection 系数
rdstorm .true. Rocket Dust Storm 方案
coeff_detrainment 0.02 RDS detrainment 系数
topflows .true. 次网格坡风夹卷尘埃

物理参数化开关

字段 GCM5 GCM6 MCD5 MCD6 控制内容
callrad .true. .true. .true. .true. 辐射传输
callnlte .true. .true. .true. .true. NLTE 辐射方案
nltemodel 0 0 2 2 NLTE 15μm 方案(0/1/2)
callnirco2 .true. .true. .true. .true. CO2 近红外吸收
nircorr 0 0 1 1 NIR NLTE 修正(0/1)
calldifv .true. .true. .true. .true. 湍流垂直扩散
calladj .true. .true. .true. .true. 对流调整
calltherm .true. .true. .true. .true. 热力学
callrichsl .true. .true. .true. .true. Richardson 层
callcond .true. .true. .true. .true. CO2 凝结
callsoil .true. .true. .true. .true. 土壤热传导
calllott .true. .true. .true. .true. Lott 重力波/次网格地形
calllott_nonoro .true. .true. 非地形重力波(GCM6/MCD6 新增

极冠反照率

字段 示例值 含义
TESicealbedo .true. 用 TES 观测极冠地表反照率
TESice_Ncoef 1.6 北极冠反照率系数
TESice_Scoef 1.6 南极冠反照率系数
max_icecap_albedo 0.83 极冠最大允许反照率

辐射传输选项

字段 示例值 含义
iradia 1 辐射传输计算间隔(物理步数)
callg2d .false. 输出交换系数矩阵(仅诊断)
rayleigh .false. Rayleigh 散射(暂应为 .false.)

示踪物/尘埃/水选项

字段 GCM5 GCM6 MCD5 MCD6 含义
dustbin 2 2 2 2 输运尘埃 bin 数
active .true. .true. .true. .true. 尘埃辐射活跃
doubleq .true. .true. .true. .true. 用质量+数浓度预测尘埃尺寸
submicron .false. .false. .false. 亚微米尘埃
lifting .true. .true. .true. .true. GCM 表面风抬升
reff_lift_dust 2.5e-6 2.5e-6 2.5e-6 2.5e-6 抬升尘埃有效半径 (m)
callddevil .false. .false. .false. .false. 尘卷风抬升
scavenging .true. .true. .true. .true. H2O 降雪清除
scavco2cond .true. .true. CO2 凝结清除(GCM6/MCD6 新增
sedimentation .true. .true. .true. .true. 重力沉降
activice .true. .true. .true. .true. 水冰辐射活跃
water .true. .true. .true. .true. 水循环
microphys .true. .true. .true. .true. 水冰云微物理
nuice_sed 0.15 0.15 0.15 0.15 冰粒沉降对数正态分布有效方差
caps .true. .true. .true. .true. 两极永久极冠
mteta 0.95 注释掉 0.95 注释掉 水接触参数(GCM5 固定)
temp_dependent_m 注释掉 .true. 注释掉 .true. 温度依赖接触参数(GCM6/MCD6
cloud_adapt_ts 注释掉 .true. 注释掉 .true. 自适应云时间步(GCM6/MCD6
CLFvarying .false. .false. 次网格云(GCM6/MCD6
CLFfixval 1 1 固定云量(GCM6/MCD6

光化学和热层选项

字段 GCM5 GCM6 MCD5 MCD6 含义
photochem .false. .false. .true. .true. 光化学
callthermos .false. .false. .true. .true. 热层
callconduct .false. .false. .true. .true. 热传导
callmolvis .false. .false. .true. .true. 分子粘性
callmoldiff .false. .false. .true. .true. 分子扩散
moldiff_scheme 1 分子扩散方案(MCD6 新增
thermochem .false. .false. .true. .true. 热层光化学
calleuv .false. .false. .true. .true. EUV 加热
solvarmod 0 0 0 0 太阳变率方法(0=固定, 1=E10.7 观测)
fixed_euv_value 140 140 140 140 固定 E10.7 值(80-320)
solvaryear 24 24 24 24 太阳变率对应火星年(MY23-32)
euveff 0.21 0.21 0.21 0.21 UV 加热效率(实验值 0.19-0.23)

散射体数量

字段 GCM5 GCM6 MCD5 MCD6 含义
naerkind 2 4 2 4 散射体种类数(须与前序选项一致)

源码依据deftank/callphys.def.GCM5deftank/callphys.def.GCM6deftank/callphys.def.MCD5deftank/callphys.def.MCD6

GCM5 / MCD5 / GCM6 / MCD6 主要差异总结

特性 GCM5 MCD5 GCM6 MCD6
垂直层数 25-32 49 54 73
垂直坐标文件 z2sig.def.MCD5 z2sig.def.MCD5 z2sig.def.MCD6 z2sig.def.MCD6
顶层高度 ~120 km ~300 km ~120 km ~250 km
光化学+热层
NLTE 方案 旧 (nltemodel=0) 新 (nltemodel=2) 旧 (nltemodel=0) 新 (nltemodel=2)
NIR 修正 nircorr=0 nircorr=1 nircorr=0 nircorr=1
非地形重力波
新尘埃方案
水微物理改进

3. traceur.def —— 示踪物列表

作用

定义 GCM 中输运的化学/气溶胶种类列表。文件格式简单:第一行为 tracer 总数,后续每行一个 tracer 名称。模型根据此列表分配 tracer 数组维度。

变体及其内容

文件 Tracer 数 主要内容
traceur.def.co2 1 co2(仅 CO2)
traceur.def.GCM6 11 co2, dust (4 bins), h2o_ice, h2o_vap, ccn (2 bins) —— GCM6 水+尘埃配置
traceur.def.MCD5 39 完整化学 + 电离层 + 尘埃 + 水 + CCN
traceur.def.MCD6 43 MCD5 全套 + stormdust (2 bins) + topdust (2 bins)
traceur.def.watercycle.GCM5 7 co2, dust (2 bins), h2o_ice, h2o_vap, ccn (2 bins)
traceur.def.chemistry.GCM5 28 化学种类 + dust + 水(无电离层种类)
traceur.def.ionosphere.GCM5 18 电离层种类(含带电粒子)
traceur.def.co2clouds.GCM5 11 CO2 云相关 tracer
traceur.def.isotopes.GCM5 16 同位素 tracer(HDO 等)

典型 MCD6 tracer 列表(43 种)

中性化学: co2, co, o, o1d, o2, o3, h, h2, oh, ho2, h2o2, n2, ar, n, no, no2, n2d, he
水+气溶胶: h2o_ice, h2o_vap, dust_number, dust_mass, stormdust_number, stormdust_mass,
           topdust_number, topdust_mass, ccn_number, ccn_mass
电离层: co2plus, oplus, o2plus, coplus, cplus, nplus, noplus, n2plus, hplus,
        hco2plus, hcoplus, h2oplus, h3oplus, ohplus, elec

源码依据deftank/traceur.def.*

读取位置

已核验两条主要读取路径:3D/物理侧由 libf/phymars/tracer_mod.F90:176-181 查找并解析旧式 traceur.def;1D 列模式由 libf/phymars/dyn1d/init_testphys1d_mod.F90:177-209 直接打开 traceur.def,读取首行 tracer 数和后续 tracer 名称。完整 tracer 索引链见 tracer_modinitracerinit_testphys1d_mod


4. z2sig.def —— 垂直坐标定义

作用

定义模型的垂直分层(hybrid 坐标或 sigma 坐标)。文件格式为数值表,第一行为大气标高参考值 (km),后续每行给出 sigma 层界面值。

变体

文件 层数 对应配置
z2sig.def.MCD5 32 或 49 层 GCM5、MCD5
z2sig.def.MCD6 54 或 73 层 GCM6、MCD6
z2sig.def.hr 高分辨率 高分辨率运行

选择指南

源码依据deftank/READMEdeftank/z2sig.def.MCD6


5. chemthermos_reactionrates.def —— 热层化学反应速率

作用

定义热层/电离层光化学模块中 ~40 个化学反应的 Arrhenius 速率参数。文件格式为 Fortran 风格注释 + 每行三个数值(A, B, C),对应反应速率公式:

k = A × (T/300)^B × exp(C/T)

覆盖的反应类型

源码依据deftank/chemthermos_reactionrates.def


6. XIOS 输出配置(xios/)

作用

XIOS (XML Input/Output Server) 库控制 GCM 的并行 I/O 输出。需要四个 XML 文件。

文件说明

文件 作用
iodef.xml XIOS 总配置:buffer 大小、server 模式、日志级别、引用物理上下文
context_pcm_physics.xml 物理上下文定义(由 iodef.xml 引用)
field_def_physics.xml 物理场定义:每个输出变量的网格、单位、维度
file_def_physics.xml 输出文件定义:文件名、频率、包含哪些场

关键配置项(iodef.xml)

参数 默认值 含义
print_file true XIOS 写入独立文件
buffer_size_factor 4 buffer 大小因子
buffer_size 85000000 内部 buffer 大小
using_server false 是否分离 server/client 模式
info_level 100 XIOS 日志详细度(0=无输出,100=详细)

源码依据deftank/READMEdeftank/xios/iodef.xml


7. 运行脚本

run0 —— 串联模拟主脚本

Bash 脚本,实现链式 GCM 模拟:

  1. 检查 gcm.e 可执行文件
  2. 读取 num_run 获取上次数值
  3. start${numold}.nc / startfi${numold}.nc 复制为 start.nc / startfi.nc
  4. 运行 ./gcm.e > lrun${numnew}
  5. 检查输出(restart.nc / restartfi.nc
  6. 重命名输出文件(diagfi.ncdiagfi${numnew}.nc 等)
  7. 更新 num_run
  8. 若未达 nummax,递归调用自身继续下一个 run

关键参数nummax=1(默认只跑 1 段;可修改以进行多段链式模拟)

run_mcd —— 按月运行包装脚本

每月-模拟循环的包装脚本。利用 run0run.def.ref 将一年划分为 12 个火星月(约 30° Ls/月),每个月运行 nday 不等的天数(由于火星轨道偏心率导致各月长度不同,从 46 到 66 sol)。内置崩溃恢复逻辑。

机器专用子目录

每个子目录包含该集群的作业提交脚本:

子目录 目标机器 内容
adastra/ AdAstra (CINES) run0, run_month1, run_year1, adastra_cpu_binding.sh
ciclad/ Ciclad (IPSL) run0, run_month1
irene/ Irène (TGCC) run0, run_month1
mesu/ Mesu (UPMC) run0, run_month1
occigen/ Occigen (CINES) run0, run_month1
spirit/ Spirit (CINES) run0, run_month1

每个集群的 run0 会添加该集群特有的作业调度指令(PBS/SLURM)、并行执行命令(mpirun/srun)和模块加载。

源码依据deftank/run0deftank/run_mcd、各子目录 README 和脚本


8. 特殊配置变体

HDO 同位素配置

callphys.def.hdo.GCM5traceur.def.isotopes.GCM5 用于 HDO 水同位素模拟。

CO2 云配置

callphys.def.co2clouds.GCM5traceur.def.co2clouds.GCM5 用于 CO2 云形成模拟。


被读取的位置

读取例程 文件 说明
defrun_new libf/dynphy_lonlat/phymars/defrun_new.F:91-240 打开 run.def,用 getin 读取动力步数、耗散、hybrid、物理调用频率等 3D 动力控制量
conf_phys libf/phymars/conf_phys.F:137-156 及后续 getin_p 调用 打开 callphys.def,读取物理开关、数据目录、输出频率、尘埃/水/CO2/热层等参数
ini_tracer_mod / init_testphys1d libf/phymars/tracer_mod.F90:176-181; libf/phymars/dyn1d/init_testphys1d_mod.F90:177-209 解析 traceur.def tracer 数量、名称和索引链
disvert_noterre / 编译维度链 libf/phymars/dyn1d/disvert_noterre.F 与 LMDZ.COMMON 垂直离散路径 读取或生成与 z2sig.def 对应的 sigma/hybrid 垂直坐标;详见 z2sig-configdisvert_noterre
chemthermos_readini libf/aeronomars/chemthermos_readini.F:19-35 打开 chemthermos_reactionrates.def 并读取热层化学反应速率系数

复现风险run.def/callphys.def 通过 getin/getin_pINCLUDEDEF 机制合并读取,实际运行目录中的同名文件优先;复现实验必须保存运行目录版本,而不是只引用 deftank/ 样例。


影响的计算流程

主题 影响
辐射计算 callrad, callnlte, callnirco2, nltemodel, nircorr, iradia
尘埃循环 dustbin, active, doubleq, lifting, callddevil, scavenging, sedimentation, iaervar 及 GCM6 新增尘埃字段
水循环 water, microphys, caps, nuice_sed, activice 及 GCM6 水字段
CO2 循环 callcond
湍流/边界层 calldifv, calladj, calltherm, callrichsl
重力波拖曳 calllott, calllott_nonoro
光化学/热层/电离层 photochem, callthermos, 相关子开关, thermochem, calleuv
Tracer 输运 traceur.def 中定义的种类列表
输出/诊断 outputs_per_sol, callstats, calleofdump, XIOS XML
动力核心 run.def 中全部字段
1D 测试 run.def.1d 特有字段

复现要求

重新运行 LMDZ.MARS GCM 时,以下必须保持一致:

  1. 四个 def 文件必须全部存在run.defcallphys.deftraceur.defz2sig.def
  2. 垂直层数必须匹配z2sig.def 的层数必须与 start 文件、可执行文件编译时指定的层数一致
  3. tracer 种类必须匹配traceur.def 中定义的 tracer 数和顺序必须与 callphys.def 中的开关(dustbin, water, photochem 等)一致,也与 startfi.nc 中的 tracer 变量匹配
  4. NAERKIND 必须匹配callphys.def 中的 naerkind 必须与前序气溶胶相关的选项(active, activice 等)一致
  5. datadir 路径必须可访问callphys.def 中的 datadir 必须指向包含外部数据文件的有效目录
  6. 物理步频率必须一致iphysiq × day_step × 物理时间步长决定了物理-动力耦合的时间分辨率
  7. XIOS XML 文件必须存在:如果编译时启用了 XIOS 输出,xios/ 目录下的四个 XML 必须可用

已核验读取位置与剩余运行边界


后续维护口径

z2sig、XIOS、运行脚本、1D testphys1d 和反应速率常数已有独立页面。后续如发现新配置变体,应先补齐对应页面,再更新本汇总页。