Index: trunk/LMDZ.PLUTO/libf/phypluto/callcorrk.F90
===================================================================
--- trunk/LMDZ.PLUTO/libf/phypluto/callcorrk.F90	(revision 4133)
+++ trunk/LMDZ.PLUTO/libf/phypluto/callcorrk.F90	(revision 4144)
@@ -12,5 +12,6 @@
           fluxabs_sw,fluxtop_dn,                               &
           OLR_nu,OSR_nu,GSR_nu,                                &
-          int_dtaui,int_dtauv,int_dtauv_aer,int_wbarv_aer,     &
+          int_dtaui,int_dtauv,                                 &
+          int_dtauv_aer,int_dtaui_aer,int_wbarv_aer,           &
           tau_col,firstcall,lastcall)
 
@@ -106,4 +107,5 @@
       REAL,INTENT(OUT) :: int_dtaui(ngrid,nlayer,L_NSPECTI)              ! IR optical thickness of layers within narrowbands for diags ().
       REAL,INTENT(OUT) :: int_dtauv(ngrid,nlayer,L_NSPECTV)              ! VI optical thickness of layers within narrowbands for diags ().
+      REAL,INTENT(OUT) :: int_dtaui_aer(ngrid,nlayer,L_NSPECTI,naerkind) ! Aerosol IR optical thickness of layers within narrowbands for diags ().
       REAL,INTENT(OUT) :: int_dtauv_aer(ngrid,nlayer,L_NSPECTV,naerkind) ! Aerosol VI optical thickness of layers within narrowbands for diags ().
       REAL,INTENT(OUT) :: int_wbarv_aer(ngrid,nlayer,L_NSPECTV,naerkind) ! Aerosol VI single scattering albedo within narrowbands for diags ().
@@ -145,4 +147,5 @@
       REAL*8,allocatable,save :: dtaui(:,:,:)
       REAL*8,allocatable,save :: dtauv(:,:,:)
+      REAL*8,allocatable,save :: dtaui_aer(:,:,:)
       REAL*8,allocatable,save :: dtauv_aer(:,:,:)
       REAL*8,allocatable,save :: cosbv(:,:,:)
@@ -151,5 +154,5 @@
       REAL*8,allocatable,save :: wbarv(:,:,:)
       REAL*8,allocatable,save :: wbarv_aer(:,:,:)
-!$OMP THREADPRIVATE(dtaui,dtauv,dtauv_aer,cosbv,cosbi,wbari,wbarv,wbarv_aer)
+!$OMP THREADPRIVATE(dtaui,dtauv,dtaui_aer,dtauv_aer,cosbv,cosbi,wbari,wbarv,wbarv_aer)
       REAL*8,allocatable,save :: tauv(:,:,:)
       REAL*8,allocatable,save :: taucumv(:,:,:)
@@ -370,4 +373,11 @@
               write(*,*) "memory allocation failed for dtauv!"
               call abort_physic(subname,'allocation failure for dtauv',1)
+           endif
+         endif
+         if(.not.allocated(dtaui_aer)) then
+           ALLOCATE(dtaui_aer(L_NLAYRAD,L_NSPECTI,naerkind), stat=ok)
+           if (ok/=0) then
+              write(*,*) "memory allocation failed for dtaui_aer!"
+              call abort_physic(subname,'allocation failure for dtaui_aer',1)
            endif
          endif
