z2sig.def
路径
LMDZ.MARS\deftank\z2sig.def.MCD6 (74 行, 当前标准)
LMDZ.MARS\deftank\z2sig.def.MCD5 (51 行, 旧版)
LMDZ.MARS\deftank\z2sig.def.hr (178 行, 高分辨率)
运行时由 makegcm 编译脚本或 GCM 初始化流程复制为工作目录中的 z2sig.def。
类型
配置——定义大气垂直网格。
作用
源码依据(doc/io.tex:259-273):z2sig.def 定义用户期望的**伪高度(pseudo-altitude, km)**层分布,供编译脚本或初始化例程转换为 sigma/hybrid-sigma 坐标的界面与中层位置。
源码依据(doc/io.tex:260-265):
The
Z2sig.deffile contains the pseudo-altitudes (in km) at which the user wants to set the vertical levels. Note that levels should be unevenly spread, with a higher resolution near the surface in order to capture the rapid variations of variables there.
核心作用:决定 GCM 的垂直分辨率和顶层高度,直接影响所有物理过程(辐射传输、沉降、边界层、热层等)的垂直离散精度。
3 个变体对比
| 变体 | 行数 | nlayer (层数) | 顶层高度 | 用途 |
|---|---|---|---|---|
z2sig.def.MCD5 |
51 | ~48 | ~250 km | GCM5 含化学/热层/电离层(源码依据:deftank/README:20-22) |
z2sig.def.MCD6 |
74 | 54 (水/尘埃) 或 73 (含化学/热层) | ~250 km | GCM6 当前标准(源码依据:deftank/README:17-19) |
z2sig.def.hr |
178 | ~176 | ~250 km | 高分辨率研究用(源码依据:deftank/README:28) |
文件格式
第 1 行:参考尺度高度
10.00000 H: atmospheric scale height (km) (used as a reference only)
源码依据(MCD6 文件第 1 行):H = 10.0 km 仅供编译时参考,不参与运行时计算。
后续行:界面高度(km)
单列格式(MCD5):每行一个累积界面高度(km)
0.0020736
0.015735
...
249.5
双列格式(MCD6, hr):第一列为累积界面高度(km),第二列为层厚(km,推断)
2.0736000E-03 2.0736000E-03
1.5735000E-02 1.3661400E-02
...
250.0856 7.000000
推断:第二列 = 本层高度 - 上层高度,即层厚(dZ)。MCD6 第 1 行的第二列与第一列相同(自洽),后续行的差值关系与数据吻合。
垂直结构特征(MCD6)
- 近地表(0-7 km):层厚从 0.002 km 指数增长,分辨率最高——捕捉边界层温度/风速/尘埃浓度的剧烈变化。
- 中层(7-50 km):层厚线性增长 0.34-2.9 km,覆盖对流层/平流层。
- 高层(50-85 km):层厚继续增长 3-7 km,覆盖中间层。
- 顶层(>85 km):层厚固定为 7 km,覆盖热层/外逸层至 250 km(源码依据:第 51-74 行第二列全部为 7.0)。
关键字段
| 字段 | 示例值 | 含义 | 影响模块 |
|---|---|---|---|
第 1 行 H |
10.0 km | 大气尺度高度(参考,不计算) | 编译工具 |
| z(k+1) - z(k) | 0.002-7 km | 第 k 层厚度 | 全部物理模块(垂直差分精度) |
| z(nlayer+1) | 250 km | 顶层高度 | aeronomars 高层大气模块 |
| nlayer | 54 / 73 / 176 | 垂直层数 | 编译时确定数组维度 |
被读取的位置
| 读取例程 | 文件 | 说明 |
|---|---|---|
testphys1d |
libf/phymars/dyn1d/testphys1d.F90:35-37 |
1D 主程序注释要求运行目录提供描述 sigma 层的文件,例如 z2sig.def |
disvert_noterre |
libf/phymars/dyn1d/disvert_noterre.F / LMDZ.COMMON 垂直离散路径 |
1D 初始化经 init_testphys1d_mod.F90:334-337 调用,生成 ap/bp/aps/bps/presnivs/pseudoalt;详见 disvert_noterre |
| 编译维度链 | makegcm -d <nlayer> 与运行目录 z2sig.def |
z2sig.def 行数必须与编译层数一致;3D 路径由 LMDZ.COMMON 构建/动力初始化链处理 |
影响的计算流程
| 主题 | 影响 |
|---|---|
| 尘埃循环 | 沉降通量 vlz_fi、凝并 dust_coagulation、火箭式尘暴 rocketduststorm 全部依赖垂直层分布 |
| 水循环 | 云微物理、水汽凝结/蒸发、HDO 同位素沉降的垂直分辨率受控于 nlayer |
| 辐射计算 | callradite 的辐射传输积分在层界面上执行——层厚直接影响光学厚度积分精度 |
| 热层/化学 | aeronomars 模块覆盖 80-250 km,需要 z2sig.def 提供足够高的顶层(≥120 km)和合理间距 |
| 重力波拖曳 | sugwd.F90 等模块的垂直传播依赖 sigma 坐标系 |
| 边界层 | 近地表高分辨率(0.002 km 首层)是捕捉火星日变化/尘埃抬升的关键 |
复现要求
- 编译时 nlayer 必须与 z2sig.def 行数一致(源码依据:
changelog.txt:1485"using the updated z2sig.def with +1 vertical level during the compilation")。改变 nlayer 必须重新编译。 - GCM6 标准配置(源码依据:
deftank/README:17-19,26-28):- 仅水/尘埃循环:用前 61 行数据(54 层,至 ~90 km)
- 含化学/热层:用完整 73 行(73 层,至 ~250 km)
- 顶层高度 ≥120 km 才能触发高层大气模块(
aeronomars),<120 km 时高层模块可能行为异常。 - 近地表层厚 0.002 km 不可改为更大值,否则边界层/地表热惯量计算精度下降。
- 顶层间距 7 km 是硬上限(源码依据:MCD6 第 51 行之后全部为 7.0)——超过此值会损害高层辐射传输精度。
- 复现风险:MCD5 与 MCD6 网格不兼容——
start.nc初始场文件不能跨版本使用,必须用zrecast.F90重插值(源码依据:deftank/README:20)。 - 复现风险:
z2sig.def.hr的 176 层需要重新编译且时间步需大幅减小(CFL 条件),仅用于高分辨率研究。
已核验结论与运行边界
- 1D 初始化路径已定位到
init_testphys1d_mod调用disvert_noterre,后者负责生成垂直坐标状态;3D 的完整读取链位于 LMDZ.COMMON/构建系统边界内,本仓库页面按已可见入口记录。 - MCD6 第二列与相邻高度差逐行一致,可作为层厚
dZ使用;页面不再把它列为未处理事项。 - "用前 61 行得 54 层,用完整 73 行得 73 层"的机制来自编译层数选择和运行目录中实际提供的
z2sig.def截断版本;复现时以makegcm -d <nlayer>、start*.nc维度和运行目录文件三者一致为准。 - 第 1 行
H = 10.0 km在样例文件注释中标明为 reference only;本页按参考尺度高度处理,不把它作为运行时公式输入。
相关页面
- project-structure.md:项目结构中
deftank/目录说明。 - config-system.md:def 文件配置体系总览。
- dust-cycle.md:尘埃循环主题页(依赖垂直网格)。
- testphys1d-config.md:1D 测试配置的 1D 版
z2sig.def说明。 - zrecast.md:重插值工具(跨版本垂直网格转换)。