Implémentation du filtre récursif

Pour utiliser le filtre récursif, un module fortran a été développé. (voir les annexes A, B, C et D). Il permet d'appliquer le filtre à des tableaux de une, deux ou trois dimensions contenant des réels en simple ou double précision. Quelque soit la dimension du tableau, le filtre n'est appliqué que selon sa dernière dimension. Ce n'est donc toujours qu'un filtre récursif monodimensionnel. Dans tout les cas, pour l'utiliser, il suffit de faire :

...
USE filters
...
CALL recursive_filter(A,alpha,n)
...

Où A est le tableau avec les valeurs non filtrées en entrée et avec les valeurs filtrées en sortie, alpha la valeur du paramètre $\alpha$ et n le nombre d'application du filtre.

Par exemple, pour faire un filtre SOAR, il faut faire :

...
USE filters
...
E = 2. * dt**2 / ( 4 * z_tau**2)
alpha = 1 + E - sqrt( E * ( E + 2 ) )
CALL recursive_filter(A,alpha,1)
CALL recursive_filter(A,alpha,2)
...

Pour l'implémentation du filtre récursif, seules les trois premières conditions limites ont été codées. Pour des filtres d'ordre supérieur à trois, les conditions limites appliquées sont celles du filtre récursif d'ordre trois (cf. 2.3).

Nicolas Daget 2006-03-21