MARS 模块化与旧代码清理
页面定位
覆盖未归入特定物理面的 Fortran 模块化、接口显式化和遗留代码删除。
兼容性关注:主要影响编译依赖、符号可见性和维护性;是否改变数值需逐项判断。
本页是 5.3 到 6.3 版本差异详情页,只解释改动职责与影响,不展开逐行代码差异。
变化统计
本主题覆盖 32 个路径事件:新增 4、删除 6、修改 22。
主要变化
libf/dynphy_lonlat/phymars/iniphysiq_mod.F90:为物理初始化增加 startfi 文件名参数,使 3D PEM 等调用路径能选择并正确初始化目标物理状态文件。libf/dynphy_lonlat/phymars/subslope_mola.F90:新增源码文件subslope_mola.F90,其中定义subslope_mola_mod、subslope_mola、mola、getslopes_mola32;该实现进入 6.3。libf/dynphy_lonlat/phymars/xvik.F:把 xvik 重构为可迁入 util 的 CO2 循环检查器:从输入文件读取网格,并支持处理 DYNAMICO 插值输出。libf/phymars/callkeys.h:移除旧配置 include;共享物理开关转入 callkeys_mod。libf/phymars/callkeys_mod.F90:新增配置状态模块,集中保存 conf_phys 读取并由各物理过程使用的开关。libf/phymars/callsedim_mod.F:更新沉降中的父子 tracer 接口:以 nqchildren/qparentmin 替代旧 nqfils/qperemin,并迁移配置与沉降速度模块依赖。libf/phymars/comcstfi_h.F90:重构物理常量状态:将 pi 固定为参数,把行星常量设为 SAVE/THREADPRIVATE,并由 init_comcstfi_h 显式初始化。libf/phymars/compute_dtau_mod.F90:把 tau_pref_target、dtau 和 dustliftday 诊断从 WRITEDIAGFI 迁到 write_output,并改用 callkeys_mod 获取注入参数。libf/phymars/comslope_mod.F90:新增源码文件comslope_mod.F90,其中定义comslope_mod、ini_comslope_h、compute_meshgridavg;该实现进入 6.3。libf/phymars/conc_mod.F90:把按大气组成计算平均摩尔质量、比气体常数、定压比热和导热系数的状态更新集中到 conc_mod,并将模块状态设为 protected。libf/phymars/conf_phys.F:集中重构物理配置:增加输出节奏与诊断、ATKE/重力波、尘埃凝并、古气候、吸附和质量修正等开关及互斥检查,并淘汰旧键。libf/phymars/cvmgp.F:删除仅由已清理 CRAY 分支使用的 cvmgp 辅助函数,当前构建路径不再需要该实现。- 其余 20 项见下表和全量索引。
受影响路径
| 编号 | 5.3 路径 | 6.3 路径 | 类型 | SHA-256 核验 | 改动概述 | 官方记录 |
|---|---|---|---|---|---|---|
M-0093 |
libf/dynphy_lonlat/phymars/iniphysiq_mod.F90 |
libf/dynphy_lonlat/phymars/iniphysiq_mod.F90 |
修改 | 5988c0fbd0c1→1138c149710d(已核验) |
为物理初始化增加 startfi 文件名参数,使 3D PEM 等调用路径能选择并正确初始化目标物理状态文件。 | 官方记录:18/04/2024,JBC |
M-0100 |
— | libf/dynphy_lonlat/phymars/subslope_mola.F90 |
新增 | —→226bd35ebaff(已核验) |
新增源码文件 subslope_mola.F90,其中定义 subslope_mola_mod、subslope_mola、mola、getslopes_mola32;该实现进入 6.3。 |
官方记录:15/04/2024,JBC;16/04/2024,JBC |
M-0102 |
libf/dynphy_lonlat/phymars/xvik.F |
libf/dynphy_lonlat/phymars/xvik.F |
修改 | 44faecdf4ddc→5b824d8c9dd7(已核验) |
把 xvik 重构为可迁入 util 的 CO2 循环检查器:从输入文件读取网格,并支持处理 DYNAMICO 插值输出。 | 官方记录:23/04/2026,JM |
M-0111 |
libf/phymars/callkeys.h |
— | 删除 | c40f3fe65aa1→—(已核验) |
移除旧配置 include;共享物理开关转入 callkeys_mod。 | 官方记录:17/04/2025,EM |
M-0112 |
— | libf/phymars/callkeys_mod.F90 |
新增 | —→a677dc4cddc1(已核验) |
新增配置状态模块,集中保存 conf_phys 读取并由各物理过程使用的开关。 | 官方记录:17/04/2025,EM;11/02/2026,JM |
M-0114 |
libf/phymars/callsedim_mod.F |
libf/phymars/callsedim_mod.F |
修改 | bd8cfe4b239d→e186e671fc31(已核验) |
更新沉降中的父子 tracer 接口:以 nqchildren/qparentmin 替代旧 nqfils/qperemin,并迁移配置与沉降速度模块依赖。 | 官方记录:11/05/2026,EM |
M-0122 |
libf/phymars/comcstfi_h.F90 |
libf/phymars/comcstfi_h.F90 |
修改 | 2b313d7acd17→61be20022e68(已核验) |
重构物理常量状态:将 pi 固定为参数,把行星常量设为 SAVE/THREADPRIVATE,并由 init_comcstfi_h 显式初始化。 | 官方记录:22/10/2023,EM |
M-0124 |
libf/phymars/compute_dtau_mod.F90 |
libf/phymars/compute_dtau_mod.F90 |
修改 | 9e4aa348c240→79d625dfc523(已核验) |
把 tau_pref_target、dtau 和 dustliftday 诊断从 WRITEDIAGFI 迁到 write_output,并改用 callkeys_mod 获取注入参数。 | 官方分组记录:03/04/2023,RV;10/02/2026,EM |
M-0125 |
— | libf/phymars/comslope_mod.F90 |
新增 | —→18de8caba18d(已核验) |
新增源码文件 comslope_mod.F90,其中定义 comslope_mod、ini_comslope_h、compute_meshgridavg;该实现进入 6.3。 |
官方记录:14/02/2023,RV |
M-0127 |
libf/phymars/conc_mod.F90 |
libf/phymars/conc_mod.F90 |
修改 | 3946e24f1570→1a34cac8231f(已核验) |
把按大气组成计算平均摩尔质量、比气体常数、定压比热和导热系数的状态更新集中到 conc_mod,并将模块状态设为 protected。 | 官方记录:26/01/2024,CS |
M-0128 |
libf/phymars/conf_phys.F |
libf/phymars/conf_phys.F |
修改 | 475c8329a0f5→3c23db729324(已核验) |
集中重构物理配置:增加输出节奏与诊断、ATKE/重力波、尘埃凝并、古气候、吸附和质量修正等开关及互斥检查,并淘汰旧键。 | 官方记录:28/09/2023,JN;22/10/2023,EM;14/11/2023,AB;29/11/2023,JL;20/02/2024,LL;06/02/2026,TB;10/02/2026,EM;12/02/2026,JM;25/03/2026,EM;26/03/2026,YCL |
M-0130 |
libf/phymars/cvmgp.F |
— | 删除 | 0edec9490122→—(已核验) |
删除仅由已清理 CRAY 分支使用的 cvmgp 辅助函数,当前构建路径不再需要该实现。 | 官方记录:20/08/2025,EM |
M-0131 |
libf/phymars/cvmgt.F |
libf/phymars/cvmgt.F |
修改 | 19790ad78de3→a0cc3f904f8e(已核验) |
更新源码文件 cvmgt.F:新增 cvmgt_mod。 |
源码差异;未找到对应 Changelog 条目 |
M-0163 |
libf/phymars/getslopes.F90 |
— | 删除 | d98c58cdc63b→—(已核验) |
移除独立 getslopes.F90;坡面读取例程已并入 slope_mod.F90,坡面初始化能力继续保留。 | 官方记录:25/01/2024,JBC |
M-0165 |
libf/phymars/hdo_surfex_mod.F |
libf/phymars/hdo_surfex_mod.F |
修改 | 36ab8a40eb5a→46d6fb09e003(已核验) |
把 HDO 地表分馏的父 tracer 阈值迁到 qparentmin,并改用模块化微物理、配置和统一诊断接口。 | 官方分组记录:03/04/2023,RV;11/05/2026,EM |
M-0173 |
libf/phymars/interp_line.F |
libf/phymars/interp_line.F |
修改 | 58956f643f99→0e5113d860a9(已核验) |
把 interp_line 转为模块化插值接口,保留一维线性插值职责。 | 官方记录:21/08/2025,EM |
M-0191 |
libf/phymars/mucorr.F |
libf/phymars/mucorr.F |
修改 | a5f7c9ef7a1f→ab8d929e3c2a(已核验) |
更新源码文件 mucorr.F:新增 mucorr_mod。 |
官方记录:27/04/2025,EM |
M-0193 |
libf/phymars/newsedim_mod.F |
libf/phymars/newsedim_mod.F |
修改 | 28cf0db28e45→39074db64c74(已核验) |
更新源码文件 newsedim_mod.F:新增模块依赖 vlz_fi_mod。 |
源码差异;未找到对应 Changelog 条目 |
M-0219 |
— | libf/phymars/paleoclimate_mod.F90 |
新增 | —→9166d578fe6a(已核验) |
新增古气候状态模块,集中初始化/释放轨道和地表古气候参数,并将保存状态设为 THREADPRIVATE 以修复 OpenMP 共享问题。 | 官方记录:21/07/2023,EM |
M-0220 |
libf/phymars/param_slope.F90 |
— | 删除 | 8db9ef2b34f0→—(已核验) |
移除独立 param_slope.F90;坡面参数状态已与 getslopes 一并并入 slope_mod.F90。 | 官方记录:25/01/2024,JBC |
M-0226 |
libf/phymars/phyredem.F90 |
libf/phymars/phyredem.F90 |
修改 | b99f69940e3c→0bf33e2243f2(已核验) |
清理 phyredem0 的废弃参数,并扩展 phyredem1 的 restart 状态以传递 qsoil/nqsoil;同时接入坡面、古气候和 tracer 质量修正相关模块。 | 官方记录:23/11/2022,RV;08/11/2023,LL |
M-0227 |
libf/phymars/phys_state_var_init_mod.F90 |
libf/phymars/phys_state_var_init_mod.F90 |
修改 | cb806514d432→ef3139af279d(已核验) |
扩展物理状态初始化接口以接收 startfi 文件名,避免 3D PEM 路径固定读取默认文件。 | 官方记录:18/04/2024,JBC |
M-0228 |
libf/phymars/physiq_mod.F |
libf/phymars/physiq_mod.F |
修改 | 40633d01315e→28362b31a8c7(已核验) |
把物理总调度全面扩展到多坡面,并接入地下水冰、尘埃凝并、非地形重力波/ATKE、热惯量反馈和 tracer 质量修正,同时迁移到统一输出接口。 | 官方记录:23/11/2022,AB;28/04/2023,RV;17/05/2023,AB;29/11/2023,JL;26/01/2024,CS;08/02/2024,JBC;20/02/2024,LL;16/05/2025,JLIU;06/02/2026,TB;09/02/2026,EM;10/02/2026,EM;01/04/2026,YCL |
M-0230 |
libf/phymars/planetwide_mod.F90 |
libf/phymars/planetwide_mod.F90 |
修改 | 84bd913ea2c0→faa2554a4134(已核验) |
用 MESOSCALE 条件编译包围全球 gather/bcast 实现,使中尺度构建不引入该并行汇总模块依赖。 | 源码差异;未找到对应 Changelog 条目 |
M-0233 |
libf/phymars/scopyi.F |
— | 删除 | bb7198e75b79→—(已核验) |
移除源码文件 scopyi.F,其中定义 scopyi;该实现不再随 6.3 分发。 |
官方记录:17/04/2025,EM |
M-0234 |
libf/phymars/sig.F |
— | 删除 | 6d6133effab6→—(已核验) |
移除源码文件 sig.F,其中定义 sig;该实现不再随 6.3 分发。 |
官方记录:27/04/2025,EM |
M-0238 |
libf/phymars/slope_mod.F90 |
libf/phymars/slope_mod.F90 |
修改 | 7da7ba7ebdd9→73c5a3aba122(已核验) |
整合坡面几何与辐射职责:getslopes 由经纬度和地形梯度计算坡度/坡向,param_slope 计算坡面直射、反射和散射太阳辐照度;getslopes 仅支持串行调用。 | 官方记录:25/01/2024,JBC |
M-0245 |
libf/phymars/suaer.F90 |
libf/phymars/suaer.F90 |
修改 | 5da68515340b→7020e4c7158f(已核验) |
更新源码文件 suaer.F90:新增 suaer_mod;新增模块依赖 callkeys_mod、aerave_mod。 |
官方记录:07/05/2025,EM |
M-0247 |
libf/phymars/surfdat_h.F90 |
libf/phymars/surfdat_h.F90 |
修改 | 7d5305398c1a→ec84cd18f286(已核验) |
把地表温度、发射率、热容、通量、水冰帽和地表 tracer 等状态扩展到坡面维,并由 surfdat_h 接管 perennial CO2 ice 及南北半球反照率状态的初始化与释放。 | 官方记录:02/10/2023,LL;15/01/2025,JBC;16/01/2025,JBC |
M-0263 |
libf/phymars/updaterad.F90 |
libf/phymars/updaterad.F90 |
修改 | d33f12f1c2f0→c17c66d5ed90(已核验) |
更新源码文件 updaterad.F90中的 updaterad、updaterice_micro、updaterice_microco2、updaterice_typ:外部模块、例程、调用和 getin 键集合保持不变,差异集中在局部声明、维度或类型约束。 |
源码差异;未找到对应 Changelog 条目 |
M-0269 |
libf/phymars/vlz_fi.F |
libf/phymars/vlz_fi.F |
修改 | 56f1c01678fa→8b8364578b1f(已核验) |
更新源码文件 vlz_fi.F:新增 vlz_fi_mod;移除条件编译边界 CRAY。 |
官方记录:20/08/2025,EM |
M-0281 |
libf/phymars/yamada4.F |
libf/phymars/yamada4.F |
修改 | 791db9c3f0e3→136e5979eb93(已核验) |
更新源码文件 yamada4.F:新增 yamada4_mod。 |
源码差异;未找到对应 Changelog 条目 |
证据边界
- 路径状态和哈希关系来自两棵本地快照的机械比较。
- 官方记录来自 MARS Changelog 增量;COMMON 命中仅表示间接记录。
- 未找到 Changelog 条目不等于改动无意义,只表示没有可直接关联的官方文字记录。
- 本页不把未运行的数值或性能影响写成既定事实。