Index: LMDZ4/trunk/libf/dyn3d/conf_gcm.F
===================================================================
--- LMDZ4/trunk/libf/dyn3d/conf_gcm.F	(revision 1417)
+++ LMDZ4/trunk/libf/dyn3d/conf_gcm.F	(revision 1418)
@@ -54,5 +54,5 @@
       LOGICAL  fxyhypbb, ysinuss
       INTEGER i
-      
+      LOGICAL use_filtre_fft
 c
 c  -------------------------------------------------------------------
@@ -795,4 +795,19 @@
       CALL getin('ok_dyn_ave',ok_dyn_ave) 
 
+!Config  Key  = use_filtre_fft
+!Config  Desc = flag d'activation des FFT pour le filtre
+!Config  Def  = false
+!Config  Help = permet d'activer l'utilisation des FFT pour effectuer
+!Config         le filtrage aux poles.
+! Le filtre fft n'est pas implemente dans dyn3d 
+      use_filtre_fft=.FALSE.
+      CALL getin('use_filtre_fft',use_filtre_fft)
+
+      IF (use_filtre_fft) THEN
+        write(lunout,*)'STOP !!!'
+        write(lunout,*)'use_filtre_fft n est pas implemente dans dyn3d'
+        STOP
+      ENDIF
+      
 !Config key = ok_strato
 !Config  Desc = activation de la version strato
