垂直离散构造
输入范围
dyn3d_common\disvert.F90
dyn3d_common\disvert_noterre.F
Mars 运行参与度:必经/条件经过。动力初始化必须构造垂直坐标;Mars 非地球路径常依赖 disvert_noterre.F 或相同接口。
例程定位
disvert 和 disvert_noterre 构造 ap/bp/presnivs 等垂直坐标数组。前者是较新的 Fortran 90 实现,读取多种 getin 参数;后者是非地球/传统路径,调用 sig_hybrid 构造 hybrid sigma 坐标。
对照表
| 文件 | 行数 | 关键点 |
|---|---|---|
disvert.F90 |
457 | getin 读取 vert_sampling, dsigmin, vert_scale, vert_dzmin 等;含 ridders, racinesig, distrib。 |
disvert_noterre.F |
331 | 非地球变体,使用 IOIPSL/getincom,调用 sig_hybrid。 |
核心流程
- 读取垂直层数和坐标控制参数。
- 根据采样方式构造层界面和层中点。
- 计算 hybrid 坐标系数
ap/bp与参考压力层。 - 写入
comvert_mod供 pressure、Exner、history 垂直轴使用。
复现要点
- 垂直坐标是后续 pressure、mass、temperature 转换的共同输入,不能只记录层数。
vert_sampling等配置会改变层厚分布;Mars 复现实验必须保存 run.def 中相关键。disvert_noterre的非地球路径和 Mars 动力-物理共享状态约定见 vertical-coordinate-mars-contract。
相关页面
已确认
- COMMON
iniconst在planet_type!="earth"时默认disvert_type=2,即 Mars/Generic 默认调用disvert_noterre;仍可由run.def的disvert_type覆盖。