滤波主流程和并行滤波调用组页

输入范围

LMDZ.COMMON-6.3\LMDZ.COMMON\libf\filtrez\filtreg.F
LMDZ.COMMON-6.3\LMDZ.COMMON\libf\filtrez\filtreg_mod.F90
LMDZ.COMMON-6.3\LMDZ.COMMON\libf\dyn3dpar\filtreg_p.F

Mars 运行参与度:条件经过。动力滤波开启时,串行路径使用 filtreg,并行路径使用 filtreg_p;是否启用 FFT 由 use_filtre_fft 和配置读取决定。

文件清单

文件 行数 主要符号 作用
filtreg.F 322 filtreg operators, filtreg 串行场滤波主例程。
filtreg_mod.F90 559 filtreg_mod, inifilr 初始化滤波矩阵、特征函数和 FFT 滤波系数。
dyn3dpar/filtreg_p.F 437 filtreg_p 并行子域上的滤波主例程,带 OMP chunk 和 timer。

初始化

filtreg_mod 保存 matriceun/matriceus/matricevn/matricevs/matrinvn/matrinvs 等滤波矩阵。初始化时:

  1. 调用 inifgn 计算离散 Laplacian 的特征函数和特征值。
  2. jfiltnu/jfiltsu/jfiltnv/jfiltsv 检查南北半球滤波纬带。
  3. 使用 MXMSGEMM 构造 U/V 和 inverse 滤波矩阵。
  4. use_filtre_fft,调用 Init_filtre_fft 和 local 版本初始化 FFT 系数。

串行 filtreg

filtreg(champ,nlat,nbniv,ifiltre,iaire,...) 根据 ifiltreiaire 选择 U/V 或 inverse 矩阵,对每个需滤波纬带做矩阵乘法。ifiltre 不是 2 或 -2 时打印错误;源码注释提示某些模式应使用旧滤波路径。

并行 filtreg_p

并行版本额外接收 ibeg/iend/nlat 子域信息:

复现要点

待确认

相关页面