重网格和插值工具组页

输入范围

LMDZ.COMMON-6.3\LMDZ.COMMON\libf\misc\regr1_lint_m.F90
LMDZ.COMMON-6.3\LMDZ.COMMON\libf\misc\regr3_lint_m.F90
LMDZ.COMMON-6.3\LMDZ.COMMON\libf\misc\regr1_conserv_m.F90
LMDZ.COMMON-6.3\LMDZ.COMMON\libf\misc\interpolation.F90

Mars 运行参与度:接口兼容/条件经过。本批源码检索未发现 Mars phymars 直接调用这些模块;它们为 COMMON 其他通用插值和后处理路径提供接口。

模块清单

文件 行数 符号 作用
regr1_lint_m.F90 98 regr1_lint, regr11_lint, regr12_lint 一维坐标上的线性插值,支持一列或二维值场。
regr3_lint_m.F90 100 regr3_lint, regr33_lint, regr34_lint 沿第三维重采样 3D/4D 数组。
regr1_conserv_m.F90 358 regr1_conserv, regr11/12/13/14_conserv 按 cell bounds 做分段线性保守平均,可选 slope。
interpolation.F90 138 locate, hunt Numerical Recipes 风格的二分定位和带初值的 hunt 定位。

线性插值

regr1_lintregr3_lint 的核心模式相同:

  1. 输入源点 xs、源值 vs 和目标点 xt
  2. 对每个目标点调用定位逻辑,找到包围区间。
  3. 用线性权重在相邻两个源值之间插值。
  4. 目标点在边界处按源码中的端点规则处理。

regr3_lint 固定沿第三维插值,保留前两维或前三维的其他索引。

保守重采样

regr1_conserv 假设 xsxt 描述 cell bounds。每个目标 cell:

  1. 从当前源 cell 起步。
  2. 若目标 cell 完全落在当前源 cell 内,直接用 mean_lin
  3. 若跨多个源 cell,则逐段累计每个交叠区间的线性均值。
  4. 若提供 slopemean_lin 使用源 cell 平均值加线性斜率;否则退化为 piecewise constant。

复现要点

待确认

相关页面