testphys1d 专用配置

路径

LMDZ.MARS\deftank\run.def.1d                  (91 行, 1D 专用)
LMDZ.MARS\deftank\callphys.def.GCM6          (245 行, 物理参数开关, 1D/3D 共用)
LMDZ.MARS\libf\phymars\dyn1d\testphys1d.F90  (289 行, 1D 主程序)
LMDZ.MARS\libf\phymars\dyn1d\init_testphys1d_mod.F90 (850 行, 1D 初始化)

类型

配置——控制 testphys1d (1D 物理列模式) 的初始条件、时间积分和物理参数化。

作用

testphys1d 是 LMDZ.MARS 的 1D 列模式,用于在单一大气柱中离线运行全部物理过程(辐射、湍流、凝结、微物理、尘埃、水循环等),不包含 3D 动力学。

源码依据(testphys1d.F90:28-46 注释):

PROGRAM useful to run physical part of the martian GCM in a 1D column

Can be compiled with a command like (e.g. for 25 layers) "makegcm -p mars -d 25 testphys1d" It requires the files "testphys1d.def" "callphys.def" and a 'run.def' file (containing a "INCLUDEDEF=callphys.def" line) and a file describing the sigma layers (e.g. "z2sig.def")

用途:

文件加载链

源码依据(testphys1d.F90:110-146):

testphys1d.e
  ├── 读取 "run.def" (必须, 内含 INCLUDEDEF=callphys.def)  ← 报错停止如果缺
  ├── 读取 "traceur.def" 获取示踪物名和数量              ← 报错停止如果缺
  ├── 如果 startfiles_1D=true:
  │     ├── start1D.txt (ASCII 初始廓线, 可选)
  │     └── startfi.nc (NetCDF 物理初始场, 可选)
  └── 如果不存在 startfi.nc → 写一个新的 (physdem0/physdem1)

关键字段

run.def.1d(1D 专用)——通过 getin() 读取

源码依据:init_testphys1d_mod.F90getin(...) 调用汇总。

字段 示例值 含义 影响模块
startfiles_1D .false. 是否使用 1D 初始/重启文件 初始化分支
diagsoil .false. 是否输出土壤诊断 physdem1
day0 0 起始 sol(Ls=0 对应 0) 日历
time 0. 起始地方时 (hours, 0-24) 太阳位置
day_step 48 每 sol 时间步数 steps_per_sol
ndt 669 运行 sol 数 时间循环
psurf 610. 地表气压 (Pa) 垂直坐标比例
tauvis 0.2 610 Pa 参考尘埃可见光光学厚度 dimradmars_mod
latitude 0. 纬度 (°) 太阳天顶角
albedo 0.2 裸地反照率 辐射
inertia 400 土壤热惯性 (SI) 地表能量收支
u, v 10., 0. 地转背景风 (m/s) 风场松弛 (1D)
co2ice 0. 初始地表 CO₂ 冰 (kg/m²) CO₂ 循环
watercaptag .false. 地表是否有永久水冰盖 水循环
slope_inclination 0. 坡度倾角 (°, 0=水平, 90=垂直) 坡向辐射
slope_orientation 0. 坡向 (°: 0=北, 90=东, 180=南, 270=西) 坡向辐射
ctrl_h2ovap .false. 是否强制大气水汽廓线 水循环 (1D 专用)
relaxtime_h2ovap -1. 水汽松弛时间 (s, <0 为强制) 水循环 (1D 专用)
ctrl_h2oice .false. 是否强制大气水冰廓线 水循环 (1D 专用)
relaxtime_h2oice -1. 水冰松弛时间 (s, <0 为强制) 水循环 (1D 专用)
hybrid .true. 是否使用混合垂直坐标 (vs sigma) logic_mod
ichoice 5 (Seiff) 初始温度廓线类型 (1-8) profile_temp_mod
tref 200 参考温度 (K), 用于 ichoice=1/6/7 温度初始化
isin, pic, largeur, hauteur 0, 26.522, 10, 30. 高斯扰动参数 (ichoice=6/7) 温度扰动
INCLUDEDEF=callphys.def 链到 callphys.def 所有物理开关

callphys.def.GCM6(物理参数化开关,1D/3D 共用)

完整说明见 config-system.mdxios-config.md。以下列出 1D 运行中实际生效的关键字段(源码依据:callphys.def.GCM6:58-168):

类别 关键字段 默认值 1D 影响
辐射 callrad .true. 辐射传输
辐射 callnlte, nltemodel .true., 0 NLTE 15μm 方案
湍流 calldifv, calladj, calltherm, callrichsl .true.×4 PBL、对流调整、热泡
凝结 callcond .true. CO₂ 凝结
土壤 callsoil .true. 土壤热传导
重力波 calllott, calllott_nonoro .true., .true. 1D 仍可调用
尘埃 dustbin=2, active=.true., doubleq=.true., lifting=.true., rdstorm=.true., topflows=.true. 完整尘埃循环
水循环 water=.true., microphys=.true., caps=.true., activice=.true. 完整水循环
化学 photochem=.false. 关闭 可选开启
热层 callthermos, callconduct, callmoldiff, calleuv .false.×4 1D 极少开启

被读取的位置

读取例程 文件 说明
getin libf 通用 (ioipsl) 读取 run.def 所有 name=value 字段
init_testphys1d libf/phymars/dyn1d/init_testphys1d_mod.F90:7 主入口,调用 getin() 读取 1D 专有字段,打开 traceur.def
conf_phys 通过 callkeys_mod 读取物理开关
physdem0 / physdem1 phyredem 当无 startfi.nc 时生成初始 startfi
physiq libf/phymars/physiq_mod.F 每时间步调用 3D 物理主入口(1D 复用)

1D 与 3D 的差异(源码依据:testphys1d.F90:199-232,234-260):

  • 风场:不使用 Coriolis 力,而是向地转风 (gru, grv) 做松弛,时间尺度 1e4 秒(第 206-207 行)。
  • 水示踪物ctrl_h2ovap / ctrl_h2oice 为真时,物理计算的倾向被覆盖或松弛到 qref_h2ovap / qref_h2oice 廓线(第 214-232 行)。
  • 地表气压:物理倾向 dpsurf 直接加到 psurf(3D 由动力学保证守恒)。

影响的计算流程

主题 影响
辐射 callrad + callnlte + tauvis 共同决定 1D 大气的日变化辐射加热
尘埃循环 dustbin, doubleq, lifting, rdstorm, topflows 开启完整尘埃物理
水循环 water + microphys + caps + ctrl_h2ovap/ctrl_h2oice 决定水循环闭环方式
CO₂ 循环 callcond + co2ice 初始值 + psurf 决定 CO₂ 凝结/升华
土壤 callsoil + inertia + 土壤分层 (comsoil_h) 决定地表热惯量
对流/边界层 calldifv + calladj + calltherm + callrichsl + u/v 决定垂直混合
重力波 calllott + calllott_nonoro 影响高层大气耗散

ichoice 温度初始廓线选项(1-8)

源码依据(run.def.1d:68-87):

ichoice 类型 说明
1 常数 T = tref
2 Savidjari 类 Seiff 但 dT/dz = cte
3 Lindner 极区廓线
4 inversion 逆温
5 Seiff 标准廓线(基于 Viking 进入数据),默认推荐
6 常数 + 高斯扰动 (levels) pic (层数) 处加扰动,宽度 largeur,幅度 hauteur
7 常数 + 高斯扰动 (km) pic (km) 处加扰动
8 ASCII 读取 从文件 profile_temp 逐层读取一列温度值

复现要求

已核验输入格式与运行边界

相关页面