符号索引

源码范围:LMDZ.COMMON-6.3\LMDZ.COMMON,仅索引 Mars run 会经过、条件经过或接口兼容的 COMMON 符号与配置入口。 Mars 运行参与度:接口兼容。本页是反查入口,不表示每个符号在每种 Mars 运行形态下都必经。

使用方法

入口程序和工具链

符号/入口 类型 页面 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_pcall_physiqaddfi/addfi_pphy_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、nogcmnewstart/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/lafinTrue_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 dqiapptrac 和可选守恒重标定。
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 段用 dtphysiflag_phys==2 分支用 dtvr
vlsplt subroutine dyn3d/vlsplt, vlsplt-serial-family-tracers 串行 Van Leer split transport,advtraciadv=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/Ratiow(子)=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 输送格式,串行 advtraciadv=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 三维输送内核,串行 advtraciadv=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)+1dtbon=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 普通滤波矩阵,供 filtregfiltreg_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.defz2sig.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_pvlsplt 串并行差异 进入。
leapfrog, leapfrog_nogcm, leapfrog_p 已完成;已排除;已完成 dynamics-time-integrationdyn3d/leapfrogdyn3dpar/leapfrog_pleapfrog-* 细节页。
guide_mod, guide_p_mod 已完成 guide_modguide_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 三个主文件页均已完成。