Index: /LMDZ5/trunk/libf/dyn3dmem/mod_filtreg_p.F
===================================================================
--- /LMDZ5/trunk/libf/dyn3dmem/mod_filtreg_p.F	(revision 2124)
+++ /LMDZ5/trunk/libf/dyn3dmem/mod_filtreg_p.F	(revision 2125)
@@ -6,8 +6,10 @@
      &     ifiltre, iaire, griscal ,iter)
       USE parallel_lmdz, only : OMP_CHUNK
-      USE mod_filtre_fft_loc
-      USE timer_filtre
-      
-      USE filtreg_mod
+      USE mod_filtre_fft_loc, ONLY: use_filtre_fft, filtre_u_fft,
+     &                              filtre_v_fft, filtre_inv_fft
+      USE timer_filtre, ONLY: init_timer, start_timer, stop_timer
+      
+      USE filtreg_mod, ONLY: matrinvn, matrinvs, matriceun, matriceus,
+     &                       matricevn, matricevs
       
       IMPLICIT NONE
@@ -57,16 +59,15 @@
 #include "coefils.h"
 c
-      INTEGER jjb,jje,ibeg,iend,nlat,nbniv,ifiltre,iter
+      INTEGER,INTENT(IN) :: jjb,jje,ibeg,iend,nlat,nbniv,ifiltre,iter
+      INTEGER,INTENT(IN) :: iaire
+      LOGICAL,INTENT(IN) :: griscal
+      REAL,INTENT(INOUT) ::  champ( iip1,jjb:jje,nbniv)
+      
       INTEGER i,j,l,k
       INTEGER iim2,immjm
       INTEGER jdfil1,jdfil2,jffil1,jffil2,jdfil,jffil
-      
-      REAL  champ( iip1,jjb:jje,nbniv)
-      
-      LOGICAL    griscal
-      INTEGER    hemisph, iaire
-      
+      INTEGER    hemisph
       REAL :: champ_fft(iip1,jjb:jje,nbniv)
-      REAL :: champ_in(iip1,jjb:jje,nbniv)
+!      REAL :: champ_in(iip1,jjb:jje,nbniv)
       
       LOGICAL,SAVE     :: first=.TRUE.
@@ -216,7 +217,7 @@
      &                    champ_fft(1,j,1), iip1*(jje-jjb+1))
 #else
-                     champ_fft(:,j,1:nbniv_loc)=
-     &                    matmul(matrinvn(:,:,j),
-     &                    champ_loc(:iim,j,1:nbniv_loc))
+                     champ_fft(1:iim,j,1:nbniv_loc)=
+     &                    matmul(matrinvn(1:iim,1:iim,j),
+     &                    champ_loc(1:iim,j,1:nbniv_loc))
 #endif
                   ENDDO
@@ -230,7 +231,7 @@
      &                    champ_fft(1,j,1), iip1*(jje-jjb+1))
 #else
-                     champ_fft(:,j,1:nbniv_loc)=
-     &                    matmul(matriceun(:,:,j),
-     &                           champ_loc(:iim,j,1:nbniv_loc))
+                     champ_fft(1:iim,j,1:nbniv_loc)=
+     &                    matmul(matriceun(1:iim,1:iim,j),
+     &                           champ_loc(1:iim,j,1:nbniv_loc))
 #endif
                   ENDDO
@@ -244,7 +245,7 @@
      &                    champ_fft(1,j,1), iip1*(jje-jjb+1))
 #else
-                     champ_fft(:,j,1:nbniv_loc)=
-     &                    matmul(matricevn(:,:,j),           
-     &                           champ_loc(:iim,j,1:nbniv_loc))
+                     champ_fft(1:iim,j,1:nbniv_loc)=
+     &                    matmul(matricevn(1:iim,1:iim,j),           
+     &                           champ_loc(1:iim,j,1:nbniv_loc))
 #endif
                   ENDDO
@@ -262,7 +263,7 @@
      &                    champ_fft(1,j,1), iip1*(jje-jjb+1))
 #else
-                     champ_fft(:,j,1:nbniv_loc)=
-     &                    matmul(matrinvs(:,:,j-jfiltsu+1),
-     &                           champ_loc(:iim,j,1:nbniv_loc))
+                     champ_fft(1:iim,j,1:nbniv_loc)=
+     &                    matmul(matrinvs(1:iim,1:iim,j-jfiltsu+1),
+     &                           champ_loc(1:iim,j,1:nbniv_loc))
 #endif
                   ENDDO
@@ -277,7 +278,7 @@
      &                    champ_fft(1,j,1), iip1*(jje-jjb+1))
 #else
-                     champ_fft(:,j,1:nbniv_loc)=
-     &                    matmul(matriceus(:,:,j-jfiltsu+1),
-     &                           champ_loc(:iim,j,1:nbniv_loc))
+                     champ_fft(1:iim,j,1:nbniv_loc)=
+     &                    matmul(matriceus(1:iim,1:iim,j-jfiltsu+1),
+     &                           champ_loc(1:iim,j,1:nbniv_loc))
 #endif
                   ENDDO
@@ -292,7 +293,7 @@
      &                    champ_fft(1,j,1), iip1*(jje-jjb+1))
 #else
-                     champ_fft(:,j,1:nbniv_loc)=
-     &                    matmul(matricevs(:,:,j-jfiltsv+1),
-     &                           champ_loc(:iim,j,1:nbniv_loc))
+                     champ_fft(1:iim,j,1:nbniv_loc)=
+     &                    matmul(matricevs(1:iim,1:iim,j-jfiltsv+1),
+     &                           champ_loc(1:iim,j,1:nbniv_loc))
 #endif
                   ENDDO
@@ -344,4 +345,5 @@
             DO l = 1, nbniv
                DO j = jdfil,jffil
+                  ! add redundant longitude
                   champ( iip1,j,l ) = champ( 1,j,l )
                ENDDO
@@ -406,4 +408,5 @@
                DO j=jdfil,jffil
 !            champ_FFT( iip1,j,l ) = champ_FFT( 1,j,l )
+                  ! add redundant longitude
                   champ( iip1,j,l ) = champ( 1,j,l )
                ENDDO