@@ -1024,5 +1034,5 @@
          call optci(plevrad,tlevrad,dtaui,taucumi,                  &
               qxiaer,qsiaer,giaer,cosbi,wbari,tauaero,tmid,pmid,    &
-              taugsurfi,qvar,muvarrad)
+              taugsurfi,qvar,muvarrad,dtaui_aer)
 
          call sfluxi(plevrad,tlevrad,dtaui,taucumi,ubari,albi,      &
@@ -1102,4 +1112,5 @@
          ! Aerosol optical thickness diagnostics
          int_dtauv_aer(ig,:,:,:) = dtauv_aer(:,:,:)
+         int_dtaui_aer(ig,:,:,:) = dtaui_aer(:,:,:)
          int_wbarv_aer(ig,:,:,:) = wbarv_aer(:,:,:)
          ! Total optical thickness diagnostics
Index: trunk/LMDZ.PLUTO/libf/phypluto/dyn1d/kcm1d.F90
===================================================================
--- trunk/LMDZ.PLUTO/libf/phypluto/dyn1d/kcm1d.F90	(revision 4133)
+++ trunk/LMDZ.PLUTO/libf/phypluto/dyn1d/kcm1d.F90	(revision 4144)
@@ -84,4 +84,5 @@
   real int_dtaui(1,llm,L_NSPECTI)
   real int_dtauv(1,llm,L_NSPECTV)
+  real int_dtaui_aer(1,llm,L_NSPECTI,naerkind)
   real int_dtauv_aer(1,llm,L_NSPECTV,naerkind)
   real int_wbarv_aer(1,llm,L_NSPECTV,naerkind)
@@ -380,5 +381,6 @@
           fluxsurfabs_sw,fluxtop_lw,                      &
           fluxabs_sw,fluxtop_dn,OLR_nu,OSR_nu,GSR_nu,     &
-          int_dtaui,int_dtauv,int_dtauv_aer,int_wbarv_aer,&
+          int_dtaui,int_dtauv,                            &
+          int_dtauv_aer,int_dtaui_aer,int_wbarv_aer,      &
           tau_col,firstcall,lastcall)
 
@@ -431,5 +433,6 @@
        dtlw,dtsw,fluxsurf_lw,fluxsurf_sw,fluxsurfabs_sw,       &
        fluxtop_lw, fluxabs_sw,fluxtop_dn,OLR_nu,OSR_nu,GSR_nu, &
-       int_dtaui,int_dtauv,int_dtauv_aer,int_wbarv_aer,        &
+       int_dtaui,int_dtauv,                                    &
+       int_dtauv_aer,int_dtaui_aer,int_wbarv_aer,              &
        tau_col,firstcall,lastcall)
 
Index: trunk/LMDZ.PLUTO/libf/phypluto/optci.F90
===================================================================
--- trunk/LMDZ.PLUTO/libf/phypluto/optci.F90	(revision 4133)
+++ trunk/LMDZ.PLUTO/libf/phypluto/optci.F90	(revision 4144)
@@ -7,5 +7,5 @@
 subroutine optci(PLEV,TLEV,DTAUI,TAUCUMI,      &
      QXIAER,QSIAER,GIAER,COSBI,WBARI,TAUAERO,  &
-     TMID,PMID,TAUGSURF,QVAR,MUVAR)
+     TMID,PMID,TAUGSURF,QVAR,MUVAR,DTAUI_AER)
 
   use radinc_h, only: L_LEVELS, L_NLAYRAD, L_NSPECTI, L_NGAUSS, &
@@ -55,8 +55,9 @@
 
   ! for aerosols
-  real*8,intent(in) ::  QXIAER(L_LEVELS,L_NSPECTI,NAERKIND)
-  real*8,intent(in) ::  QSIAER(L_LEVELS,L_NSPECTI,NAERKIND)
-  real*8,intent(in) ::  GIAER(L_LEVELS,L_NSPECTI,NAERKIND)
-  real*8,intent(in) ::  TAUAERO(L_LEVELS,NAERKIND)
+  real*8,intent(in)  :: QXIAER(L_LEVELS,L_NSPECTI,NAERKIND)
+  real*8,intent(in)  :: QSIAER(L_LEVELS,L_NSPECTI,NAERKIND)
+  real*8,intent(in)  :: GIAER(L_LEVELS,L_NSPECTI,NAERKIND)
+  real*8,intent(in)  :: TAUAERO(L_LEVELS,NAERKIND)
+  real*8,intent(out) :: DTAUI_AER(L_NLAYRAD,L_NSPECTI,NAERKIND)
 
   ! local variables (saved for convenience as need be allocated)