Index: LMDZ4/trunk/libf/dyn3d/pres2lev.F
===================================================================
--- LMDZ4/trunk/libf/dyn3d/pres2lev.F	(revision 1417)
+++ 	(revision )
@@ -1,84 +1,0 @@
-! $Id$
-!
-c******************************************************
-      SUBROUTINE   pres2lev(varo,varn,lmo,lmn,po,pn,
-     %                      ni,nj,ok_invertp)
-c
-c interpolation lineaire pour passer
-c a une nouvelle discretisation verticale pour
-c les variables de GCM
-c Francois Forget (01/1995)
-c MOdif remy roca 12/97 pour passer de pres2sig
-c Modif F.Codron 07/08 po en 3D
-c**********************************************************
-
-      IMPLICIT NONE
-
-c   Declarations:
-c ==============
-c
-c  ARGUMENTS
-c  """""""""
-       LOGICAL, INTENT(IN) :: ok_invertp
-       INTEGER, INTENT(IN) :: lmo ! dimensions ancienne couches
-       INTEGER, INTENT(IN) :: lmn ! dimensions nouvelle couches
-       INTEGER lmomx ! dimensions ancienne couches
-       INTEGER lmnmx ! dimensions nouvelle couches
-
-       parameter(lmomx=10000,lmnmx=10000)
-
-        real, INTENT(IN) :: po(ni,nj,lmo) ! niveau de pression ancienne grille
-        real, INTENT(IN) :: pn(ni,nj,lmn) ! niveau de pression nouvelle grille
-
-       INTEGER, INTENT(IN) :: ni,nj ! nombre de point horizontale
-
-       REAL, INTENT(IN)  :: varo(ni,nj,lmo) ! var dans l'ancienne grille
-       REAL, INTENT(OUT) :: varn(ni,nj,lmn) ! var dans la nouvelle grille
-
-       real zvaro(lmomx),zpo(lmomx)
-
-c Autres variables
-c """"""""""""""""
-       INTEGER n, ln ,lo, i, j, Nhoriz
-       REAL coef
-
-c run
-c ====
-        do i=1,ni
-        do j=1,nj
-! Inversion de l'ordre des niveaux verticaux
-          IF (ok_invertp) THEN
-           do lo=1,lmo
-              zpo(lo)=po(i,j,lmo+1-lo)
-              zvaro(lo)=varo(i,j,lmo+1-lo)
-           enddo
-          ELSE
-           do lo=1,lmo
-              zpo(lo)=po(i,j,lo)
-              zvaro(lo)=varo(i,j,lo)
-           enddo
-          ENDIF 
-
-           do ln=1,lmn
-              if (pn(i,j,ln).ge.zpo(1))then
-                 varn(i,j,ln) =  zvaro(1)
-              else if (pn(i,j,ln).le.zpo(lmo)) then
-                 varn(i,j,ln) =  zvaro(lmo)
-              else
-                 do lo=1,lmo-1 
-                    if ( (pn(i,j,ln).le.zpo(lo)).and.
-     &                 (pn(i,j,ln).gt.zpo(lo+1)) )then
-                       coef=(pn(i,j,ln)-zpo(lo))
-     &                 /(zpo(lo+1)-zpo(lo))
-                       varn(i,j,ln)=zvaro(lo)
-     &                 +coef*(zvaro(lo+1)-zvaro(lo))
-c       print*,'pn(',ln,')=',pn(i,j,ln),varn(i,j,ln)
-                    end if
-                 enddo           
-              endif
-           enddo
-
-        enddo
-        enddo
-      return
-      end    
Index: LMDZ4/trunk/libf/dyn3d/pres2lev.F90
===================================================================
--- LMDZ4/trunk/libf/dyn3d/pres2lev.F90	(revision 1418)
+++ LMDZ4/trunk/libf/dyn3d/pres2lev.F90	(revision 1418)
@@ -0,0 +1,74 @@
+! $Id$
+!
+!******************************************************
+SUBROUTINE pres2lev(varo,varn,lmo,lmn,po,pn,ni,nj,ok_invertp)
+!
+! interpolation lineaire pour passer
+! a une nouvelle discretisation verticale pour
+! les variables de GCM
+! Francois Forget (01/1995)
+! MOdif remy roca 12/97 pour passer de pres2sig
+! Modif F.Codron 07/08 po en 3D
+!**********************************************************
+
+  IMPLICIT NONE
+
+!   Declarations:
+! ==============
+!
+!  ARGUMENTS
+!  """""""""
+  LOGICAL, INTENT(IN) :: ok_invertp
+  INTEGER, INTENT(IN) :: lmo ! dimensions ancienne couches
+  INTEGER, INTENT(IN) :: lmn ! dimensions nouvelle couches
+  
+  REAL, INTENT(IN) :: po(ni*nj,lmo) ! niveau de pression ancienne grille
+  REAL, INTENT(IN) :: pn(ni*nj,lmn) ! niveau de pression nouvelle grille
+
+  INTEGER, INTENT(IN) :: ni,nj ! nombre de point horizontal
+
+  REAL, INTENT(IN)  :: varo(ni*nj,lmo) ! var dans l'ancienne grille
+  REAL, INTENT(OUT) :: varn(ni*nj,lmn) ! var dans la nouvelle grille
+
+  REAL :: zvaro(ni*nj,lmo),zpo(ni*nj,lmo)
+
+! Autres variables
+! """"""""""""""""
+  INTEGER ::  ln ,lo, k
+  REAL    :: coef
+
+
+! Inversion de l'ordre des niveaux verticaux
+  IF (ok_invertp) THEN
+    DO lo=1,lmo
+      DO k=1,ni*nj
+        zpo(k,lo)=po(k,lmo+1-lo)
+        zvaro(k,lo)=varo(k,lmo+1-lo)
+      ENDDO
+    ENDDO
+  ELSE
+    DO lo=1,lmo
+      DO k=1,ni*nj
+        zpo(k,lo)=po(k,lo)
+        zvaro(k,lo)=varo(k,lo)
+      ENDDO
+    ENDDO
+  ENDIF 
+
+  DO ln=1,lmn
+    DO lo=1,lmo-1
+      DO k=1,ni*nj
+        IF (pn(k,ln) >= zpo(k,1) ) THEN
+          varn(k,ln) = zvaro(k,1)
+        ELSE IF (pn(k,ln) <= zpo(k,lmo)) THEN
+          varn(k,ln) = zvaro(k,lmo)
+        ELSE IF ( pn(k,ln) <= zpo(k,lo) .AND. pn(k,ln) > zpo(k,lo+1) ) THEN
+          coef = (pn(k,ln)-zpo(k,lo)) / (zpo(k,lo+1)-zpo(k,lo))
+          varn(k,ln) = zvaro(k,lo) + coef*(zvaro(k,lo+1)-zvaro(k,lo))
+        ENDIF
+         
+      ENDDO  
+    ENDDO
+  ENDDO                
+
+END SUBROUTINE pres2lev    
Index: LMDZ4/trunk/libf/dyn3dpar/guide_p_mod.F90
===================================================================
--- LMDZ4/trunk/libf/dyn3dpar/guide_p_mod.F90	(revision 1417)
+++ LMDZ4/trunk/libf/dyn3dpar/guide_p_mod.F90	(revision 1418)
@@ -390,9 +390,9 @@
               stop
           ELSE
-              IF (guide_v) vnat1(jjb_v:jje_v,:,:)=vnat2(jjb_v:jje_v,:,:)
-              IF (guide_u) unat1(jjb_u:jje_u,:,:)=unat2(jjb_u:jje_u,:,:)
-              IF (guide_T) tnat1(jjb_u:jje_u,:,:)=tnat2(jjb_u:jje_u,:,:)
-              IF (guide_Q) qnat1(jjb_u:jje_u,:,:)=qnat2(jjb_u:jje_u,:,:)
-              IF (guide_P.OR.guide_modele) psnat1(jjb_u:jje_u,:)=psnat2(jjb_u:jje_u,:)
+              IF (guide_v) vnat1(:,jjb_v:jje_v,:)=vnat2(:,jjb_v:jje_v,:)
+              IF (guide_u) unat1(:,jjb_u:jje_u,:)=unat2(:,jjb_u:jje_u,:)
+              IF (guide_T) tnat1(:,jjb_u:jje_u,:)=tnat2(:,jjb_u:jje_u,:)
+              IF (guide_Q) qnat1(:,jjb_u:jje_u,:)=qnat2(:,jjb_u:jje_u,:)
+              IF (guide_P.OR.guide_modele) psnat1(:,jjb_u:jje_u)=psnat2(:,jjb_u:jje_u)
               step_rea=step_rea+1
               itau_test=itau
