滤波辅助例程和系数组页
输入范围
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_mod 或 filtreg_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:
- include
dimensions.h、paramet.h、comgeom.h、coefils.h。 - 构造 U/V 网格相关矩阵。
- 调用
jacobi求特征向量和特征值。 - 调用
acc调整特征向量。 - 调用
eigen_sort使特征值/特征向量顺序稳定。
coefils.h 通过 common block 保存 jfiltnu/jfiltsu/jfiltnv/jfiltsv、sddu/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。
待确认
eigen.F中旧特征处理路径目前是否仍被实际调用,当前inifgn主路径使用jacobi和eigen_sort。