通用数值 helper 组页

输入范围

LMDZ.COMMON-6.3\LMDZ.COMMON\libf\misc\slopes_m.F90
LMDZ.COMMON-6.3\LMDZ.COMMON\libf\misc\simple.F90
LMDZ.COMMON-6.3\LMDZ.COMMON\libf\misc\coefpoly_m.F90
LMDZ.COMMON-6.3\LMDZ.COMMON\libf\misc\arth_m.F90

Mars 运行参与度:条件经过/接口兼容simple.F90 是 NetCDF95 wrapper 的底层之一;slopes_mcoefpoly_marth_m 为通用数值工具,是否经过 Mars 标准运行取决于具体调用方。

模块清单

文件 行数 符号 作用
slopes_m.F90 226 slopes, slopes1/2/3/4 对 1D 到 4D cell average 沿第一维计算 Van Leer 限制斜率。
simple.F90 361 nf95_open/create/def_dim/... NetCDF common simple wrappers;详细见 NetCDF95 页面。
coefpoly_m.F90 52 coefpoly 由端点函数值和导数构造三次多项式系数 a0:a3
arth_m.F90 82 arth generic 生成 real/integer arithmetic progression。

slopes 算法

  1. 输入 cell average f 和 cell bounds x
  2. 计算 cell center xc(i)=(x(i)+x(i+1))/2
  3. 两端斜率设为 0。
  4. 内点若是局部极大或极小,斜率设为 0,避免产生新极值。
  5. 否则先用中心差分算二阶斜率,再用左右 cell 差分约束其绝对值。

该接口对 2D/3D/4D 数组只沿第一维做同样计算,其余维度作为批量索引。

其他 helper

待确认

相关页面