PCHIP/spline helper 组页
输入范围
LMDZ.COMMON-6.3\LMDZ.COMMON\libf\misc\pchsp.F
LMDZ.COMMON-6.3\LMDZ.COMMON\libf\misc\pchsp_95_m.F90
LMDZ.COMMON-6.3\LMDZ.COMMON\libf\misc\pchfe.F
LMDZ.COMMON-6.3\LMDZ.COMMON\libf\misc\pchfe_95_m.F90
LMDZ.COMMON-6.3\LMDZ.COMMON\libf\misc\pchdf.F
LMDZ.COMMON-6.3\LMDZ.COMMON\libf\misc\chfev.F
Mars 运行参与度:接口兼容/条件经过。这些是 SLATEC PCHIP 数值 helper;本批检索未确认 Mars 标准主链直接调用,但它们可被 COMMON 插值工具或后处理路径复用。
文件清单
| 文件 | 行数 | 作用 |
|---|---|---|
pchsp.F |
388 | 计算 shape-preserving cubic Hermite spline 的导数。 |
pchsp_95_m.F90 |
116 | F90 wrapper,提供数组接口和边界条件封装。 |
pchfe.F |
308 | 在目标点上评价 PCHIP/Hermite 插值函数。 |
pchfe_95_m.F90 |
76 | F90 wrapper,返回目标点值数组。 |
pchdf.F |
106 | 计算相邻点的一阶差分/导数辅助。 |
chfev.F |
155 | 在单个 Hermite 区间内评价 cubic 函数。 |
计算流程
pchsp根据输入节点x、函数值f和边界条件ibeg/iend构造节点导数d。- 内部差分由
pchdf辅助生成,单调区间会限制导数以避免过冲。 pchfe对目标点xe定位到对应区间,调用chfev评价 Hermite cubic。- F90 wrapper 负责把 Fortran 90 数组传入旧 F77 子程序,并用返回
ierr表示边界或输入错误。
复现要点
x必须单调,且目标点应落在可评价范围;越界行为由pchfe的错误码和警告逻辑控制。- PCHIP 保形目标是保留单调性,不等同于普通三次样条的全局光滑性。
- wrapper 不隐藏底层错误码;调用方需要检查或传播
ierr。
待确认
- 哪些 COMMON/Mars 后处理或初始化路径实际使用 PCHIP,需要由后续覆盖检查补充使用位置索引。