滤波辅助例程和系数组页

输入范围

LMDZ.COMMON-6.3\LMDZ.COMMON\libf\filtrez\acc.F
LMDZ.COMMON-6.3\LMDZ.COMMON\libf\filtrez\inifgn.F
LMDZ.COMMON-6.3\LMDZ.COMMON\libf\filtrez\timer_filtre.F90
LMDZ.COMMON-6.3\LMDZ.COMMON\libf\filtrez\eigen.F
LMDZ.COMMON-6.3\LMDZ.COMMON\libf\filtrez\eigen_sort.F
LMDZ.COMMON-6.3\LMDZ.COMMON\libf\filtrez\jacobi.F90
LMDZ.COMMON-6.3\LMDZ.COMMON\libf\filtrez\coefils.h

Mars 运行参与度:条件经过。这些 helper 是动力滤波初始化和诊断计时的支撑,随 filtreg_modfiltreg_p 间接经过。

文件清单

文件 行数 作用
inifgn.F 105 构造滤波所需离散 Laplacian 特征函数/特征值。
acc.F 22 对向量做累加/归一化式辅助处理。
eigen.F 33 旧特征处理辅助。
eigen_sort.F 32 对特征值和特征向量排序。
jacobi.F90 106 Jacobi 对称矩阵特征求解。
timer_filtre.F90 33 Init_timer/start_timer/stop_timer/Print_filtre_timer
coefils.h 11 COMMON/coefils/ 保存滤波纬带和权重数组。

初始化链

filtreg_mod 调用 inifgn(eignvl)inifgn

  1. include dimensions.hparamet.hcomgeom.hcoefils.h
  2. 构造 U/V 网格相关矩阵。
  3. 调用 jacobi 求特征向量和特征值。
  4. 调用 acc 调整特征向量。
  5. 调用 eigen_sort 使特征值/特征向量顺序稳定。

coefils.h 通过 common block 保存 jfiltnu/jfiltsu/jfiltnv/jfiltsvsddu/sddv 及对应 inverse 权重,是滤波矩阵构造和主滤波例程共享的状态。

更细的 filtreg.F 施加流程、ifiltre/iaire/griscal 约定、inifgn -> jacobi/acc/eigen_sort 特征基构造见 filtreg-operators

计时

timer_filtre 使用 cpu_time 保存 last_time 和累计耗时。并行 filtreg_p 在进入滤波前 start_timer,结束时 stop_timer

待确认

相关页面