符号索引
源码范围:LMDZ.COMMON-6.3\LMDZ.COMMON,仅索引 Mars run 会经过、条件经过或接口兼容的 COMMON 符号与配置入口。 Mars 运行参与度:接口兼容。本页是反查入口,不表示每个符号在每种 Mars 运行形态下都必经。
使用方法
- 查文件位置:优先用 file-index。
- 查功能链路:优先用 source-coverage-matrix 或主题页。
- 查某个名字是什么意思、去哪看:用本页。
- 暂未覆盖的重点文件不做链接,只保留纯文本范围提示。
入口程序和工具链
| 符号/入口 | 类型 | 页面 | Mars 参与度 | 说明 |
|---|---|---|---|---|
gcm |
program | common-gcm-mars-run-entry, dyn3d/gcm, dyn3dpar/gcm | 必经/条件经过 | 3D GCM 主入口;串行和并行版本都读取 run.def、初始化动力/物理并进入时间推进。 |
newstart |
Mars utility | mars-start-restart-archive-boundary, mars-utility-common-state-consumers, mars-utility-constants-vertical, mars-utility-netcdf-helper-use | 工具链条件经过 | 读取或生成 start/restart,使用 COMMON 网格、垂直坐标、插值、常量和状态模块;NetCDF 入口使用 Mars 侧直接 NF_*。 |
start2archive |
Mars utility | mars-start-restart-archive-boundary, restart-io, mars-utility-constants-vertical, mars-utility-netcdf-helper-use | 工具链条件经过 | 将 start.nc/startfi.nc 转成 start_archive.nc,写出 COMMON 常量和垂直坐标 header;archive 创建/追加走 NF_OPEN/NF_CREATE/NF_PUT_*。 |
testphys1d |
Mars 1D driver | mars-dyn1d-common-forwarding | 接口兼容 | 通过 MARS phymars/dyn1d 转发文件使用 COMMON 状态和接口。 |
makelmdz_fcm |
build script | makelmdz-fcm-mars-paths, makelmdz-target-output-naming | 必经 | 展开 -p mars gcm 源码组、target、suffix 和可执行文件名。 |
parse_args |
subroutine | gcm-runtime-option-entry, program-options | 必经 | 串行/并行 GCM 入口在配置读取前解析 runtime options。 |
print_pgrm_version |
generated subroutine | build-provenance-version-control, runtime-options-build-provenance | 接口兼容 | --version [file] 输出构建溯源。 |
主题入口
| 主题符号 | 页面 | 用途 |
|---|---|---|
dynamics-time-integration |
dynamics-time-integration | 从 run.def/conf_gcm 反查 Matsuno/leapfrog、physics、耗散、输出和 restart 调度。 |
serial-parallel-dynamics |
serial-parallel-dynamics | 串行 dyn3d 与并行 dyn3dpar 的 decomposition、halo、band、I/O 对照。 |
restart-io |
restart-io | runtime restart、archive 工具链、history/dynav、Mars physics 输出和 XIOS/getin 边界。 |
transport-advection |
transport-advection | Van Leer、PPM、Prather、advn 和 tracer advection 主题页。 |
dynphys-interface |
dynphys-interface | 动力-物理数据映射、calfis/calfis_p、call_physiq、addfi/addfi_p 和 phy_common 分布/transfer 主题页。 |
全局状态模块
| 符号 | 类型 | 页面 | 主要使用位置 |
|---|---|---|---|
control_mod |
module | common-state-control-contract, dynamics-control-logic-gates | conf_gcm, COMMON gcm, MARS dynphy_lonlat/phymars/nogcm.F90, leapfrog*, Mars utility。 |
logic_mod |
module | common-state-control-contract, dynamics-control-logic-gates, dyn3d/index | 时间推进标志、physics/guide/read_start 等逻辑门控。 |
temps_mod |
module | common-state-control-contract, dynamic-output-state-holders | 日期、itaufin/day_ini/start_time、history/restart 时间;history 写出使用 itau_dyn+time。 |
comconst_mod |
module | common-state-control-contract, iniconst-planetary-constants, mars-dyn1d-common-forwarding, mars-utility-constants-vertical | daysec/dtvr/dtphys/rad/g/cpp 等动力常量,Mars utility 通过 header/tabfi/defaults 恢复和写出。 |
comvert_mod |
module | vertical-coordinate-mars-contract, vertical-discretization, mars-utility-common-state-consumers, mars-utility-constants-vertical | 动力侧 ap/bp/aps/bps/presnivs/pseudoalt 垂直坐标状态,供 Mars archive 写出和垂直插值。 |
vertical_layers_mod |
module | vertical-coordinate-mars-contract, mars-utility-constants-vertical | 物理侧 allocatable/threadprivate 垂直层状态,由 inigeomphy 或 1D 初始化复制。 |
com_io_dyn_mod |
module | common-state-control-contract, dynamic-output-state-holders, history-field-registration, restart-io | history/dynav 文件名和 IOIPSL file id 状态持有者。 |
infotrac |
module | dyn3d_common/infotrac, infotrac-state-contract, infotrac-mars-consumers | nqtot/tname/iadv、tracer 表、isotope/父子 tracer 状态。 |
mod_const_mpi |
module | mod-const-mpi | 串行 MPI 占位或并行 COMM_LMDZ/MPI_REAL_LMDZ。 |
parallel_lmdz |
module | parallel_lmdz, serial-parallel-dynamics | MPI/OMP rank、纬向 decomposition、halo/gather/broadcast 基础。 |
mod_Hallo |
module | mod_hallo | 并行 halo/swap 请求、打包通信和 OpenMP threadprivate buffer。 |
Bands |
module | bands | caldyn/vanleer/dissip/physics band 分布。 |
times |
module | times | adaptive bands 的计时统计。 |
mod_phys_lmdz_para |
module | mod_phys_lmdz_para | 物理侧 MPI/OMP 抽象、klon_loc/is_master。 |
mod_phys_lmdz_mpi_transfert |
module | mod_phys_lmdz_mpi_transfert, phys-transfer-mpi-core | MPI rank 间 bcast_mpi/scatter_mpi/gather_mpi/scatter2D_mpi/gather2D_mpi/reduce_sum_mpi/grid1dTo2d_mpi/grid2dTo1d_mpi。 |
mod_phys_lmdz_transfert_para |
module | mod_phys_lmdz_transfert_para, phys-transfer-para-wrapper | MPI/OMP 组合 transfer wrapper,公开 bcast/scatter/gather/scatter2D/gather2D/reduce_sum 泛型。 |
mod_phys_lmdz_omp_transfert |
module | mod_phys_lmdz_omp_transfert, phys-transfer-omp-core | OMP 线程内 bcast_omp/scatter_omp/gather_omp/reduce_sum_omp、共享 buffer 和同步约定。 |
physics_distribution_mod |
module | physics_distribution_mod, parallel-physics-grid-distribution | 物理列分布初始化。 |
mod_grid_phy_lmdz |
module | mod_grid_phy_lmdz | 全局物理网格规模、klon_glo 和 1D/2D lon-lat 映射。 |
geometry_mod |
module | geometry_mod, geometry-grid-layers | 物理列局部经纬度、边界、面积、输出面积和全局 cell index。 |
regular_lonlat_mod, vertical_layers_mod |
module | grid-coordinate-state, geometry-grid-layers | 全局 regular lon-lat 坐标轴和物理侧垂直层状态。 |
dimphy |
Mars physics module | parallel-physics-grid-distribution | Init_dimphy(klon_omp,nbp_lev) 后保存当前 OpenMP 线程的 klon/klev/klevp1/klevm1。 |
主流程例程
| 符号 | 类型 | 页面 | 作用 |
|---|---|---|---|
conf_gcm |
subroutine | dyn3d/conf_gcm, dyn3dpar/conf_gcm, dynamics-control-logic-gates, conf-gcm-serial-parallel-delta | 读取 run.def/getin,写控制变量、逻辑开关、耗散、输出和 restart 配置;并行主页面覆盖 adjust/use_filtre_fft/use_mpi_alloc 等差异。 |
infotrac_init |
subroutine | dyn3d_common/infotrac, infotrac-state-contract, infotrac-traceur-def | 读取 tracer 配置,确定 nqtot 和 tracer 元数据。 |
dynetat0 |
subroutine | dynetat0, restart-variable-sorting, restart-io | 从 start.nc 读取动力初态,按当前 tname(:) 匹配 tracer 变量。 |
dynredem0, dynredem1 |
subroutine | dynredem-restart, restart-variable-sorting, restart-io | 写 restart.nc 初始头信息、状态变量和按 tname(:) 命名的 tracer。 |
sortvarc |
subroutine | restart-variable-sorting, caldyn-dynamic-tendencies | conser 分支下输出/重置质量、能量、涡度和角动量控制量;不是 restart 变量排序器。 |
iniconst |
subroutine | iniconst-planetary-constants, dynamics-initializers, common-gcm-mars-run-entry | 派生 dtphys/r/pi/unsim,并按 planet_type/disvert_type 选择垂直离散。 |
conf_planete |
subroutine | iniconst-planetary-constants, dynamics-initializers | 理想化/academic 初始化路径读取行星常数默认值和 getin 覆盖。 |
inigeom |
subroutine | inigeom, inigeom-zoom-map-contract | 构造经纬网格面积、尺度因子、Coriolis 和周期处理;约定页说明 zoom/map 分支、Mars archive/header 和 surface 插值使用。 |
inidissip |
subroutine | dyn3d_common/inidissip, dynamics-initializers, dissip-serial-parallel | 初始化水平耗散参数:特征值估算、垂直剖面和 dissip_period 计算。 |
filtreg_mod, inifilr |
module/subroutine | filtreg_mod, filtreg-system | 初始化纬向滤波边界、矩阵滤波状态和可选 FFT backend;Mars GCM、nogcm、newstart/start2archive 条件经过。 |
iniphysiq |
subroutine | common-gcm-mars-run-entry | Mars physics 初始化入口,由 MARS physics 实现,COMMON 提供调用环境。 |
guide_main, guide_interp, tau2alpha |
subroutine | guide_mod, guide_p_mod, guide-config-contract, guide-interpolation-pressure, guide-tendency-application, guide-serial-parallel-delta | guide/nudging 主入口、压力层插值、松弛系数构造、状态叠加和串并行局部分布差异。 |
guide_addfield, guide_zonave |
subroutine | guide-tendency-application | 将 guide forcing 乘 alpha/alpha_pcor 并可选转为纬向平均。 |
leapfrog |
subroutine | dynamics-time-integration, leapfrog-state-contract | Matsuno/leapfrog 时间推进主循环;restart 写出时间按 JH_cur 和 Mars 分支规则说明。 |
leapfrog_p |
subroutine | dyn3dpar/leapfrog_p, leapfrog-p-state-contract, leapfrog-p-time-scheduler, leapfrog-p-distribution-halo, leapfrog-p-physics-coupling, leapfrog-p-output-restart | 并行时间推进主循环,调度 forward/leapf/purmats/apphys/apdiss/lafin、True_itau、band 切换、halo/swap request、physics、耗散、输出和 restart。 |
Runtime/misc 符号
| 符号 | 类型 | 页面 | 作用 |
|---|---|---|---|
program_options |
module | program-options | Runtime option parser,处理 --help, --version, --add-sso, --auto-exit。 |
version_control |
generated module | build-provenance-version-control | makelmdz_fcm 编译期生成,记录编译命令、日期、用户、主机和 VCS 状态。 |
job |
module | job | 读取 SLURM/PBS job id 和 walltime,支撑 --auto-exit。 |
readTracFiles_mod |
module | readTracFiles_mod | Tracer/isotope parser,支持 sectioned tracer files 和 metadata。 |
strings_mod |
module | strings_mod | 字符串解析、替换、表格和类型转换工具。 |
ioipsl_stringop, ioipsl_errioipsl |
module | ioipsl-local-support | fallback getin 的本地字符串清洗、logical 小写匹配和 IOIPSL 风格错误报告支撑。 |
write_field, write_field_phy, write_field_p |
module | write-field-debug, write-field-xios | 旧式 debug 写场底座、物理列 gather 桥接和并行动力 root dump wrapper。 |
动力、输送和积分
| 符号 | 类型 | 页面 | 作用 |
|---|---|---|---|
caldyn, caldyn_p |
subroutine | caldyn-serial-parallel, caldyn-dynamic-tendencies | 计算动力 tendency、质量通量和辅助量。 |
caladvtrac |
subroutine | caladvtrac-tracer-loop, leapfrog-dynamics-transport | 串行 leapfrog 中调度 tracer advection 的 wrapper,处理 Earth dq、iapptrac 和可选守恒重标定。 |
advtrac, advtrac_p |
subroutine | dyn3d/advtrac, caladvtrac-tracer-loop, advtrac-serial-parallel | 按 iapp_tracvl 累计质量通量,再按 nqperes/iadv 调度 Van Leer、PPM、Prather、advn 等输送;当前标准白名单限制到 0/10/14。 |
integrd, integrd_p |
subroutine | integrd-serial-parallel | 将 tendency 写回 prognostic state,并检查非法压力/质量。 |
dissip, dissip_p |
subroutine | dissip-serial-parallel, common-dissip-mars-chain, leapfrog-dissipation-conservation | 施加水平耗散。 |
filtreg |
subroutine | filtreg-operators, filtreg-system | 串行矩阵滤波施加例程;当前只支持 ifiltre=2/-2,inverse filter 只支持 scalar/U 网格。 |
sponge |
subroutine | sponge-serial-parallel | 顶层 sponge 阻尼。 |
friction, friction_p |
subroutine | friction-serial-parallel | 摩擦/阻尼分支。 |
addfi, addfi_p |
subroutine | addfi-serial-parallel, leapfrog-physics-coupling, leapfrog-p-physics-coupling | 将 physics tendency 加到动力状态;并行 addfi_p 后必须刷新 p/masse/pk。 |
qminimum, qminimum_p |
subroutine | qminimum-serial-parallel | tracer 最小值保护。 |
top_bound, top_bound_p |
subroutine | top-bound-serial-parallel, leapfrog-p-physics-coupling | 顶边界处理;physics 段用 dtphys,iflag_phys==2 分支用 dtvr。 |
vlsplt |
subroutine | dyn3d/vlsplt, vlsplt-serial-family-tracers | 串行 Van Leer split transport,advtrac 在 iadv=10 时调用。 |
vlsplt_p |
subroutine | dyn3dpar/vlsplt_p, vlsplt-p-halo-split | 并行 Van Leer split transport 旧主入口;说明 band、halo 和 OMP split。 |
vlx |
subroutine | dyn3d/vlsplt, vlsplt-serial-split-kernels | E-W Van Leer 内核,含周期边界和 CFL>1 semi-Lagrangian 累加。 |
vlx_p |
subroutine | dyn3dpar/vlsplt_p, vlsplt-p-halo-split | 并行 E-W Van Leer 内核,带 band 参数和极点行排除。 |
vly |
subroutine | dyn3d/vlsplt, vlsplt-serial-split-kernels | N-S Van Leer 内核,含极点 SSUM 收支和斜率归零。 |
vly_p |
subroutine | dyn3dpar/vlsplt_p, vlsplt-p-halo-split | 并行 N-S Van Leer 内核,含 THREADPRIVATE 几何缓存和条件极点处理。 |
vlz |
subroutine | dyn3d/vlsplt, vlsplt-serial-split-kernels | 垂直 Van Leer 内核,顶底零通量。 |
vlz_p |
subroutine | dyn3dpar/vlsplt_p, vlsplt-p-halo-split | 并行垂直 Van Leer 内核,动态 wq/Ratio 和 w(子)=wq(父) 修正。 |
minmaxq |
subroutine | dyn3d/vlsplt | isminismax 编译保护下的 tracer 极值诊断。 |
minmaxq_p |
subroutine | dyn3dpar/vlsplt_p | 并行 tracer 极值诊断,使用三维定位数组。 |
vlspltqs, vlspltqs_p |
subroutine | dyn3d/vlspltqs, dyn3dpar/vlspltqs_p | 饱和水汽 Van Leer split。 |
vlspltgen_p |
subroutine | dyn3dpar/vlspltgen_p | 并行通用 tracer split 调度。 |
prather |
subroutine | prather, common-tracer-advection-schemes | Prather moments 输送格式,串行 advtrac 的 iadv=30 保留分支。 |
pentes_ini |
subroutine | pentes_ini, common-vanleer-advection-operators, common-tracer-advection-schemes | slope/limiter 初始化,并按 x-y-z-y-x 顺序调用 advx/advy/advz moments 算子。 |
ppm3d |
subroutine | dyn3d_common/ppm3d, common-tracer-advection-schemes, ppm3d-entry-contract | Lin & Rood PPM 三维输送内核,串行 advtrac 在 iadv=11/16/17/18 时调用;当前标准初始化通常阻断,并行 advtrac_p 不可达。 |
interpre |
subroutine | common-tracer-advection-schemes, ppm3d-entry-contract | LMDZ.4 网格→PPM3d 格式转换:气压/风场/垂直通量/层序翻转。 |
interpost |
subroutine | common-tracer-advection-schemes, ppm3d-entry-contract | PPM3d→LMDZ.4 格式回转:层序翻转+经向周期闭合。 |
adaptdt |
subroutine | common-vanleer-advection-operators, ppm3d-entry-contract | 自适应子步长,基于水平 pbaru 估算 n=int(CFLmax)+1 和 dtbon=dtvr/n。 |
FZPPM |
subroutine | ppm3d-vertical-transport | PPM 垂直输送内核:抛物线重构、单调约束、界面通量计算。 |
zflip |
subroutine | ppm3d-vertical-transport | 垂直层序翻转工具,ppm3d.F 内部和 LMDZ 均不直接调用。 |
xtp |
subroutine | ppm3d-horizontal-transport | E-W 输送:Eulerian/FFSL 双路径,调用 fxppm 做 PPM 通量。 |
ytp |
subroutine | ppm3d-horizontal-transport | N-S 输送:三阶分支+极区质量守恒,调用 fyppm 做 PPM 通量。 |
fxppm |
subroutine | ppm3d-horizontal-transport | E-W PPM 抛物线重构和界面通量积分。 |
fyppm |
subroutine | ppm3d-horizontal-transport | N-S PPM 抛物线重构,含跨极点界面和 LMDZ.3.3 补丁。 |
xmist |
subroutine | ppm3d-horizontal-transport | E-W 4 阶中心斜率加单调约束。 |
ymist |
subroutine | ppm3d-horizontal-transport | N-S 4 阶斜率,极区用跨经度半宽邻居。 |
xadv |
subroutine | ppm3d-horizontal-transport | E-W advective cross term,极点处强制零化。 |
yadv |
subroutine | ppm3d-horizontal-transport | N-S advective cross term,极点做纬向平均。 |
lmtppm |
subroutine | ppm3d-limiters-filters | PPM 单调性约束:full/semi/positive-definite 三档。 |
qckxyz |
subroutine | ppm3d-limiters-filters | 正值性检查和垂直填充,调用 filns/filew/filcr。 |
filns |
subroutine | ppm3d-limiters-filters | N-S 负值填充,面积加权,极点 CAP1 分摊。 |
filew |
subroutine | ppm3d-limiters-filters | E-W 负值填充,转置向量化,经向周期包裹。 |
filcr |
subroutine | ppm3d-limiters-filters | 对角负值填充,前后双扫描,周期包裹。 |
advn |
subroutine | dyn3d_common/advn, advn-dispatcher-order | Hourdin 伪上游 advection,x-y-z-y-x split,mode=1/2;当前 Mars 标准配置通常不可达。 |
advnqx |
subroutine | dyn3d_common/advn, advn-stencil-reconstruction | E-W 4 阶界面重构加单调约束。 |
advnqy |
subroutine | dyn3d_common/advn, advn-stencil-reconstruction | N-S 4 阶界面重构,极点无斜率。 |
advnqz |
subroutine | dyn3d_common/advn, advn-stencil-reconstruction | 垂直 4 阶界面重构,顶底无斜率。 |
advnx |
subroutine | dyn3d_common/advn, advn-flux-updates | E-W 通量计算和更新,含极区 Semi-Lagrangian;唯一使用主例程 mode。 |
advny |
subroutine | dyn3d_common/advn, advn-flux-updates | N-S 通量计算,极区面积加权质量分配。 |
advnz |
subroutine | dyn3d_common/advn, advn-flux-updates | 垂直通量计算和更新,无通量边界。 |
压力、质量、几何和坐标
| 符号 | 类型 | 页面 | 作用 |
|---|---|---|---|
pression |
subroutine | mass-pressure-energy-overview, common-pressure-mass-operators, leapfrog-state-contract | 由 ps/ap/bp 计算层界压力。 |
massdair |
subroutine | mass-pressure-energy-overview, common-pressure-mass-operators | 由 pressure 计算层质量。 |
massbar, massbarxy, massbarxy_p |
subroutine | mass-pressure-energy-overview, common-pressure-mass-operators, caldyn-serial-parallel | staggered grid 质量平均。 |
exner_hyb, exner_hyb_p |
subroutine | leapfrog-state-contract, exner-cpdet-helpers | Exner 函数递归 alpha/beta 法(能量守恒)。 |
exner_milieu, exner_milieu_p |
subroutine | exner-cpdet-helpers | Exner 函数简化中点法(Mars 复杂垂直坐标,不守恒)。 |
cpdet |
function | exner-cpdet-helpers | 变比热 cp(T) = cpp*(T/t0)^nu。 |
tpot2t, t2tpot |
subroutine | exner-cpdet-helpers, common-energy-vorticity-operators | 位温↔︎温度转换,cpofT 分支。 |
geopot |
subroutine | mass-pressure-energy-overview, common-energy-vorticity-operators, leapfrog-dynamics-transport | 位势高度静力积分。 |
enercin |
subroutine | common-energy-vorticity-operators, common-dissip-mars-chain | C-grid 动能(covariant × contravariant 面积加权)。 |
bernoui |
subroutine | common-energy-vorticity-operators | Bernoulli 函数 = phi + ecin,再 filtreg 滤波。 |
tourpot |
subroutine | common-energy-vorticity-operators | Z 点位势涡度 = (filtreg(curl) + fext) / massebxy。 |
grad, diverg, divergf, diverg_gam |
subroutine | common-dissipation-stencil-families | 叶子梯度/散度算子族,含 gamma 变体。 |
rotat, rotatf, rotat_nfil |
subroutine | common-dissipation-stencil-families | 叶子旋度算子族,含滤波和未滤波变体。 |
nxgrad, nxgrad_gam |
subroutine | common-dissipation-stencil-families | n×grad 叶子算子,旋度→梯度旋转。 |
laplacien, laplacien_gam, laplacien_rot, laplacien_rotgam |
subroutine | common-dissipation-stencil-families | Laplacian 复合算子族,由叶子算子组合。 |
gradiv, gradiv2 |
subroutine | common-dissipation-stencil-families, common-dissip-mars-chain | 耗散复合算子:迭代 grad(div) 风场扩散。 |
nxgrarot, nxgraro2 |
subroutine | common-dissipation-stencil-families, common-dissip-mars-chain | 耗散复合算子:迭代 n×grad(rot) 风场扩散。 |
divgrad, divgrad2 |
subroutine | common-dissipation-stencil-families, common-dissip-mars-chain | 耗散复合算子:迭代 div(grad) 温度扩散。 |
matriceun/matriceus/matricevn/matricevs |
module arrays | filtreg_mod | inifilr 分配并填充的 U/scalar 与 V/Z 普通滤波矩阵,供 filtreg 和 filtreg_p 使用。 |
matrinvn/matrinvs |
module arrays | filtreg_mod | scalar/U inverse filter 矩阵;源码没有 V/Z 对应 inverse 矩阵。 |
inifgn, JACOBI, acc, eigen_sort |
subroutine group | filtreg-operators, filter-helpers | 从 xprimu/xprimv 构造离散 Laplacian 特征基,归一化并按特征值降序排序。 |
disvert, disvert_noterre |
subroutine | vertical-coordinate-mars-contract, vertical-discretization, mars-utility-constants-vertical | 垂直离散构造;Mars/Generic 默认 disvert_noterre 读取 esasig.def 或 z2sig.def,1D utility 也直接调用。 |
init_vertical_layers |
subroutine | vertical-coordinate-mars-contract, mars-utility-constants-vertical | 将动力侧 comvert_mod 垂直坐标复制到物理侧 vertical_layers_mod。 |
inigeomphy |
subroutine | inigeomphy_mod | 物理侧几何和垂直层初始化。 |
gr_dyn_fi, gr_fi_dyn families |
subroutine group | dyn-phys-grid-transforms | 动力格点和物理列互转。 |
interp_horiz, iniinterp_horiz |
subroutine | dyn3d/interp_horiz | LMDZ scalar 网格面积交叠水平插值;Mars datareadnc/lect_start_archive/newstart 用它做 surface、archive 和 MONS 数据重网格。 |
pres2lev, q_sat |
subroutine | atmospheric-coordinate-helpers, guide-interpolation-pressure | guide/nudging 垂直压力层插值和相对湿度到比湿转换。 |
动力-物理接口和物理公共层
| 符号 | 类型 | 页面 | 作用 |
|---|---|---|---|
calfis |
subroutine | calfis, leapfrog-physics-coupling | 串行动力调用 Mars physics 的 lon-lat 接口。 |
calfis_p |
subroutine | calfis_p, leapfrog-p-physics-coupling | 并行动力-物理接口,映射动力网格到物理列,调用 call_physiq 并回填 tendency。 |
mod_interface_dyn_phys |
module | mod_interface_dyn_phys | 动力-物理接口索引和并行映射状态。 |
init_physics_distribution |
subroutine | parallel-physics-grid-distribution, physics_distribution_mod | 串联全局物理网格、MPI/OMP 列分布和 Mars dimphy 局部维度初始化。 |
Init_phys_lmdz_para |
subroutine | mod_phys_lmdz_para | 初始化物理侧 MPI/OMP 列分布。 |
init_grid_phy_lmdz |
subroutine | mod_grid_phy_lmdz | 保存 grid_type/nvertex/nbp_lon/nbp_lat/nbp_lev 并推导 klon_glo。 |
klon_glo, klon_mpi, klon_omp, dimphy:klon |
distribution dimensions | parallel-physics-grid-distribution | 全局物理列、rank 局部列、OpenMP 线程局部列和 Mars physics 当前线程列数,不能混用。 |
Grid1Dto2D_glo, Grid2Dto1D_glo |
generic wrappers | mod_grid_phy_lmdz | 在全局物理列和 regular lon-lat 二维场之间转换,处理两极重复经度。 |
grid_type, regular_lonlat, unstructured, klon_glo, nbp_lon, nbp_lat, nbp_lev |
grid globals | mod_grid_phy_lmdz | Mars 物理输出、restart、surface 初始化和 XIOS domain 的全局网格状态。 |
longitude, latitude, boundslon, boundslat, cell_area, cell_area_for_lonlat_outputs, ind_cell_glo |
geometry globals | geometry_mod | 物理侧局部几何状态;Mars physics、diagfi、newstart/archive 和 XIOS domain 使用。 |
lon_reg, lat_reg, boundslon_reg, boundslat_reg, ap, bp, aps, bps, presnivs, pseudoalt |
coordinate globals | grid-coordinate-state | regular lon-lat 坐标轴和物理侧垂直坐标状态,Mars 输出与 XIOS 初始化使用。 |
Scatter, Gather, bcast, scatter2D, gather2D, reduce_sum |
generic wrappers | mod_phys_lmdz_transfert_para, mod_phys_lmdz_mpi_transfert, mpi-data-transfer, omp-data-transfer, mod_phys_lmdz_omp_transfert, parallel-transfer-6d | 物理侧 transfer 抽象;para wrapper 组合 MPI/OMP 两层,MPI 层由 *_mpi 泛型实现 rank 间通信,OMP 层由 bcast_omp/scatter_omp/gather_omp/reduce_sum_omp 实现线程内搬运。 |
cell_area_for_lonlat_outputs |
module state | geometry-output-cell-area | lon-lat 输出专用面积,与 physics cell area 分离。 |
write_field_phy |
subroutine | write-field-xios | 物理侧调试写场封装。 |
xios_writefield |
generic interface | xios_writefield, write-field-xios | CPP_XIOS 下的临时 field dump 封装,分派 2D/3D 入口并按字段名懒创建 XIOS context/file/field。 |
WriteField, WriteField_p, WriteField_phy |
debug output wrappers | write-field-debug, write-field-xios | 写独立 name.nc 或 gather 后 root 写出调试场;与 history/diagfi 正式输出分开。 |
abort_physic |
subroutine | abort_physic | 物理侧统一错误终止入口;非零 ierr 时走 MPI_ABORT(COMM_LMDZ_PHY,1,...) 或 stop 1。 |
COMM_LMDZ_PHY, MPI_ABORT_PHYSIC |
communicator / OpenMP critical name | abort_physic, mod_phys_lmdz_para | abort_physic 的 MPI abort communicator 和 OpenMP critical 保护名。 |
I/O、配置和输出
| 符号 | 类型 | 页面 | 作用 |
|---|---|---|---|
getin |
interface/procedure | ioipsl_getincom, ioipsl-getin-system, history-xios-getin-boundary, mars-utility-netcdf-helper-use | fallback 配置读取接口;动力侧配置读取和 Mars datareadnc 可直接用 getin("datadir") 定位 surface.nc。 |
getin_p |
wrapper | ioipsl_getin_p_mod, history-xios-getin-boundary | physics 侧 is_master 读取后广播。 |
ioipsl_getincom |
module | ioipsl_getincom, ioipsl-getin-system | 本地 fallback getin/getin_dump 实现,保存 run.def/INCLUDEDEF 文本层、key 表和 typed memory。 |
nocomma, cmpblank, strlowercase, ipslerr |
helper procedures | ioipsl-local-support, ioipsl-getin-system | fallback getin 文本预处理和 warning/fatal 错误处理。 |
inithist, inithist_p |
subroutine | inithist-serial-parallel, history-field-registration, leapfrog-p-output-restart | 初始化 instant history 输出;当前串行/root 路径注册 u/v/teta/phi/masse/ps。 |
initdynav, initdynav_p |
subroutine | initdynav-serial-parallel, history-field-registration | 初始化 dynav 输出,注册 averaged u/v/temp/theta/phi/masse/ps。 |
writehist, writehist_p |
subroutine | history-output-serial-parallel, history-field-registration, leapfrog-p-output-restart | 写 instant history;当前串行/root 路径中 tracer 和 phis 写出被注释。 |
writedynav, writedynav_p |
subroutine | history-output-serial-parallel, history-field-registration, leapfrog-p-output-restart | 写 dynav/平均输出;temp=teta*ppk/cpp。 |
bilan_dyn, bilan_dyn_p |
subroutine | bilan_dyn, bilan_dyn_p, leapfrog-p-output-restart | 动力守恒、纬向和通量诊断。 |
initfluxsto, initfluxsto_p |
subroutine | initfluxsto-serial-parallel | flux storage 初始化。 |
fluxstokenc, fluxstokenc_p |
subroutine | fluxstokenc-serial-parallel | offline mass flux history 输出。 |
netcdf95 wrappers |
module/procedures | netcdf95-wrappers, mars-utility-netcdf-helper-use | COMMON NetCDF open/define/read/write helper;handle_err 链只对实际 nf95_* 调用生效,Mars archive utility 直接 NF_* 不进入该链。 |
wxios |
module | wxios, write-field-xios, history-xios-getin-boundary | CPP_XIOS 下的 XIOS context/domain/axis/file/field helper,Mars xios_output_mod 条件经过。 |
wxios_init, wxios_context_init, wxios_domain_param, wxios_domain_param_unstructured, wxios_closedef |
subroutines | wxios | 初始化 XIOS、建立 physics context、定义 regular/unstructured horizontal domain 并关闭 context definition。 |
initialize_xios_output, send_xios_field, update_xios_timestep, xios_is_active_field |
Mars XIOS routines | xios-domain-field-setup, history-xios-getin-boundary | Mars physics XIOS axis/domain/calendar 初始化、字段发送、calendar 更新和 active-field 查询。 |
xios_writefield_nlon, xios_writefield_nlat |
run.def/getin |
xios_writefield | unstructured grid 临时 dump 请求插值到 regular rectilinear domain 时的输出网格大小;任一为 0 时保持 native output。 |
并行符号
| 符号 | 类型 | 页面 | 作用 |
|---|---|---|---|
init_const_mpi |
subroutine | mod-const-mpi, dyn3dpar/gcm | 初始化 COMM_LMDZ 和 MPI datatype。 |
init_parallel |
subroutine | parallel_lmdz | 初始化 MPI/OMP rank、纬向分布和局部范围。 |
SetDistrib |
subroutine | parallel_lmdz, leapfrog-p-distribution-halo, serial-parallel-dynamics | 切换当前 stage 的纬向分布索引;字段搬运需另由 mod_hallo request 完成。 |
exchange_hallo |
subroutine | parallel_lmdz | 简单上下 halo 交换。 |
Register_Hallo |
subroutine | mod_hallo, leapfrog-p-distribution-halo | 注册当前分布的上下 halo send/recv 请求。 |
SendRequest, WaitRequest |
subroutine | mod_hallo, leapfrog-p-distribution-halo | halo/swap 请求发送、等待和解包。 |
Read_distrib, Set_Bands, WriteBands |
subroutine | bands | 读取、派生、写出 band 分布。 |
AdjustBands_caldyn, AdjustBands_vanleer, AdjustBands_dissip, AdjustBands_physic |
subroutine | bands, times | 基于 timing 的 band 自适应调整。 |
配置键和控制量
| 名称 | 来源 | 页面 | 影响 |
|---|---|---|---|
planet_type |
run.def/getin |
dyn3d/conf_gcm, dyn3dpar/conf_gcm, common-state-control-contract | Mars/generic/Earth 分支、日期、restart、默认耗散。 |
day_step |
run.def/getin |
dynamics-time-integration, dynamics-control-logic-gates, iniconst-planetary-constants | dtvr=daysec/day_step,Mars 日期和输出/restart 时间。 |
nday, less1day, fractday, ndynstep |
run.def/getin |
dynamics-time-integration, dynamics-control-logic-gates | 决定 itaufin。 |
iperiod |
run.def/getin |
dynamics-control-logic-gates, leapfrog-time-scheduler, leapfrog-p-time-scheduler | Matsuno 重启周期和平均/纬向诊断周期;并行 leapfrog_p 也用它决定回 label 1 和 dynav/zonal 输出门。 |
iphysiq, iflag_phys, nsplit_phys |
run.def/getin |
dynamics-control-logic-gates, leapfrog-physics-coupling | physics 调用频率、物理开启模式和 subcycle 参数。 |
dissip_period, idissip, vert_prof_dissip |
run.def/getin |
dyn3d/conf_gcm, dyn3dpar/conf_gcm, leapfrog-dissipation-conservation | 耗散门控和垂直剖面。 |
read_start, raz_date, timestart, starttime, ecritstart |
run.def/getin |
restart-io, leapfrog-output-restart, leapfrog-p-output-restart | 初态读取、日期重置和中途 restart。 |
ok_dyn_ins, ok_dyn_ave, ok_dynzon, iecri, periodav |
run.def/getin |
history-xios-getin-boundary, history-field-registration, leapfrog-output-restart, leapfrog-p-output-restart | instant history、dynav 和 zonal/守恒诊断输出。 |
use_filtre_fft, use_mpi_alloc, adjust, offline, ngroup |
run.def/getin |
dyn3dpar/conf_gcm, conf-gcm-serial-parallel-delta, bands, mod_hallo | 串并行配置差异键;串行拒绝 FFT filter,并行读取 FFT/MPI allocation 和 adjust/offline 边界。 |
output_diagfi, outputs_per_sol, callstats, diagsoil |
Mars physics config | history-xios-getin-boundary, restart-io | Mars physics diagfi/stats/soil 输出控制,COMMON 只记录边界。 |
ok_guide |
run.def/getin |
dynamics-time-integration, conf_gcm, guide_mod, guide_p_mod, guide-config-contract, guide-interpolation-pressure | guide/nudging 条件路径;guide_main 是 Earth/IOIPSL 条件调用,Mars/generic ok_guide 另有 relaxetat0 边界。 |
clon, clat, grossismx, grossismy, dzoomx, dzoomy, taux, tauy, fxyhypb |
Mars run.def / COMMON zoom state |
inigeom-zoom-map-contract, dyn3d_common/inigeom | Mars defrun_new 读取或校验 zoom 控制,写入 serre_mod/logic_mod,再由 inigeom 选择 regular 或 hyperbolic zoom 映射并生成 archive/physics 几何。 |
文件和输出名
| 名称 | 类型 | 页面 | 说明 |
|---|---|---|---|
run.def |
config file | common-gcm-mars-run-entry, conf_gcm | GCM 主配置入口。 |
traceur.def |
config file | infotrac-traceur-def | tracer 配置。 |
start.nc |
NetCDF input | dynetat0, restart-io | COMMON 动力初态。 |
restart.nc |
NetCDF output/input | dynredem-restart, leapfrog-p-output-restart, restart-io | COMMON 动力 restart。 |
startfi.nc, restartfi.nc |
NetCDF physics restart | mars-start-restart-archive-boundary, restart-io | Mars physics 初态/restart;字段含义由 MARS physics 定义。 |
start_archive.nc |
Mars archive | mars-start-restart-archive-boundary, mars-utility-netcdf-helper-use | newstart/start2archive 工具链文件;读写由 Mars 侧直接 NF_* API 和 ini_archive/write_archive 完成。 |
start1D.txt, restart1D.txt |
1D text restart | mars-start-restart-archive-boundary, mars-dyn1d-common-forwarding | 1D/testphys1d 接口兼容文件。 |
dyn_hist*, dyn_hist_ave |
IOIPSL history | history-field-registration, history-output-serial-parallel, leapfrog-p-output-restart, restart-io | COMMON 动力 history/dynav 输出文件名、字段注册和写出。 |
diagfi, stats |
Mars physics diagnostics | history-xios-getin-boundary | Mars physics 输出,COMMON 只提供 helper/边界。 |
Bands_*prc.dat |
parallel distribution file | bands, serial-parallel-dynamics | 并行动力 band 分布文件。 |
高优先级符号
| 符号/范围 | 覆盖状态 | 当前可用支撑 |
|---|---|---|
dyn3dpar/index |
已完成 | dyn3dpar/index, serial-parallel-dynamics, dyn3dpar/gcm。 |
vlsplt_p |
已完成 | dyn3dpar/vlsplt_p 已覆盖并行 Van Leer split 主文件页;后续可从 vlspltgen_p 和 vlsplt 串并行差异 进入。 |
leapfrog, leapfrog_nogcm, leapfrog_p |
已完成;已排除;已完成 | dynamics-time-integration、dyn3d/leapfrog、dyn3dpar/leapfrog_p 和 leapfrog-* 细节页。 |
guide_mod, guide_p_mod |
已完成 | guide_mod 和 guide_p_mod 已覆盖串并行主文件页;细节页覆盖配置、读取、压力插值、状态叠加和串并行差异。 |
infotrac |
已完成 | dyn3d_common/infotrac 已覆盖主文件页;细节页覆盖状态、traceur.def、advection、family/isotope 和 Mars 使用关系。 |
calfis_p / 动力-物理接口主题页 |
已完成 | calfis_p, dynphys-interface, serial-parallel-dynamics, calfis。 |
ioipsl_getincom |
已完成 | ioipsl_getincom, ioipsl-getin-system, history-xios-getin-boundary。 |
| 物理侧 transfer 大文件 | 已完成 | mod_phys_lmdz_mpi_transfert, mod_phys_lmdz_transfert_para, mod_phys_lmdz_omp_transfert。MPI/para/OMP 三个主文件页均已完成。 |