@@ -139,4 +140,5 @@
   dtaui(:,:,:) = 0.0
   taucumi(:,:,:) = 0.0
+  dtaui_aer(:,:,:) = 0.0
 
   taugsurf(:,:) = 0.0
@@ -523,6 +525,21 @@
   END DO                    ! NW spectral loop
 
+  ! Aerosols extinction optical depths
+  DO iaer = 1, naerkind
+   DO nw = 1, L_NSPECTI
+     DO L = 1, L_NLAYRAD-1
+      K = 2*L+1
+      DTAUI_AER(L,nw,iaer) = TAEROS(K,nw,iaer) + TAEROS(K+1,nw,iaer)
+      END DO ! L vertical loop
+
+     ! Last level
+     !-----------
+     L = L_NLAYRAD
+     K = 2*L+1
+     DTAUI_AER(L,nw,iaer) = TAEROS(K,nw,iaer)
+   END DO ! nw spectral loop
+  END DO ! iaer loop
+
   ! Total extinction optical depths
-
   DO NG=1,L_NGAUSS       ! full gauss loop
      DO NW=1,L_NSPECTI       
Index: trunk/LMDZ.PLUTO/libf/phypluto/optcv.F90
===================================================================
--- trunk/LMDZ.PLUTO/libf/phypluto/optcv.F90	(revision 4133)
+++ trunk/LMDZ.PLUTO/libf/phypluto/optcv.F90	(revision 4144)
@@ -506,5 +506,5 @@
      ENDIF
    END DO ! nw spectral loop
-  END DO ! iaer Gauss loop
+  END DO ! iaer loop
 
   ! Total extinction optical depths
Index: trunk/LMDZ.PLUTO/libf/phypluto/phys_state_var_mod.F90
===================================================================
--- trunk/LMDZ.PLUTO/libf/phypluto/phys_state_var_mod.F90	(revision 4133)
+++ trunk/LMDZ.PLUTO/libf/phypluto/phys_state_var_mod.F90	(revision 4144)
@@ -73,6 +73,7 @@
       real,dimension(:,:,:),allocatable,save :: int_dtaui       ! IR optical thickness of layers within narrowbands for diags ().
       real,dimension(:,:,:,:),allocatable,save :: int_dtauv_aer ! Aerosol VI optical thickness of layers within narrowbands for diags ().
+      real,dimension(:,:,:,:),allocatable,save :: int_dtaui_aer ! Aerosol IR optical thickness of layers within narrowbands for diags ().
       real,dimension(:,:,:,:),allocatable,save :: int_wbarv_aer ! Aerosol VI single scattering albedo within narrowbands for diags ().
-!$OMP THREADPRIVATE(int_dtaui,int_dtauv,int_dtauv_aer,int_wbarv_aer)
+!$OMP THREADPRIVATE(int_dtaui,int_dtauv,int_dtauv_aer,int_dtaui_aer,int_wbarv_aer)
 
       real,allocatable,dimension(:),save :: tau_col ! Total Aerosol Optical Depth.
@@ -160,4 +161,5 @@
         ALLOCATE(int_dtauv(klon,klev,L_NSPECTV))
         ALLOCATE(int_dtauv_aer(klon,klev,L_NSPECTV,naerkind))
+        ALLOCATE(int_dtaui_aer(klon,klev,L_NSPECTI,naerkind))
         ALLOCATE(int_wbarv_aer(klon,klev,L_NSPECTV,naerkind))
         ALLOCATE(sensibFlux(klon))
@@ -238,4 +240,5 @@
         DEALLOCATE(int_dtauv)
         DEALLOCATE(int_dtauv_aer)
