Index: LMDZ5/branches/testing/libf/dyn3dmem/mod_filtreg_p.F
===================================================================
--- LMDZ5/branches/testing/libf/dyn3dmem/mod_filtreg_p.F	(revision 1669)
+++ LMDZ5/branches/testing/libf/dyn3dmem/mod_filtreg_p.F	(revision 1707)
@@ -210,24 +210,39 @@
                IF( ifiltre.EQ.-2 )   THEN
                   DO j = jdfil,jffil
-                     CALL DGEMM("N", "N", iim, nbniv_loc, iim, 1.0, 
+#ifdef BLAS
+                     CALL SGEMM("N", "N", iim, nbniv_loc, iim, 1.0, 
      &                    matrinvn(1,1,j), iim, 
      &                    champ_loc(1,j,1), iip1*(jje-jjb+1), 0.0,
      &                    champ_fft(1,j,1), iip1*(jje-jjb+1))
+#else
+                     champ_fft(:,j,:)=
+     &                    matmul(matrinvn(:,:,j),champ_loc(:iim,j,:))
+#endif
                   ENDDO
                   
                ELSE IF ( griscal )     THEN
                   DO j = jdfil,jffil
-                     CALL DGEMM("N", "N", iim, nbniv_loc, iim, 1.0, 
+#ifdef BLAS
+                     CALL SGEMM("N", "N", iim, nbniv_loc, iim, 1.0, 
      &                    matriceun(1,1,j), iim, 
      &                    champ_loc(1,j,1), iip1*(jje-jjb+1), 0.0,
      &                    champ_fft(1,j,1), iip1*(jje-jjb+1))
+#else
+                     champ_fft(:,j,:)=
+     &                    matmul(matriceun(:,:,j),champ_loc(:iim,j,:))
+#endif
                   ENDDO
                   
                ELSE 
                   DO j = jdfil,jffil
-                     CALL DGEMM("N", "N", iim, nbniv_loc, iim, 1.0, 
+#ifdef BLAS
+                     CALL SGEMM("N", "N", iim, nbniv_loc, iim, 1.0, 
      &                    matricevn(1,1,j), iim, 
      &                    champ_loc(1,j,1), iip1*(jje-jjb+1), 0.0, 
      &                    champ_fft(1,j,1), iip1*(jje-jjb+1))
+#else
+                     champ_fft(:,j,:)=
+     &                    matmul(matricevn(:,:,j),champ_loc(:iim,j,:))
+#endif
                   ENDDO
                   
@@ -238,8 +253,14 @@
                IF( ifiltre.EQ.-2 )   THEN
                   DO j = jdfil,jffil
-                     CALL DGEMM("N", "N", iim, nbniv_loc, iim, 1.0, 
+#ifdef BLAS
+                     CALL SGEMM("N", "N", iim, nbniv_loc, iim, 1.0, 
      &                    matrinvs(1,1,j-jfiltsu+1), iim, 
      &                    champ_loc(1,j,1), iip1*(jje-jjb+1), 0.0, 
      &                    champ_fft(1,j,1), iip1*(jje-jjb+1))
+#else
+                     champ_fft(:,j,:)=
+     &                    matmul(matrinvs(:,:,j-jfiltsu+1),
+     &                           champ_loc(:iim,j,:))
+#endif
                   ENDDO
                   
@@ -247,8 +268,14 @@
                   
                   DO j = jdfil,jffil
-                     CALL DGEMM("N", "N", iim, nbniv_loc, iim, 1.0, 
+#ifdef BLAS
+                     CALL SGEMM("N", "N", iim, nbniv_loc, iim, 1.0, 
      &                    matriceus(1,1,j-jfiltsu+1), iim, 
      &                    champ_loc(1,j,1), iip1*(jje-jjb+1), 0.0, 
      &                    champ_fft(1,j,1), iip1*(jje-jjb+1))
+#else
+                     champ_fft(:,j,:)=
+     &                    matmul(matriceus(:,:,j-jfiltsu+1),
+     &                           champ_loc(:iim,j,:))
+#endif
                   ENDDO
                   
@@ -256,8 +283,14 @@
                   
                   DO j = jdfil,jffil
-                     CALL DGEMM("N", "N", iim, nbniv_loc, iim, 1.0, 
+#ifdef BLAS
+                     CALL SGEMM("N", "N", iim, nbniv_loc, iim, 1.0, 
      &                    matricevs(1,1,j-jfiltsv+1), iim, 
      &                    champ_loc(1,j,1), iip1*(jje-jjb+1), 0.0, 
      &                    champ_fft(1,j,1), iip1*(jje-jjb+1))
+#else
+                     champ_fft(:,j,:)=
+     &                    matmul(matricevs(:,:,j-jfiltsv+1),
+     &                           champ_loc(:iim,j,:))
+#endif
                   ENDDO
                   
@@ -269,5 +302,5 @@
                
 c     !-------------------------------------!
-c     ! Dés-agregation des niveau verticaux !
+c     ! DÃ©s-agregation des niveau verticaux !
 c     ! uniquement necessaire pour une      !
 c     ! execution OpenMP                    !
@@ -402,2 +435,3 @@
       END SUBROUTINE filtreg_p
       END MODULE mod_filtreg_p
+