Index: LMDZ4/trunk/libf/dyn3dpar/pres2lev.F90
===================================================================
--- LMDZ4/trunk/libf/dyn3dpar/pres2lev.F90	(revision 1417)
+++ LMDZ4/trunk/libf/dyn3dpar/pres2lev.F90	(revision 1418)
@@ -60,5 +60,5 @@
       DO k=1,ni*nj
         IF (pn(k,ln) >= zpo(k,1) ) THEN
-          varn(k,ln) = varo(k,1)
+          varn(k,ln) = zvaro(k,1)
         ELSE IF (pn(k,ln) <= zpo(k,lmo)) THEN
           varn(k,ln) = zvaro(k,lmo)
Index: LMDZ4/trunk/libf/phylmd/aeropt_5wv.F90
===================================================================
--- LMDZ4/trunk/libf/phylmd/aeropt_5wv.F90	(revision 1417)
+++ LMDZ4/trunk/libf/phylmd/aeropt_5wv.F90	(revision 1418)
@@ -850,11 +850,25 @@
 !  ENDDO
 
-   DO i=1, klon
-      od550aer(i)=SUM(tausum(i,2,:))
-      od865aer(i)=SUM(tausum(i,5,:))
-      DO k=1, KLEV
-         ec550aer(i,k)=SUM(tau(i,k,2,:))/dh(i,k)
-      END DO	
-   END DO
+  DO i=1, klon
+     od550aer(i)=0.
+     DO m=1,naero_spc
+        od550aer(i)=od550aer(i)+tausum(i,2,m)
+     END DO
+  END DO
+  DO i=1, klon
+     od865aer(i)=0.
+     DO m=1,naero_spc
+        od865aer(i)=od865aer(i)+tausum(i,5,m)
+     END DO
+  END DO
+  DO i=1, klon
+     DO k=1, KLEV
+        ec550aer(i,k)=0.
+        DO m=1,naero_spc
+           ec550aer(i,k)=ec550aer(i,k)+tau(i,k,2,m)/dh(i,k)
+        END DO
+     END DO
+  END DO
+  
    od550lt1aer(:)=tausum(:,2,id_ASSO4M)+tausum(:,2,id_ASBCM)+tausum(:,2,id_AIBCM)+ &
 	tausum(:,2,id_ASPOMM)+tausum(:,2,id_AIPOMM)+tausum(:,2,id_ASSSM)+ &
Index: LMDZ4/trunk/libf/phylmd/calcul_STDlev.h
===================================================================
--- LMDZ4/trunk/libf/phylmd/calcul_STDlev.h	(revision 1417)
+++ LMDZ4/trunk/libf/phylmd/calcul_STDlev.h	(revision 1418)
@@ -128,5 +128,5 @@
 cIM on somme les valeurs toutes les freq_calNMC secondes
 c
-       CALL undefSTD(itap,freq_calNMC)
+       CALL undefSTD(itap,freq_calNMC, read_climoz)
 c
 cIM on moyenne a la fin du mois ou du jour (toutes les freq_outNMC secondes)
Index: LMDZ4/trunk/libf/phylmd/undefSTD.F
===================================================================
--- LMDZ4/trunk/libf/phylmd/undefSTD.F	(revision 1417)
+++ LMDZ4/trunk/libf/phylmd/undefSTD.F	(revision 1418)
@@ -2,5 +2,5 @@
 ! $Id$
 !
-      SUBROUTINE undefSTD(itap,freq_calNMC)
+      SUBROUTINE undefSTD(itap,freq_calNMC, read_climoz)
       USE netcdf
       USE dimphy
@@ -43,4 +43,5 @@
       INTEGER i, k, n
       REAL freq_calNMC(nout)
+      INTEGER read_climoz
 c
 c variables Output
@@ -85,5 +86,7 @@
            T2sumSTD(i,k,n)=T2sumSTD(i,k,n)+T2STD(i,k)
            O3sumSTD(i,k,n)=O3sumSTD(i,k,n)+O3STD(i,k)
-           O3daysumSTD(i,k,n)=O3daysumSTD(i,k,n)+O3daySTD(i,k)
+           IF (read_climoz==2) 
+     &          O3daysumSTD(i,k,n)=O3daysumSTD(i,k,n)+O3daySTD(i,k)
+
           ENDIF 
          ENDDO !i