+        DEALLOCATE(int_dtaui_aer)
         DEALLOCATE(int_wbarv_aer)
         DEALLOCATE(sensibFlux)
Index: trunk/LMDZ.PLUTO/libf/phypluto/physiq_mod.F90
===================================================================
--- trunk/LMDZ.PLUTO/libf/phypluto/physiq_mod.F90	(revision 4133)
+++ trunk/LMDZ.PLUTO/libf/phypluto/physiq_mod.F90	(revision 4144)
@@ -1106,5 +1106,6 @@
                               fluxsurfabs_sw,fluxtop_lw,                          &
                               fluxabs_sw,fluxtop_dn,OLR_nu,OSR_nu,GSR_nu,         &
-                              int_dtaui,int_dtauv,int_dtauv_aer,int_wbarv_aer,    &
+                              int_dtaui,int_dtauv,                                &
+                              int_dtauv_aer,int_dtaui_aer,int_wbarv_aer,          &
                               tau_col,firstcall,lastcall)
                   ! Radiative flux from the sky absorbed by the surface (W.m-2).
@@ -2506,8 +2507,17 @@
       call write_output('dtaui_15050nm','Layer optical thickness attenuation in IR band','',int_dtaui(:,nlayer:1:-1,9)) ! 15.050 um
       !if (callmufi) then
-      !   ! Aerosol optical thickness
+      !   ! Aerosol optical thickness (VI diagnostics - /!\ for 28+3 VI bands)
       !   call write_output('dtauv_aers_185nm','Layer sph. aer. optical thickness attenuation in VI band','',int_dtauv_aer(:,nlayer:1:-1,31,1))
       !   call write_output('dtauv_aerf_185nm','Layer fra. aer. optical thickness attenuation in VI band','',int_dtauv_aer(:,nlayer:1:-1,31,2))
-      !   ! Aerosols single scattering albedo
+      !   ! Aerosol optical thickness (IR diagnostics - /!\ for 20+6 IR bands)
+      !   call write_output('dtaui_aers_25250nm','Layer sph. aer. optical thickness attenuation in IR band','',int_dtaui_aer(:,nlayer:1:-1,3,1))
+      !   call write_output('dtaui_aerf_25250nm','Layer fra. aer. optical thickness attenuation in IR band','',int_dtaui_aer(:,nlayer:1:-1,3,2))
+      !   call write_output('dtaui_aers_20800nm','Layer sph. aer. optical thickness attenuation in IR band','',int_dtaui_aer(:,nlayer:1:-1,5,1))
+      !   call write_output('dtaui_aerf_20800nm','Layer fra. aer. optical thickness attenuation in IR band','',int_dtaui_aer(:,nlayer:1:-1,5,2))
+      !   call write_output('dtaui_aers_18000nm','Layer sph. aer. optical thickness attenuation in IR band','',int_dtaui_aer(:,nlayer:1:-1,7,1))
+      !   call write_output('dtaui_aerf_18000nm','Layer fra. aer. optical thickness attenuation in IR band','',int_dtaui_aer(:,nlayer:1:-1,7,2))
+      !   call write_output('dtaui_aers_15050nm','Layer sph. aer. optical thickness attenuation in IR band','',int_dtaui_aer(:,nlayer:1:-1,9,1))
+      !   call write_output('dtaui_aerf_15050nm','Layer fra. aer. optical thickness attenuation in IR band','',int_dtaui_aer(:,nlayer:1:-1,9,2))
+      !   ! Aerosols single scattering albedo (VI diagnostics - /!\ for 28+3 VI bands)
       !   call write_output('wbarv_aers_185nm','Layer sph. aer. single scattering albedo in VI band','',int_wbarv_aer(:,nlayer:1:-1,31,1))
       !   call write_output('wbarv_aerf_185nm','Layer fra. aer. single scattering albedo in VI band','',int_wbarv_aer(:,nlayer:1:-1,31,2))
