Index: LMDZ4/branches/LMDZ4-dev/libf/phylmd/aero_mod.F90
===================================================================
--- LMDZ4/branches/LMDZ4-dev/libf/phylmd/aero_mod.F90	(revision 1220)
+++ LMDZ4/branches/LMDZ4-dev/libf/phylmd/aero_mod.F90	(revision 1221)
@@ -9,11 +9,11 @@
   ! Identification number used in aeropt_2bands and aeropt_5wv
   ! corresponding to naero_tot
-  INTEGER, PARAMETER :: id_SSSSM    = 1
-  INTEGER, PARAMETER :: id_CSSSM    = 2
-  INTEGER, PARAMETER :: id_ASSSM    = 3
-  INTEGER, PARAMETER :: id_ASBCM    = 4
-  INTEGER, PARAMETER :: id_ASPOMM   = 5
-  INTEGER, PARAMETER :: id_ASSO4M   = 6
-  INTEGER, PARAMETER :: id_CSSO4M   = 7
+  INTEGER, PARAMETER :: id_ASBCM    = 1
+  INTEGER, PARAMETER :: id_ASPOMM   = 2
+  INTEGER, PARAMETER :: id_ASSO4M   = 3
+  INTEGER, PARAMETER :: id_CSSO4M   = 4
+  INTEGER, PARAMETER :: id_SSSSM    = 5
+  INTEGER, PARAMETER :: id_CSSSM    = 6
+  INTEGER, PARAMETER :: id_ASSSM    = 7
   INTEGER, PARAMETER :: id_CIDUSTM  = 8
   INTEGER, PARAMETER :: id_AIBCM    = 9
@@ -21,24 +21,29 @@
 
   ! Total number of aerosols actually used in LMDZ 
-  ! 1 =  SSSSM || CSSSM
-  ! 2 =  ASSSM
-  ! 3 =  ASBCM
-  ! 4 =  ASPOMM
-  ! 5 =  ASSO4M || CSSO4M   
-  ! 6 =  CIDUSTM
-  ! 7 =  AIBCM
-  ! 8 =  AIPOMM
-  INTEGER, PARAMETER :: naero_spc = 8 
+  ! 1 =  ASBCM
+  ! 2 =  ASPOMM
+  ! 3 =  ASSO4M ( = SO4) 
+  ! 4 =  CSSO4M 
+  ! 5 =  SSSSM 
+  ! 6 =  CSSSM
+  ! 7 =  ASSSM
+  ! 8 =  CIDUSTM
+  ! 9 =  AIBCM
+  !10 =  AIPOMM
+  INTEGER, PARAMETER :: naero_spc = 10
 
   ! Corresponding names for the aerosols
   CHARACTER(len=7),DIMENSION(naero_spc) :: name_aero=(/&
-       "CSSSM  ", &
-       "ASSSM  ", &
        "ASBCM  ", &
        "ASPOMM ", &
        "SO4    ", &
+       "CSSO4M ", &
+       "SSSSM  ", &
+       "CSSSM  ", &
+       "ASSSM  ", &
        "CIDUSTM", &
        "AIBCM  ", &
        "AIPOMM " /)
+
 
   ! Number of aerosol groups
Index: LMDZ4/branches/LMDZ4-dev/libf/phylmd/aeropt_2bands.F90
===================================================================
--- LMDZ4/branches/LMDZ4-dev/libf/phylmd/aeropt_2bands.F90	(revision 1220)
+++ LMDZ4/branches/LMDZ4-dev/libf/phylmd/aeropt_2bands.F90	(revision 1221)
@@ -3,5 +3,5 @@
      tau_allaer, piz_allaer, &
      cg_allaer, fractnat_allaer, &
-     flag_aerosol, pplay, t_seri)
+     flag_aerosol, pplay, t_seri, presnivs)
 
   USE dimphy
@@ -21,13 +21,13 @@
   ! Input arguments:
   !
-  REAL,                           INTENT(in)  :: pdel(KLON,KLEV)
+  REAL, DIMENSION(klon,klev),     INTENT(in)  :: pdel
   REAL,                           INTENT(in)  :: delt
   REAL, DIMENSION(klon,klev,naero_spc),   INTENT(in)  :: m_allaer
-  REAL,                           INTENT(in)  :: RHcl(KLON,KLEV)     ! humidite relative ciel clair
+  REAL, DIMENSION(klon,klev),     INTENT(in)  :: RHcl       ! humidite relative ciel clair
   REAL, DIMENSION(klon,naero_tot),INTENT(in)  :: fractnat_allaer
   INTEGER,                        INTENT(in)  :: flag_aerosol
-  REAL,                           INTENT(in)  :: pplay(klon,klev)
-  REAL,                           INTENT(in)  :: t_seri(klon,klev)
-
+  REAL, DIMENSION(klon,klev),     INTENT(in)  :: pplay
+  REAL, DIMENSION(klon,klev),     INTENT(in)  :: t_seri
+  REAL, DIMENSION(klev),          INTENT(in)  :: presnivs
   !
   ! Output arguments:
@@ -45,16 +45,48 @@
   LOGICAL ::  soluble
   INTEGER :: i, k, inu, m, mrfspecies
-  INTEGER :: spsol, spinsol
-  INTEGER :: RH_num, nbre_RH, nbsol_compaer, nbinsol_compaer
-
-  PARAMETER (nbre_RH=12)
-  PARAMETER (nbsol_compaer=5)        ! 1- Seasalt AS; 2- Sesalt CS; 3- BC soluble; 4- POM soluble; 5- SO4.
-  PARAMETER (nbinsol_compaer=3)      ! 1- Dust; 2- BC insoluble; 3- POM insoluble
+  INTEGER :: spsol, spinsol, spss
+  INTEGER :: RH_num
+  INTEGER, PARAMETER :: nb_level=19 ! number of vertical levels in DATA
+
+  INTEGER, PARAMETER :: nbre_RH=12
+  INTEGER, PARAMETER :: nbsol_compaer=3    ! 1- BC soluble; 2- POM soluble; 3- SO4.
+  INTEGER, PARAMETER :: nbinsol_compaer=3  ! 1- Dust; 2- BC insoluble; 3- POM insoluble
+  LOGICAL, SAVE :: firstcall=.TRUE. 
+
+! Coefficient optiques sur 19 niveaux
+  REAL, DIMENSION(nb_level) :: presnivs_19  ! Pression milieux couche pour 19 niveaux (nb_level)
+  REAL, DIMENSION(nb_level) :: A1_ASSSM_b1_19, A2_ASSSM_b1_19, A3_ASSSM_b1_19,&
+          B1_ASSSM_b1_19, B2_ASSSM_b1_19, C1_ASSSM_b1_19, C2_ASSSM_b1_19,&
+          A1_CSSSM_b1_19, A2_CSSSM_b1_19, A3_CSSSM_b1_19,&
+          B1_CSSSM_b1_19, B2_CSSSM_b1_19, C1_CSSSM_b1_19, C2_CSSSM_b1_19,&
+          A1_SSSSM_b1_19, A2_SSSSM_b1_19, A3_SSSSM_b1_19,&
+          B1_SSSSM_b1_19, B2_SSSSM_b1_19, C1_SSSSM_b1_19, C2_SSSSM_b1_19,&
+          A1_ASSSM_b2_19, A2_ASSSM_b2_19, A3_ASSSM_b2_19,&
+          B1_ASSSM_b2_19, B2_ASSSM_b2_19, C1_ASSSM_b2_19, C2_ASSSM_b2_19,&
+          A1_CSSSM_b2_19, A2_CSSSM_b2_19, A3_CSSSM_b2_19,&
+          B1_CSSSM_b2_19, B2_CSSSM_b2_19, C1_CSSSM_b2_19, C2_CSSSM_b2_19,&
+          A1_SSSSM_b2_19, A2_SSSSM_b2_19, A3_SSSSM_b2_19,&
+          B1_SSSSM_b2_19, B2_SSSSM_b2_19, C1_SSSSM_b2_19, C2_SSSSM_b2_19
+
+! Coefficient optiques interpole sur le nombre de niveau du modele
+  REAL, DIMENSION(klev) :: A1_ASSSM_b1, A2_ASSSM_b1, A3_ASSSM_b1,&
+          B1_ASSSM_b1, B2_ASSSM_b1, C1_ASSSM_b1, C2_ASSSM_b1,&
+          A1_CSSSM_b1, A2_CSSSM_b1, A3_CSSSM_b1,&
+          B1_CSSSM_b1, B2_CSSSM_b1, C1_CSSSM_b1, C2_CSSSM_b1,&
+          A1_SSSSM_b1, A2_SSSSM_b1, A3_SSSSM_b1,&
+          B1_SSSSM_b1, B2_SSSSM_b1, C1_SSSSM_b1, C2_SSSSM_b1,&
+          A1_ASSSM_b2, A2_ASSSM_b2, A3_ASSSM_b2,&
+          B1_ASSSM_b2, B2_ASSSM_b2, C1_ASSSM_b2, C2_ASSSM_b2,&
+          A1_CSSSM_b2, A2_CSSSM_b2, A3_CSSSM_b2,&
+          B1_CSSSM_b2, B2_CSSSM_b2, C1_CSSSM_b2, C2_CSSSM_b2,&
+          A1_SSSSM_b2, A2_SSSSM_b2, A3_SSSSM_b2,&
+          B1_SSSSM_b2, B2_SSSSM_b2, C1_SSSSM_b2, C2_SSSSM_b2
+
   REAL:: RH_tab(nbre_RH)
-  REAL:: RH_MAX, DELTA, rh 
+  REAL, PARAMETER :: RH_MAX=95.
+  REAL:: DELTA, rh, H
   REAL:: tau_ae2b_int(KLON,KLEV,nbands)   ! Intermediate computation of epaisseur optique aerosol
   REAL:: piz_ae2b_int(KLON,KLEV,nbands)   ! Intermediate computation of Single scattering albedo
   REAL:: cg_ae2b_int(KLON,KLEV,nbands)    ! Intermediate computation of Assymetry parameter
-  PARAMETER (RH_MAX=95.)
   DATA RH_tab/0.,10.,20.,30.,40.,50.,60.,70.,80.,85.,90.,95./
   REAL :: zrho
@@ -77,19 +109,235 @@
 
 
+  DATA presnivs_19/&
+       100426.5,  98327.6, 95346.5, 90966.8, 84776.9, &
+       76536.5,   66292.2, 54559.3, 42501.8, 31806, &
+       23787.5,   18252.7, 13996,   10320.8, 7191.1, &
+       4661.7,    2732.9,  1345.6,  388.2/  
+
+
+!***********************BAND 1***********************************
+!ACCUMULATION MODE
+  DATA A1_ASSSM_b1_19/ 4.373E+00,  4.361E+00,  4.331E+00, &
+                    4.278E+00,  4.223E+00,  4.162E+00, &
+                    4.103E+00,  4.035E+00,  3.962E+00, &
+                    3.904E+00,  3.871E+00,  3.847E+00, &
+                    3.824E+00,  3.780E+00,  3.646E+00, &
+                    3.448E+00,  3.179E+00,  2.855E+00,  2.630E+00/
+  DATA A2_ASSSM_b1_19/ 2.496E+00,  2.489E+00,  2.472E+00, &
+                    2.442E+00,  2.411E+00,  2.376E+00, &
+                    2.342E+00,  2.303E+00,  2.261E+00, &
+                    2.228E+00,  2.210E+00,  2.196E+00, &
+                    2.183E+00,  2.158E+00,  2.081E+00, &
+                    1.968E+00,  1.814E+00,  1.630E+00,  1.501E+00/
+  DATA A3_ASSSM_b1_19/-4.688E-02, -4.676E-02, -4.644E-02, &
+                   -4.587E-02, -4.528E-02, -4.463E-02, &
+                   -4.399E-02, -4.326E-02, -4.248E-02, &
+                   -4.186E-02, -4.151E-02, -4.125E-02, &
+                   -4.100E-02, -4.053E-02, -3.910E-02, &
+                   -3.697E-02, -3.408E-02, -3.061E-02, -2.819E-02/
+  DATA B1_ASSSM_b1_19/ 1.165E-08,  1.145E-08,  1.097E-08, &
+                    1.012E-08,  9.233E-09,  8.261E-09, &
+                    7.297E-09,  6.201E-09,  5.026E-09, &
+                    4.098E-09,  3.567E-09,  3.187E-09, &
+                    2.807E-09,  2.291E-09,  2.075E-09, &
+                    1.756E-09,  1.322E-09,  8.011E-10, 4.379E-10/
+  DATA B2_ASSSM_b1_19/ 2.193E-08,  2.192E-08,  2.187E-08, &
+                    2.179E-08,  2.171E-08,  2.162E-08, &
+                    2.153E-08,  2.143E-08,  2.132E-08, &
+                    2.124E-08,  2.119E-08,  2.115E-08, &
+                    2.112E-08,  2.106E-08,  2.100E-08, &
+                    2.090E-08,  2.077E-08,  2.061E-08,  2.049E-08/
+  DATA C1_ASSSM_b1_19/ 7.365E-01,  7.365E-01,  7.365E-01, &
+                    7.364E-01,  7.363E-01,  7.362E-01, &
+                    7.361E-01,  7.359E-01,  7.358E-01, &
+                    7.357E-01,  7.356E-01,  7.356E-01, &
+                    7.356E-01,  7.355E-01,  7.354E-01, &
+                    7.352E-01,  7.350E-01,  7.347E-01,  7.345E-01/
+  DATA C2_ASSSM_b1_19/ 5.833E-02,  5.835E-02,  5.841E-02, &
+                    5.850E-02,  5.859E-02,  5.870E-02, &
+                    5.880E-02,  5.891E-02,  5.904E-02, &
+                    5.914E-02,  5.920E-02,  5.924E-02, &
+                    5.928E-02,  5.934E-02,  5.944E-02, &
+                    5.959E-02,  5.979E-02,  6.003E-02,  6.020E-02/
+!COARSE MODE
+  DATA A1_CSSSM_b1_19/ 7.403E-01,  7.422E-01,  7.626E-01, &
+                    8.019E-01,  8.270E-01,  8.527E-01, &
+                    8.702E-01,  8.806E-01,  8.937E-01, &
+                    9.489E-01,  1.030E+00,  1.105E+00, &
+                    1.199E+00,  1.357E+00,  1.660E+00, &
+                    2.540E+00,  4.421E+00,  2.151E+00,  9.518E-01/
+  DATA A2_CSSSM_b1_19/ 4.522E-01,  4.532E-01,  4.644E-01, &
+                    4.859E-01,  4.996E-01,  5.137E-01, &
+                    5.233E-01,  5.290E-01,  5.361E-01, &
+                    5.655E-01,  6.085E-01,  6.483E-01, &
+                    6.979E-01,  7.819E-01,  9.488E-01, &
+                    1.450E+00,  2.523E+00,  1.228E+00,  5.433E-01/
+  DATA A3_CSSSM_b1_19/-8.516E-03, -8.535E-03, -8.744E-03, &
+                   -9.148E-03, -9.406E-03, -9.668E-03, &
+                   -9.848E-03, -9.955E-03, -1.009E-02, &
+                   -1.064E-02, -1.145E-02, -1.219E-02, &
+                   -1.312E-02, -1.470E-02, -1.783E-02, &
+                   -2.724E-02, -4.740E-02, -2.306E-02, -1.021E-02/
+  DATA B1_CSSSM_b1_19/ 2.535E-07,  2.530E-07,  2.479E-07, &
+                    2.380E-07,  2.317E-07,  2.252E-07, &
+                    2.208E-07,  2.182E-07,  2.149E-07, &
+                    2.051E-07,  1.912E-07,  1.784E-07, &
+                    1.624E-07,  1.353E-07,  1.012E-07, &
+                    6.016E-08,  2.102E-08,  0.000E+00,  0.000E+00/
+  DATA B2_CSSSM_b1_19/ 1.221E-07,  1.217E-07,  1.179E-07, &
+                    1.104E-07,  1.056E-07,  1.008E-07, &
+                    9.744E-08,  9.546E-08,  9.299E-08, &
+                    8.807E-08,  8.150E-08,  7.544E-08, &
+                    6.786E-08,  5.504E-08,  4.080E-08, &
+                    2.960E-08,  2.300E-08,  2.030E-08,  1.997E-08/
+  DATA C1_CSSSM_b1_19/ 7.659E-01,  7.658E-01,  7.652E-01, &
+                    7.639E-01,  7.631E-01,  7.623E-01, &
+                    7.618E-01,  7.614E-01,  7.610E-01, &
+                    7.598E-01,  7.581E-01,  7.566E-01, &
+                    7.546E-01,  7.513E-01,  7.472E-01, &
+                    7.423E-01,  7.376E-01,  7.342E-01,  7.334E-01/
+  DATA C2_CSSSM_b1_19/ 3.691E-02,  3.694E-02,  3.729E-02, &
+                    3.796E-02,  3.839E-02,  3.883E-02, &
+                    3.913E-02,  3.931E-02,  3.953E-02, &
+                    4.035E-02,  4.153E-02,  4.263E-02, &
+                    4.400E-02,  4.631E-02,  4.933E-02, &
+                    5.331E-02,  5.734E-02,  6.053E-02,  6.128E-02/
+!SUPER COARSE MODE
+  DATA A1_SSSSM_b1_19/ 2.836E-01,  2.876E-01,  2.563E-01, &
+                    2.414E-01,  2.541E-01,  2.546E-01, &
+                    2.572E-01,  2.638E-01,  2.781E-01, &
+                    3.167E-01,  4.209E-01,  5.286E-01, &
+                    6.959E-01,  9.233E-01,  1.282E+00, &
+                    1.836E+00,  2.981E+00,  4.355E+00,  4.059E+00/
+  DATA A2_SSSSM_b1_19/ 1.608E-01,  1.651E-01,  1.577E-01, &
+                    1.587E-01,  1.686E-01,  1.690E-01, &
+                    1.711E-01,  1.762E-01,  1.874E-01, &
+                    2.138E-01,  2.751E-01,  3.363E-01, &
+                    4.279E-01,  5.519E-01,  7.421E-01, &
+                    1.048E+00,  1.702E+00,  2.485E+00,  2.317E+00/
+  DATA A3_SSSSM_b1_19/-3.025E-03, -3.111E-03, -2.981E-03, &
+                   -3.005E-03, -3.193E-03, -3.200E-03, &
+                   -3.239E-03, -3.336E-03, -3.548E-03, &
+                   -4.047E-03, -5.196E-03, -6.345E-03, &
+                   -8.061E-03, -1.038E-02, -1.395E-02, &
+                   -1.970E-02, -3.197E-02, -4.669E-02, -4.352E-02/
+  DATA B1_SSSSM_b1_19/ 6.759E-07,  6.246E-07,  5.542E-07, &
+                    4.953E-07,  4.746E-07,  4.738E-07, &
+                    4.695E-07,  4.588E-07,  4.354E-07, &
+                    3.947E-07,  3.461E-07,  3.067E-07, &
+                    2.646E-07,  2.095E-07,  1.481E-07, &
+                    9.024E-08,  5.747E-08,  2.384E-08,  6.599E-09/
+  DATA B2_SSSSM_b1_19/ 5.977E-07,  5.390E-07,  4.468E-07, &
+                    3.696E-07,  3.443E-07,  3.433E-07, &
+                    3.380E-07,  3.249E-07,  2.962E-07, &
+                    2.483E-07,  1.989E-07,  1.623E-07, &
+                    1.305E-07,  9.015E-08,  6.111E-08, &
+                    3.761E-08,  2.903E-08,  2.337E-08,  2.147E-08/
+  DATA C1_SSSSM_b1_19/ 8.120E-01,  8.084E-01,  8.016E-01, &
+                    7.953E-01,  7.929E-01,  7.928E-01, &
+                    7.923E-01,  7.910E-01,  7.882E-01, &
+                    7.834E-01,  7.774E-01,  7.725E-01, &
+                    7.673E-01,  7.604E-01,  7.529E-01, &
+                    7.458E-01,  7.419E-01,  7.379E-01,  7.360E-01/
+  DATA C2_SSSSM_b1_19/ 2.388E-02,  2.392E-02,  2.457E-02,  2.552E-02, &
+                    2.615E-02,  2.618E-02,  2.631E-02,  2.663E-02, &
+                    2.735E-02,  2.875E-02,  3.113E-02,  3.330E-02, &
+                    3.615E-02,  3.997E-02,  4.521E-02,  5.038E-02, &
+                    5.358E-02,  5.705E-02,  5.887E-02/
+!*********************BAND 2************************************************
+!ACCUMULATION MODE
+  DATA A1_ASSSM_b2_19/1.256E+00, 1.246E+00, 1.226E+00, 1.187E+00, 1.148E+00, &
+                   1.105E+00, 1.062E+00, 1.014E+00, 9.616E-01, 9.205E-01, &
+                   8.970E-01, 8.800E-01, 8.632E-01, 8.371E-01, 7.943E-01, &
+                   7.308E-01, 6.448E-01, 5.414E-01, 4.693E-01/
+  DATA A2_ASSSM_b2_19/5.321E-01, 5.284E-01, 5.196E-01, 5.036E-01, 4.872E-01, &
+                   4.691E-01, 4.512E-01, 4.308E-01, 4.089E-01, 3.917E-01, &
+                   3.818E-01, 3.747E-01, 3.676E-01, 3.567E-01, 3.385E-01, &
+                   3.116E-01, 2.751E-01, 2.312E-01, 2.006E-01/
+  DATA A3_ASSSM_b2_19/-1.053E-02, -1.046E-02, -1.028E-02, -9.964E-03, -9.637E-03, &
+                   -9.279E-03, -8.923E-03, -8.518E-03, -8.084E-03, -7.741E-03, &
+                   -7.545E-03, -7.405E-03, -7.265E-03, -7.048E-03, -6.687E-03, &
+                   -6.156E-03, -5.433E-03, -4.565E-03, -3.961E-03/
+  DATA B1_ASSSM_b2_19/1.560E-02, 1.560E-02, 1.561E-02, 1.565E-02, 1.568E-02, &
+                   1.572E-02, 1.576E-02, 1.580E-02, 1.584E-02, 1.588E-02, &
+                   1.590E-02, 1.592E-02, 1.593E-02, 1.595E-02, 1.599E-02, &
+                   1.605E-02, 1.612E-02, 1.621E-02, 1.627E-02/
+  DATA B2_ASSSM_b2_19/1.073E-02, 1.074E-02, 1.076E-02, 1.079E-02, 1.082E-02, &
+                   1.085E-02, 1.089E-02, 1.093E-02, 1.097E-02, 1.100E-02, &
+                   1.102E-02, 1.103E-02, 1.105E-02, 1.107E-02, 1.110E-02, &
+                   1.115E-02, 1.122E-02, 1.130E-02, 1.136E-02/
+  DATA C1_ASSSM_b2_19/7.429E-01, 7.429E-01, 7.429E-01, 7.427E-01, 7.427E-01, &
+                   7.424E-01, 7.423E-01, 7.422E-01, 7.421E-01, 7.420E-01, &
+                   7.419E-01, 7.419E-01, 7.418E-01, 7.417E-01, 7.416E-01, &
+                   7.415E-01, 7.413E-01, 7.409E-01, 7.408E-01/
+  DATA C2_ASSSM_b2_19/3.031E-02, 3.028E-02, 3.022E-02, 3.011E-02, 2.999E-02, &
+                   2.986E-02, 2.973E-02, 2.959E-02, 2.943E-02, 2.931E-02, &
+                   2.924E-02, 2.919E-02, 2.913E-02, 2.905E-02, 2.893E-02, &
+                   2.874E-02, 2.847E-02, 2.817E-02, 2.795E-02/
+!COARSE MODE
+  DATA A1_CSSSM_b2_19/7.061E-01, 7.074E-01, 7.211E-01, 7.476E-01, 7.647E-01, &
+                   7.817E-01, 7.937E-01, 8.007E-01, 8.095E-01, 8.436E-01, &
+                   8.932E-01, 9.390E-01, 9.963E-01, 1.093E+00, 1.256E+00, &
+                   1.668E+00, 1.581E+00, 3.457E-01, 1.331E-01/
+  DATA A2_CSSSM_b2_19/3.617E-01, 3.621E-01, 3.662E-01, 3.739E-01, 3.789E-01, &
+                   3.840E-01, 3.874E-01, 3.895E-01, 3.921E-01, 4.001E-01, &
+                   4.117E-01, 4.223E-01, 4.356E-01, 4.581E-01, 5.099E-01, &
+                   6.831E-01, 6.663E-01, 1.481E-01, 5.703E-02/
+  DATA A3_CSSSM_b2_19/-6.953E-03, -6.961E-03, -7.048E-03, -7.216E-03, -7.322E-03, &
+                   -7.431E-03, -7.506E-03, -7.551E-03, -7.606E-03, -7.791E-03, &
+                   -8.059E-03, -8.305E-03, -8.613E-03, -9.134E-03, -1.023E-02, &
+                   -1.365E-02, -1.320E-02, -2.922E-03, -1.125E-03/
+  DATA B1_CSSSM_b2_19/1.007E-02, 1.008E-02, 1.012E-02, 1.019E-02, 1.024E-02, &
+                   1.029E-02, 1.033E-02, 1.035E-02, 1.038E-02, 1.056E-02, &
+                   1.083E-02, 1.109E-02, 1.140E-02, 1.194E-02, 1.270E-02, &
+                   1.390E-02, 1.524E-02, 1.639E-02, 1.667E-02/
+  DATA B2_CSSSM_b2_19/4.675E-03, 4.682E-03, 4.760E-03, 4.908E-03, 5.004E-03, &
+                   5.102E-03, 5.168E-03, 5.207E-03, 5.256E-03, 5.474E-03, &
+                   5.793E-03, 6.089E-03, 6.457E-03, 7.081E-03, 7.923E-03, &
+                   9.127E-03, 1.041E-02, 1.147E-02, 1.173E-02/
+  DATA C1_CSSSM_b2_19/7.571E-01, 7.571E-01, 7.570E-01, 7.568E-01, 7.565E-01, &
+                   7.564E-01, 7.563E-01, 7.562E-01, 7.562E-01, 7.557E-01, &
+                   7.552E-01, 7.545E-01, 7.539E-01, 7.527E-01, 7.509E-01, &
+                   7.478E-01, 7.440E-01, 7.404E-01, 7.394E-01/
+  DATA C2_CSSSM_b2_19/4.464E-02, 4.465E-02, 4.468E-02, 4.474E-02, 4.477E-02, &
+                   4.480E-02, 4.482E-02, 4.484E-02, 4.486E-02, 4.448E-02, &
+                   4.389E-02, 4.334E-02, 4.264E-02, 4.148E-02, 3.957E-02, &
+                   3.588E-02, 3.149E-02, 2.751E-02, 2.650E-02/
+!SUPER COARSE MODE
+  DATA A1_SSSSM_b2_19/2.357E-01, 2.490E-01, 2.666E-01, 2.920E-01, 3.120E-01, &
+                   3.128E-01, 3.169E-01, 3.272E-01, 3.498E-01, 3.960E-01, &
+                   4.822E-01, 5.634E-01, 6.763E-01, 8.278E-01, 1.047E+00, &
+                   1.340E+00, 1.927E+00, 1.648E+00, 1.031E+00/
+  DATA A2_SSSSM_b2_19/1.219E-01, 1.337E-01, 1.633E-01, 1.929E-01, 2.057E-01, &
+                   2.062E-01, 2.089E-01, 2.155E-01, 2.300E-01, 2.560E-01, &
+                   2.908E-01, 3.199E-01, 3.530E-01, 3.965E-01, 4.475E-01, &
+                   5.443E-01, 7.943E-01, 6.928E-01, 4.381E-01/
+  DATA A3_SSSSM_b2_19/-2.387E-03, -2.599E-03, -3.092E-03, -3.599E-03, -3.832E-03, &
+                   -3.842E-03, -3.890E-03, -4.012E-03, -4.276E-03, -4.763E-03, &
+                   -5.455E-03, -6.051E-03, -6.763E-03, -7.708E-03, -8.887E-03, &
+                   -1.091E-02, -1.585E-02, -1.373E-02, -8.665E-03/
+  DATA B1_SSSSM_b2_19/1.260E-02, 1.211E-02, 1.126E-02, 1.056E-02, 1.038E-02, &
+                   1.037E-02, 1.033E-02, 1.023E-02, 1.002E-02, 9.717E-03, &
+                   9.613E-03, 9.652E-03, 9.983E-03, 1.047E-02, 1.168E-02, &
+                   1.301E-02, 1.399E-02, 1.514E-02, 1.578E-02/
+  DATA B2_SSSSM_b2_19/2.336E-03, 2.419E-03, 2.506E-03, 2.610E-03, 2.690E-03, &
+                   2.694E-03, 2.711E-03, 2.752E-03, 2.844E-03, 3.043E-03, &
+                   3.455E-03, 3.871E-03, 4.507E-03, 5.373E-03, 6.786E-03, &
+                   8.238E-03, 9.208E-03, 1.032E-02, 1.091E-02/
+  DATA C1_SSSSM_b2_19/7.832E-01, 7.787E-01, 7.721E-01, 7.670E-01, 7.657E-01, &
+                   7.657E-01, 7.654E-01, 7.648E-01, 7.634E-01, 7.613E-01, &
+                   7.596E-01, 7.585E-01, 7.574E-01, 7.560E-01, 7.533E-01, &
+                   7.502E-01, 7.476E-01, 7.443E-01, 7.423E-01/
+  DATA C2_SSSSM_b2_19/3.144E-02, 3.268E-02, 3.515E-02, 3.748E-02, 3.837E-02, &
+                   3.840E-02, 3.860E-02, 3.906E-02, 4.006E-02, 4.173E-02, &
+                   4.338E-02, 4.435E-02, 4.459E-02, 4.467E-02, 4.202E-02, &
+                   3.864E-02, 3.559E-02, 3.183E-02, 2.964E-02/
+!***************************************************************************
+
   spsol = 0
   spinsol = 0 
-
+  spss = 0 
 
   DATA alpha_aers_2bands/  & 
-       ! seasalt soluble Coarse Soluble (CS)
-       0.5090,0.6554,0.7129,0.7767,0.8529,1.2728, & 
-       1.3820,1.5792,1.9173,2.2002,2.7173,4.1487, & 
-       0.5167,0.6613,0.7221,0.7868,0.8622,1.3027, & 
-       1.4227,1.6317,1.9887,2.2883,2.8356,4.3453, & 
-       ! seasalt soluble Accumulation Soluble (AS)
-       4.125, 4.674, 5.005, 5.434, 5.985, 10.006, & 
-       11.175,13.376,17.264,20.540,26.604, 42.349,& 
-       4.187, 3.939, 3.919, 3.937, 3.995,  5.078, & 
-       5.511, 6.434, 8.317,10.152,14.024, 26.537, &
        ! bc soluble
        7.675,7.675,7.675,7.675,7.675,7.675,    &
@@ -119,14 +367,4 @@
 
   DATA cg_aers_2bands/ &
-       ! seasalt Coarse soluble (CS)
-       0.727, 0.747, 0.755, 0.761, 0.770, 0.788, &
-       0.792, 0.799, 0.805, 0.809, 0.815, 0.826, &
-       0.717, 0.738, 0.745, 0.752, 0.761, 0.779, &
-       0.781, 0.786, 0.793, 0.797, 0.803, 0.813, &
-       ! Sesalt Accumulation Soluble (AS)
-       0.727, 0.741, 0.748, 0.754, 0.761, 0.782, & 
-       0.787, 0.792, 0.797, 0.799, 0.801, 0.799, &
-       0.606, 0.645, 0.658, 0.669, 0.681, 0.726, &
-       0.734, 0.746, 0.761, 0.770, 0.782, 0.798, &
        ! bc soluble
        .612, .612, .612, .612, .612, .612, &
@@ -155,14 +393,4 @@
 
   DATA piz_aers_2bands/&
-       ! seasalt Coarse soluble (CS)
-       1.000,1.000,1.000,1.000,1.000,1.000, &
-       1.000,1.000,1.000,1.000,1.000,1.000, &
-       0.992,0.989,0.987,0.986,0.986,0.980, &
-       0.980,0.978,0.976,0.976,0.974,0.971, &
-       ! seasalt Accumulation Soluble (AS)
-       1.000, 1.000, 1.000, 1.000, 1.000, 1.000, &
-       1.000, 1.000, 1.000, 1.000, 1.000, 1.000, &
-       0.970, 0.975, 0.976, 0.977, 0.978, 0.982, &
-       0.982, 0.983, 0.984, 0.984, 0.985, 0.985, & 
        ! bc soluble
        .445, .445, .445, .445, .445, .445, &
@@ -191,4 +419,61 @@
 
 
+! Interpolation des coefficients optiques de 19 niveaux vers le nombre des niveaux du model
+  IF (firstcall) THEN
+     firstcall=.FALSE.
+     
+! bande 1
+     CALL pres2lev(A1_ASSSM_b1_19, A1_ASSSM_b1, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.)
+     CALL pres2lev(A2_ASSSM_b1_19, A2_ASSSM_b1, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.)
+     CALL pres2lev(A3_ASSSM_b1_19, A3_ASSSM_b1, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.)
+     CALL pres2lev(B1_ASSSM_b1_19, B1_ASSSM_b1, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.)
+     CALL pres2lev(B2_ASSSM_b1_19, B2_ASSSM_b1, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.)
+     CALL pres2lev(C1_ASSSM_b1_19, C1_ASSSM_b1, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.)
+     CALL pres2lev(C2_ASSSM_b1_19, C2_ASSSM_b1, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.)
+
+     CALL pres2lev(A1_CSSSM_b1_19, A1_CSSSM_b1, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.)
+     CALL pres2lev(A2_CSSSM_b1_19, A2_CSSSM_b1, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.)
+     CALL pres2lev(A3_CSSSM_b1_19, A3_CSSSM_b1, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.)
+     CALL pres2lev(B1_CSSSM_b1_19, B1_CSSSM_b1, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.)
+     CALL pres2lev(B2_CSSSM_b1_19, B2_CSSSM_b1, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.)
+     CALL pres2lev(C1_CSSSM_b1_19, C1_CSSSM_b1, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.)
+     CALL pres2lev(C2_CSSSM_b1_19, C2_CSSSM_b1, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.)
+
+     CALL pres2lev(A1_SSSSM_b1_19, A1_SSSSM_b1, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.)
+     CALL pres2lev(A2_SSSSM_b1_19, A2_SSSSM_b1, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.)
+     CALL pres2lev(A3_SSSSM_b1_19, A3_SSSSM_b1, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.)
+     CALL pres2lev(B1_SSSSM_b1_19, B1_SSSSM_b1, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.)
+     CALL pres2lev(B2_SSSSM_b1_19, B2_SSSSM_b1, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.)
+     CALL pres2lev(C1_SSSSM_b1_19, C1_SSSSM_b1, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.)
+     CALL pres2lev(C2_SSSSM_b1_19, C2_SSSSM_b1, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.)
+
+! bande 2
+     CALL pres2lev(A1_ASSSM_b2_19, A1_ASSSM_b2, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.)
+     CALL pres2lev(A2_ASSSM_b2_19, A2_ASSSM_b2, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.)
+     CALL pres2lev(A3_ASSSM_b2_19, A3_ASSSM_b2, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.)
+     CALL pres2lev(B1_ASSSM_b2_19, B1_ASSSM_b2, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.)
+     CALL pres2lev(B2_ASSSM_b2_19, B2_ASSSM_b2, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.)
+     CALL pres2lev(C1_ASSSM_b2_19, C1_ASSSM_b2, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.)
+     CALL pres2lev(C2_ASSSM_b2_19, C2_ASSSM_b2, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.)
+
+     CALL pres2lev(A1_CSSSM_b2_19, A1_CSSSM_b2, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.)
+     CALL pres2lev(A2_CSSSM_b2_19, A2_CSSSM_b2, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.)
+     CALL pres2lev(A3_CSSSM_b2_19, A3_CSSSM_b2, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.)
+     CALL pres2lev(B1_CSSSM_b2_19, B1_CSSSM_b2, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.)
+     CALL pres2lev(B2_CSSSM_b2_19, B2_CSSSM_b2, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.)
+     CALL pres2lev(C1_CSSSM_b2_19, C1_CSSSM_b2, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.)
+     CALL pres2lev(C2_CSSSM_b2_19, C2_CSSSM_b2, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.)
+
+     CALL pres2lev(A1_SSSSM_b2_19, A1_SSSSM_b2, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.)
+     CALL pres2lev(A2_SSSSM_b2_19, A2_SSSSM_b2, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.)
+     CALL pres2lev(A3_SSSSM_b2_19, A3_SSSSM_b2, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.)
+     CALL pres2lev(B1_SSSSM_b2_19, B1_SSSSM_b2, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.)
+     CALL pres2lev(B2_SSSSM_b2_19, B2_SSSSM_b2, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.)
+     CALL pres2lev(C1_SSSSM_b2_19, C1_SSSSM_b2, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.)
+     CALL pres2lev(C2_SSSSM_b2_19, C2_SSSSM_b2, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.)
+
+  END IF ! firstcall
+
+
   DO k=1, klev
      DO i=1, klon
@@ -212,4 +497,5 @@
      ALLOCATE (aerosol_name(nb_aer)) 
      aerosol_name(1) = id_ASSO4M
+
   ELSEIF (flag_aerosol .EQ. 2) THEN
      nb_aer = 2
@@ -233,5 +519,5 @@
      aerosol_name(1) = id_CIDUSTM
   ELSEIF (flag_aerosol .EQ. 6) THEN 
-     nb_aer = 9
+     nb_aer = 10
      ALLOCATE (aerosol_name(nb_aer)) 
      aerosol_name(1) = id_ASSO4M      
@@ -244,4 +530,5 @@
      aerosol_name(8) = id_ASSSM
      aerosol_name(9) = id_CIDUSTM
+     aerosol_name(10)= id_CSSO4M
   ENDIF
 
@@ -271,34 +558,43 @@
 
      fac=1.0
-     IF (aerosol_name(m).EQ.id_SSSSM) THEN   ! for now
-        soluble=.TRUE.
-        spsol=1
+     IF (aerosol_name(m).EQ.id_ASBCM) THEN
+         soluble=.TRUE.
+         spsol=1
+         spss=0
+     ELSEIF (aerosol_name(m).EQ.id_ASPOMM) THEN 
+         soluble=.TRUE.
+         spsol=2 
+         spss=0
+     ELSEIF ((aerosol_name(m).EQ.id_ASSO4M) .OR.  (aerosol_name(m).EQ.id_CSSO4M)) THEN
+         soluble=.TRUE.
+         spsol=3
+         spss=0
+         fac=1.375    ! (NH4)2-SO4/SO4 132/96 mass conversion factor for OD
+     ELSEIF (aerosol_name(m).EQ.id_SSSSM) THEN 
+         soluble=.TRUE.
+         spsol=5
+         spss=3
      ELSEIF (aerosol_name(m).EQ.id_CSSSM) THEN 
-        soluble=.TRUE.
-        spsol=1
+         soluble=.TRUE.
+         spsol=6
+         spss=2
      ELSEIF (aerosol_name(m).EQ.id_ASSSM) THEN
-        soluble=.TRUE.
-        spsol=2
-     ELSEIF (aerosol_name(m).EQ.id_ASBCM) THEN
-        soluble=.TRUE.
-        spsol=3
-     ELSEIF (aerosol_name(m).EQ.id_ASPOMM) THEN 
-        soluble=.TRUE.
-        spsol=4 
-     ELSEIF ((aerosol_name(m).EQ.id_ASSO4M) .OR.  (aerosol_name(m).EQ.id_CSSO4M)) THEN
-        soluble=.TRUE.
-        spsol=5
-        fac=1.375    ! (NH4)2-SO4/SO4 132/96 mass conversion factor for OD
+         soluble=.TRUE.
+         spsol=7
+         spss=1
      ELSEIF (aerosol_name(m).EQ.id_CIDUSTM) THEN 
-        soluble=.FALSE.
-        spinsol=1
+         soluble=.FALSE.
+         spinsol=1
+         spss=0
      ELSEIF  (aerosol_name(m).EQ.id_AIBCM) THEN 
-        soluble=.FALSE.
-        spinsol=2
+         soluble=.FALSE.
+         spinsol=2
+         spss=0
      ELSEIF (aerosol_name(m).EQ.id_AIPOMM) THEN 
-        soluble=.FALSE.
-        spinsol=3
+         soluble=.FALSE.
+         spinsol=3
+         spss=0
      ELSE 
-        CYCLE
+         CYCLE
      ENDIF
 
@@ -320,21 +616,57 @@
            DO inu=1,nbands
               IF (soluble) THEN
-                 tau_ae2b_int(i,k,inu)= &
-                      alpha_aers_2bands(RH_num,inu,spsol)+ & 
-                      DELTA* (alpha_aers_2bands(RH_num+1,inu,spsol) - & 
-                      alpha_aers_2bands(RH_num,inu,spsol))
-
-                 piz_ae2b_int(i,k,inu)= &
-                      piz_aers_2bands(RH_num,inu,spsol) + & 
-                      DELTA* (piz_aers_2bands(RH_num+1,inu,spsol) - & 
-                      piz_aers_2bands(RH_num,inu,spsol))
-
-                 cg_ae2b_int(i,k,inu)= &
-                      cg_aers_2bands(RH_num,inu,spsol) + & 
-                      DELTA* (cg_aers_2bands(RH_num+1,inu,spsol) - & 
-                      cg_aers_2bands(RH_num,inu,spsol))
-
-                 tau_ae(i,k,aerosol_name(m),inu) = &
-                    mass_temp(i,k,spsol)*1000.*zdp1(i,k)*delt*tau_ae2b_int(i,k,inu)*fac
+
+                  IF (spss.NE.0) THEN
+                      H=rh/100
+                      IF (spss.EQ.1) THEN !accumulation mode
+                          ! band 1
+                          tau_ae2b_int(i,k,1)=A1_ASSSM_b1(k)+A2_ASSSM_b1(k)*H+A3_ASSSM_b1(k)/(H-1.05)
+                          piz_ae2b_int(i,k,1)=1-B1_ASSSM_b1(k)-B2_ASSSM_b1(k)*H
+                          cg_ae2b_int(i,k,1)=C1_ASSSM_b1(k)+C2_ASSSM_b1(k)*H
+                          !band 2
+                          tau_ae2b_int(i,k,2)=A1_ASSSM_b2(k)+A2_ASSSM_b2(k)*H+A3_ASSSM_b2(k)/(H-1.05)
+                          piz_ae2b_int(i,k,2)=1-B1_ASSSM_b2(k)-B2_ASSSM_b2(k)*H
+                          cg_ae2b_int(i,k,2)=C1_ASSSM_b2(k)+C2_ASSSM_b2(k)*H
+                      ENDIF
+                      IF (spss.EQ.2) THEN !coarse mode
+                          ! band 1
+                          tau_ae2b_int(i,k,1)=A1_CSSSM_b1(k)+A2_CSSSM_b1(k)*H+A3_CSSSM_b1(k)/(H-1.05)
+                          piz_ae2b_int(i,k,1)=1-B1_CSSSM_b1(k)-B2_CSSSM_b1(k)*H
+                          cg_ae2b_int(i,k,1)=C1_CSSSM_b1(k)+C2_CSSSM_b1(k)*H
+                          ! band 2
+                          tau_ae2b_int(i,k,2)=A1_CSSSM_b2(k)+A2_CSSSM_b2(k)*H+A3_CSSSM_b2(k)/(H-1.05)
+                          piz_ae2b_int(i,k,2)=1-B1_CSSSM_b2(k)-B2_CSSSM_b2(k)*H
+                          cg_ae2b_int(i,k,2)=C1_CSSSM_b2(k)+C2_CSSSM_b2(k)*H
+                      ENDIF
+                      IF (spss.EQ.3) THEN !super coarse mode
+                          ! band 1 
+                          tau_ae2b_int(i,k,1)=A1_SSSSM_b1(k)+A2_SSSSM_b1(k)*H+A3_SSSSM_b1(k)/(H-1.05)
+                          piz_ae2b_int(i,k,1)=1-B1_SSSSM_b1(k)-B2_SSSSM_b1(k)*H
+                          cg_ae2b_int(i,k,1)=C1_SSSSM_b1(k)+C2_SSSSM_b1(k)*H
+                          ! band 2
+                          tau_ae2b_int(i,k,2)=A1_SSSSM_b2(k)+A2_SSSSM_b2(k)*H+A3_SSSSM_b2(k)/(H-1.05)
+                          piz_ae2b_int(i,k,2)=1-B1_SSSSM_b2(k)-B2_SSSSM_b2(k)*H
+                          cg_ae2b_int(i,k,2)=C1_SSSSM_b2(k)+C2_SSSSM_b2(k)*H
+                      ENDIF
+                  ELSE
+                      tau_ae2b_int(i,k,inu)= &
+                         alpha_aers_2bands(RH_num,inu,spsol)+ & 
+                         DELTA* (alpha_aers_2bands(RH_num+1,inu,spsol) - & 
+                         alpha_aers_2bands(RH_num,inu,spsol))
+                      
+                      piz_ae2b_int(i,k,inu)= &
+                         piz_aers_2bands(RH_num,inu,spsol) + & 
+                         DELTA* (piz_aers_2bands(RH_num+1,inu,spsol) - & 
+                         piz_aers_2bands(RH_num,inu,spsol))
+                      
+                      cg_ae2b_int(i,k,inu)= &
+                         cg_aers_2bands(RH_num,inu,spsol) + & 
+                         DELTA* (cg_aers_2bands(RH_num+1,inu,spsol) - & 
+                         cg_aers_2bands(RH_num,inu,spsol))
+                      
+                  ENDIF
+
+                  tau_ae(i,k,aerosol_name(m),inu) = &
+                     mass_temp(i,k,spsol)*1000.*zdp1(i,k)*delt*tau_ae2b_int(i,k,inu)*fac
 
               ELSE
@@ -344,5 +676,5 @@
 
                  tau_ae(i,k,aerosol_name(m),inu) = &
-                    mass_temp(i,k,5+ spinsol)*1000.*zdp1(i,k)*delt*tau_ae2b_int(i,k,inu)*fac
+                    mass_temp(i,k,7+ spinsol)*1000.*zdp1(i,k)*delt*tau_ae2b_int(i,k,inu)*fac
               ENDIF
 
@@ -352,8 +684,8 @@
 
 
-           ENDDO    ! boucle sur les bandes spectrale
-        ENDDO     ! Boucle sur les points géographiques (grille horizontale)
-     ENDDO     ! Boucle sur les niveaux verticaux
-  ENDDO     ! Boucle  sur les masses de traceurs
+           ENDDO    ! nbands : boucle sur les bandes spectrale
+        ENDDO     ! klon : Boucle sur les points geographiques (grille horizontale)
+     ENDDO     ! klev : Boucle sur les niveaux verticaux
+  ENDDO     ! nb_aer : Boucle  sur les masses de traceurs
 
 
Index: LMDZ4/branches/LMDZ4-dev/libf/phylmd/aeropt_5wv.F90
===================================================================
--- LMDZ4/branches/LMDZ4-dev/libf/phylmd/aeropt_5wv.F90	(revision 1220)
+++ LMDZ4/branches/LMDZ4-dev/libf/phylmd/aeropt_5wv.F90	(revision 1221)
@@ -5,5 +5,5 @@
    RHcl, ai, flag_aerosol, &
    pplay, t_seri, &
-   tausum, tau)
+   tausum, tau, presnivs)
 
   USE DIMPHY
@@ -57,4 +57,5 @@
   REAL, DIMENSION(klon,klev), INTENT(in)   :: pplay
   REAL, DIMENSION(klon,klev), INTENT(in)   :: t_seri
+  REAL, DIMENSION(klev),      INTENT(in)   :: presnivs
   !
   ! Output arguments:
@@ -72,5 +73,5 @@
   
   INTEGER :: i, k, m
-  INTEGER :: spsol, spinsol, la
+  INTEGER :: spsol, spinsol, spss, la
   INTEGER :: RH_num
   INTEGER, PARAMETER :: la443 = 1
@@ -80,9 +81,30 @@
   INTEGER, PARAMETER :: la865 = 5
   INTEGER, PARAMETER :: nbre_RH=12
-  INTEGER, PARAMETER :: nbsol_compaer=5   ! 1- Seasalt AS: 2- Sesalt CS; 3- BC soluble; 4- POM soluble; 5- SO4.
-  INTEGER, PARAMETER :: nbinsol_compaer=3 ! 1- Dust; 2- BC insoluble; 3- POM insoluble
+  INTEGER, PARAMETER :: nbsol_compaer=3   !  1- BC soluble; 2- POM soluble; 3- SO4.
+  INTEGER, PARAMETER :: nbinsol_compaer=3 !  1- Dust; 2- BC insoluble; 3- POM insoluble
+  INTEGER, PARAMETER :: nb_level = 19 ! number of vertical levels
+  LOGICAL, SAVE :: firstcall=.TRUE.
+
   REAL :: zrho
+
+  ! Coefficient optiques sur 19 niveaux
+  REAL, DIMENSION(nb_level) :: presnivs_19  ! Pression milieux couche pour 19 niveaux (nb_level)
+  REAL, DIMENSION(nb_level) :: A1_ASSSM_19, A2_ASSSM_19, A3_ASSSM_19,&
+          B1_ASSSM_19, B2_ASSSM_19, C1_ASSSM_19, C2_ASSSM_19,&
+          A1_CSSSM_19, A2_CSSSM_19, A3_CSSSM_19,&
+          B1_CSSSM_19, B2_CSSSM_19, C1_CSSSM_19, C2_CSSSM_19, &
+          A1_SSSSM_19, A2_SSSSM_19, A3_SSSSM_19,&
+          B1_SSSSM_19, B2_SSSSM_19, C1_SSSSM_19, C2_SSSSM_19
+
+  ! Coefficient optiques interpole sur le nombre de niveau du modele
+  REAL, DIMENSION(klev) :: A1_ASSSM, A2_ASSSM, A3_ASSSM,&
+          B1_ASSSM, B2_ASSSM, C1_ASSSM, C2_ASSSM,&
+          A1_CSSSM, A2_CSSSM, A3_CSSSM,&
+          B1_CSSSM, B2_CSSSM, C1_CSSSM, C2_CSSSM, &
+          A1_SSSSM, A2_SSSSM, A3_SSSSM,&
+          B1_SSSSM, B2_SSSSM, C1_SSSSM, C2_SSSSM
+
   REAL :: RH_tab(nbre_RH)
-  REAL :: DELTA, rh 
+  REAL :: DELTA, rh, H
   REAL :: tau_ae5wv_int(KLON,KLEV,las) ! Intermediate computation of epaisseur optique aerosol
   REAL :: piz_ae5wv_int(KLON,KLEV,las) ! Intermediate single scattering albedo aerosol
@@ -119,4 +141,140 @@
   REAL :: radry = 287.054                     ! dry air mass constant
 
+  DATA presnivs_19/&
+       100426.5,  98327.6, 95346.5, 90966.8, 84776.9, &
+       76536.5,   66292.2, 54559.3, 42501.8, 31806, &
+       23787.5,   18252.7, 13996,   10320.8, 7191.1, &
+       4661.7,    2732.9,  1345.6,  388.2/
+
+!!ACCUMULATION MODE
+  DATA A1_ASSSM_19/ 4.373E+00,  4.361E+00,  4.331E+00, &
+                 4.278E+00,  4.223E+00,  4.162E+00, &
+                 4.103E+00,  4.035E+00,  3.962E+00, &
+                 3.904E+00,  3.871E+00,  3.847E+00, &
+                 3.824E+00,  3.780E+00,  3.646E+00, &
+                 3.448E+00,  3.179E+00,  2.855E+00,  2.630E+00/
+  DATA A2_ASSSM_19/ 2.496E+00,  2.489E+00,  2.472E+00, &
+                 2.442E+00,  2.411E+00,  2.376E+00, &
+                 2.342E+00,  2.303E+00,  2.261E+00, &
+                 2.228E+00,  2.210E+00,  2.196E+00, &
+                 2.183E+00,  2.158E+00,  2.081E+00, &
+                 1.968E+00,  1.814E+00,  1.630E+00,  1.501E+00/
+  DATA A3_ASSSM_19/-4.688E-02, -4.676E-02, -4.644E-02, &
+                -4.587E-02, -4.528E-02, -4.463E-02, &
+                -4.399E-02, -4.326E-02, -4.248E-02, &
+                -4.186E-02, -4.151E-02, -4.125E-02, &
+                -4.100E-02, -4.053E-02, -3.910E-02, &
+                -3.697E-02, -3.408E-02, -3.061E-02, -2.819E-02/
+  DATA B1_ASSSM_19/ 1.165E-08,  1.145E-08,  1.097E-08, &
+                 1.012E-08,  9.233E-09,  8.261E-09, &
+                 7.297E-09,  6.201E-09,  5.026E-09, &
+                 4.098E-09,  3.567E-09,  3.187E-09, &
+                 2.807E-09,  2.291E-09,  2.075E-09, &
+                 1.756E-09,  1.322E-09,  8.011E-10, 4.379E-10/
+  DATA B2_ASSSM_19/ 2.193E-08,  2.192E-08,  2.187E-08, &
+                 2.179E-08,  2.171E-08,  2.162E-08, &
+                 2.153E-08,  2.143E-08,  2.132E-08, &
+                 2.124E-08,  2.119E-08,  2.115E-08, &
+                 2.112E-08,  2.106E-08,  2.100E-08, &
+                 2.090E-08,  2.077E-08,  2.061E-08,  2.049E-08/
+  DATA C1_ASSSM_19/ 7.365E-01,  7.365E-01,  7.365E-01, &
+                 7.364E-01,  7.363E-01,  7.362E-01, &
+                 7.361E-01,  7.359E-01,  7.358E-01, &
+                 7.357E-01,  7.356E-01,  7.356E-01, &
+                 7.356E-01,  7.355E-01,  7.354E-01, &
+                 7.352E-01,  7.350E-01,  7.347E-01,  7.345E-01/
+  DATA C2_ASSSM_19/ 5.833E-02,  5.835E-02,  5.841E-02, &
+                 5.850E-02,  5.859E-02,  5.870E-02, &
+                 5.880E-02,  5.891E-02,  5.904E-02, &
+                 5.914E-02,  5.920E-02,  5.924E-02, &
+                 5.928E-02,  5.934E-02,  5.944E-02, &
+                 5.959E-02,  5.979E-02,  6.003E-02,  6.020E-02/
+!COARSE MODE
+  DATA A1_CSSSM_19/ 7.403E-01,  7.422E-01,  7.626E-01, &
+                 8.019E-01,  8.270E-01,  8.527E-01, &
+                 8.702E-01,  8.806E-01,  8.937E-01, &
+                 9.489E-01,  1.030E+00,  1.105E+00, &
+                 1.199E+00,  1.357E+00,  1.660E+00, &
+                 2.540E+00,  4.421E+00,  2.151E+00,  9.518E-01/
+  DATA A2_CSSSM_19/ 4.522E-01,  4.532E-01,  4.644E-01, &
+                 4.859E-01,  4.996E-01,  5.137E-01, &
+                 5.233E-01,  5.290E-01,  5.361E-01, &
+                 5.655E-01,  6.085E-01,  6.483E-01, &
+                 6.979E-01,  7.819E-01,  9.488E-01, &
+                 1.450E+00,  2.523E+00,  1.228E+00,  5.433E-01/
+  DATA A3_CSSSM_19/-8.516E-03, -8.535E-03, -8.744E-03, &
+                -9.148E-03, -9.406E-03, -9.668E-03, &
+                -9.848E-03, -9.955E-03, -1.009E-02, &
+                -1.064E-02, -1.145E-02, -1.219E-02, &
+                -1.312E-02, -1.470E-02, -1.783E-02, &
+                -2.724E-02, -4.740E-02, -2.306E-02, -1.021E-02/
+  DATA B1_CSSSM_19/ 2.535E-07,  2.530E-07,  2.479E-07, &
+                 2.380E-07,  2.317E-07,  2.252E-07, &
+                 2.208E-07,  2.182E-07,  2.149E-07, &
+                 2.051E-07,  1.912E-07,  1.784E-07, &
+                 1.624E-07,  1.353E-07,  1.012E-07, &
+                 6.016E-08,  2.102E-08,  0.000E+00,  0.000E+00/
+  DATA B2_CSSSM_19/ 1.221E-07,  1.217E-07,  1.179E-07, &
+                 1.104E-07,  1.056E-07,  1.008E-07, &
+                 9.744E-08,  9.546E-08,  9.299E-08, &
+                 8.807E-08,  8.150E-08,  7.544E-08, &
+                 6.786E-08,  5.504E-08,  4.080E-08, &
+                 2.960E-08,  2.300E-08,  2.030E-08,  1.997E-08/
+  DATA C1_CSSSM_19/ 7.659E-01,  7.658E-01,  7.652E-01, &
+                 7.639E-01,  7.631E-01,  7.623E-01, &
+                 7.618E-01,  7.614E-01,  7.610E-01, &
+                 7.598E-01,  7.581E-01,  7.566E-01, &
+                 7.546E-01,  7.513E-01,  7.472E-01, &
+                 7.423E-01,  7.376E-01,  7.342E-01,  7.334E-01/
+  DATA C2_CSSSM_19/ 3.691E-02,  3.694E-02,  3.729E-02, &
+                 3.796E-02,  3.839E-02,  3.883E-02, &
+                 3.913E-02,  3.931E-02,  3.953E-02, &
+                 4.035E-02,  4.153E-02,  4.263E-02, &
+                 4.400E-02,  4.631E-02,  4.933E-02, &
+                 5.331E-02,  5.734E-02,  6.053E-02,  6.128E-02/
+!SUPER COARSE MODE
+  DATA A1_SSSSM_19/ 2.836E-01,  2.876E-01,  2.563E-01, &
+                 2.414E-01,  2.541E-01,  2.546E-01, &
+                 2.572E-01,  2.638E-01,  2.781E-01, &
+                 3.167E-01,  4.209E-01,  5.286E-01, &
+                 6.959E-01,  9.233E-01,  1.282E+00, &
+                 1.836E+00,  2.981E+00,  4.355E+00,  4.059E+00/
+  DATA A2_SSSSM_19/ 1.608E-01,  1.651E-01,  1.577E-01, &
+                 1.587E-01,  1.686E-01,  1.690E-01, &
+                 1.711E-01,  1.762E-01,  1.874E-01, &
+                 2.138E-01,  2.751E-01,  3.363E-01, &
+                 4.279E-01,  5.519E-01,  7.421E-01, &
+                 1.048E+00,  1.702E+00,  2.485E+00,  2.317E+00/
+  DATA A3_SSSSM_19/-3.025E-03, -3.111E-03, -2.981E-03, &
+                -3.005E-03, -3.193E-03, -3.200E-03, &
+                -3.239E-03, -3.336E-03, -3.548E-03, &
+                -4.047E-03, -5.196E-03, -6.345E-03, &
+                -8.061E-03, -1.038E-02, -1.395E-02, &
+                -1.970E-02, -3.197E-02, -4.669E-02, -4.352E-02/
+  DATA B1_SSSSM_19/ 6.759E-07,  6.246E-07,  5.542E-07, &
+                 4.953E-07,  4.746E-07,  4.738E-07, &
+                 4.695E-07,  4.588E-07,  4.354E-07, &
+                 3.947E-07,  3.461E-07,  3.067E-07, &
+                 2.646E-07,  2.095E-07,  1.481E-07, &
+                 9.024E-08,  5.747E-08,  2.384E-08,  6.599E-09/
+  DATA B2_SSSSM_19/ 5.977E-07,  5.390E-07,  4.468E-07, &
+                 3.696E-07,  3.443E-07,  3.433E-07, &
+                 3.380E-07,  3.249E-07,  2.962E-07, &
+                 2.483E-07,  1.989E-07,  1.623E-07, &
+                 1.305E-07,  9.015E-08,  6.111E-08, &
+                 3.761E-08,  2.903E-08,  2.337E-08,  2.147E-08/
+  DATA C1_SSSSM_19/ 8.120E-01,  8.084E-01,  8.016E-01, &
+                 7.953E-01,  7.929E-01,  7.928E-01, &
+                 7.923E-01,  7.910E-01,  7.882E-01, &
+                 7.834E-01,  7.774E-01,  7.725E-01, &
+                 7.673E-01,  7.604E-01,  7.529E-01, &
+                 7.458E-01,  7.419E-01,  7.379E-01,  7.360E-01/
+  DATA C2_SSSSM_19/ 2.388E-02,  2.392E-02,  2.457E-02,  2.552E-02, &
+                 2.615E-02,  2.618E-02,  2.631E-02,  2.663E-02, &
+                 2.735E-02,  2.875E-02,  3.113E-02,  3.330E-02, &
+                 3.615E-02,  3.997E-02,  4.521E-02,  5.038E-02, &
+                 5.358E-02,  5.705E-02,  5.887E-02/
+!*********************************************************************
+!
   !
   ! 
@@ -127,26 +285,4 @@
   ! 
   DATA alpha_aers_5wv/ &
-     ! seasalt soluble CS
-     0.50,0.90,1.05,1.21,1.40,2.41, &
-     2.66,3.11,3.88,4.52,5.69,8.84, &
-     0.51,0.92,1.07,1.23,1.42,2.45, &
-     2.70,3.16,3.94,4.58,5.76,8.94, & 
-     0.52,0.93,1.08,1.24,1.43,2.47, &
-     2.73,3.20,3.99,4.64,5.84,9.04, &
-     0.52,0.93,1.09,1.25,1.44,2.50, &
-     2.76,3.23,4.03,4.68,5.89,9.14, &
-     0.52,0.94,1.09,1.26,1.45,2.51, &
-     2.78,3.25,4.06,4.72,5.94,9.22, &
-     ! seasalt soluble AS
-     4.28, 7.17, 8.44, 9.85,11.60,22.44,  &
-     25.34,30.54,39.38,46.52,59.33,91.77, &
-     3.40, 5.67, 6.69, 7.85, 9.32,19.03,  &
-     21.78,26.88,35.87,43.40,57.33,93.43, &
-     2.48, 4.22, 5.02, 5.94, 7.11,15.29,  &
-     17.70,22.31,30.73,38.06,52.15,90.59, &
-     1.90, 3.29, 3.94, 4.69, 5.65, 12.58, &
-     14.68,18.77,26.41,33.25,46.77,85.50, &
-     1.47, 2.59, 3.12, 3.74, 4.54, 10.42, &
-     12.24,15.82,22.66,28.91,41.54,79.33, &
      ! bc soluble
      7.930,7.930,7.930,7.930,7.930,7.930,     &
@@ -192,26 +328,4 @@
 
   DATA cg_aers_5wv/ & 
-     ! seasalt soluble (CS)
-     0.730,0.753,0.760,0.766,0.772,0.793, &
-     0.797,0.802,0.809,0.813,0.820,0.830, &
-     0.719,0.744,0.751,0.757,0.764,0.786, &
-     0.791,0.796,0.803,0.808,0.815,0.826, &
-     0.721,0.744,0.750,0.756,0.762,0.784, &
-     0.787,0.793,0.800,0.804,0.811,0.822, &
-     0.717,0.741,0.747,0.753,0.759,0.780, &
-     0.784,0.789,0.795,0.800,0.806,0.817, &
-     0.715,0.739,0.745,0.751,0.757,0.777, & 
-     0.781,0.786,0.793,0.797,0.803,0.814, &
-     ! seasalt soluble (AS)
-     0.698,0.722,0.729,0.736,0.743,0.765, &
-     0.768,0.773,0.777,0.779,0.781,0.779, &
-     0.682,0.710,0.719,0.727,0.735,0.764, &
-     0.769,0.776,0.783,0.787,0.791,0.792, &
-     0.658,0.691,0.701,0.710,0.720,0.756, &
-     0.763,0.771,0.782,0.788,0.795,0.801, &
-     0.632,0.668,0.679,0.690,0.701,0.743, &
-     0.750,0.762,0.775,0.783,0.792,0.804, &
-     0.605,0.644,0.656,0.669,0.681,0.729, &
-     0.737,0.750,0.765,0.775,0.787,0.803, &
      ! bc soluble
      .651, .651, .651, .651, .651, .651, &
@@ -258,26 +372,4 @@
   !
   DATA piz_aers_5wv/&
-     ! seasalt soluble (CS)
-     1.000,1.000,1.000,1.000,1.000,1.000, &
-     1.000,1.000,1.000,1.000,1.000,1.000, &
-     1.000,1.000,1.000,1.000,1.000,1.000, &
-     1.000,1.000,1.000,1.000,1.000,1.000, &
-     1.000,1.000,1.000,1.000,1.000,1.000, &
-     1.000,1.000,1.000,1.000,1.000,1.000, &
-     1.000,1.000,1.000,1.000,1.000,1.000, &
-     1.000,1.000,1.000,1.000,1.000,1.000, &
-     1.000,1.000,1.000,1.000,1.000,1.000, &
-     1.000,1.000,1.000,1.000,1.000,1.000, &
-     ! seasalt soluble (AS)
-     1.000,1.000,1.000,1.000,1.000,1.000, &
-     1.000,1.000,1.000,1.000,1.000,1.000, &
-     1.000,1.000,1.000,1.000,1.000,1.000, &
-     1.000,1.000,1.000,1.000,1.000,1.000, &
-     1.000,1.000,1.000,1.000,1.000,1.000, &
-     1.000,1.000,1.000,1.000,1.000,1.000, &
-     1.000,1.000,1.000,1.000,1.000,1.000, &
-     1.000,1.000,1.000,1.000,1.000,1.000, &
-     1.000,1.000,1.000,1.000,1.000,1.000, &
-     1.000,1.000,1.000,1.000,1.000,1.000, &
      ! bc soluble
      .445, .445, .445, .445, .445, .445, &
@@ -322,4 +414,35 @@
      0.972, 0.963, 0.943, 0.923, 0.897/
 
+! Interpolation des coefficients optiques de 19 niveaux vers le nombre des niveaux du model
+  IF (firstcall) THEN
+     firstcall=.FALSE.
+!Accumulation mode
+     CALL pres2lev(A1_ASSSM_19, A1_ASSSM, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.)
+     CALL pres2lev(A2_ASSSM_19, A2_ASSSM, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.)
+     CALL pres2lev(A3_ASSSM_19, A3_ASSSM, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.)
+     CALL pres2lev(B1_ASSSM_19, B1_ASSSM, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.)
+     CALL pres2lev(B2_ASSSM_19, B2_ASSSM, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.)
+     CALL pres2lev(C1_ASSSM_19, C1_ASSSM, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.)
+     CALL pres2lev(C2_ASSSM_19, C2_ASSSM, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.)
+!Coarse mode
+     CALL pres2lev(A1_CSSSM_19, A1_CSSSM, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.)
+     CALL pres2lev(A2_CSSSM_19, A2_CSSSM, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.)
+     CALL pres2lev(A3_CSSSM_19, A3_CSSSM, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.)
+     CALL pres2lev(B1_CSSSM_19, B1_CSSSM, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.)
+     CALL pres2lev(B2_CSSSM_19, B2_CSSSM, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.)
+     CALL pres2lev(C1_CSSSM_19, C1_CSSSM, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.)
+     CALL pres2lev(C2_CSSSM_19, C2_CSSSM, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.)
+!Super coarse mode
+     CALL pres2lev(A1_SSSSM_19, A1_SSSSM, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.)
+     CALL pres2lev(A2_SSSSM_19, A2_SSSSM, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.)
+     CALL pres2lev(A3_SSSSM_19, A3_SSSSM, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.)
+     CALL pres2lev(B1_SSSSM_19, B1_SSSSM, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.)
+     CALL pres2lev(B2_SSSSM_19, B2_SSSSM, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.)
+     CALL pres2lev(C1_SSSSM_19, C1_SSSSM, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.)
+     CALL pres2lev(C2_SSSSM_19, C2_SSSSM, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.)
+
+  END IF ! firstcall
+
+
   ! Initialisations
   ai(:) = 0.
@@ -344,7 +467,8 @@
 
   IF (flag_aerosol .EQ. 1) THEN 
-     nb_aer = 1
+     nb_aer = 2
      ALLOCATE (aerosol_name(nb_aer)) 
      aerosol_name(1) = id_ASSO4M
+     aerosol_name(2) = id_CSSO4M
   ELSEIF (flag_aerosol .EQ. 2) THEN
      nb_aer = 2
@@ -368,5 +492,5 @@
      aerosol_name(1) = id_CIDUSTM
   ELSEIF (flag_aerosol .EQ. 6) THEN 
-     nb_aer = 9
+     nb_aer = 10
      ALLOCATE (aerosol_name(nb_aer)) 
      aerosol_name(1) = id_ASSO4M      
@@ -379,4 +503,5 @@
      aerosol_name(8) = id_ASSSM
      aerosol_name(9) = id_CIDUSTM
+     aerosol_name(10) = id_CSSO4M
   ENDIF
 
@@ -398,32 +523,41 @@
     
     fac=1.0
-    IF (aerosol_name(m).EQ.id_SSSSM) THEN   ! for now
+    IF (aerosol_name(m).EQ.id_ASBCM) THEN
         soluble=.TRUE.
         spsol=1
+        spss=0
+    ELSEIF (aerosol_name(m).EQ.id_ASPOMM) THEN 
+        soluble=.TRUE.
+        spsol=2 
+        spss=0
+    ELSEIF ((aerosol_name(m).EQ.id_ASSO4M) .OR.  (aerosol_name(m).EQ.id_CSSO4M)) THEN
+        soluble=.TRUE.
+        spsol=3
+        spss=0
+        fac=1.375    ! (NH4)2-SO4/SO4 132/96 mass conversion factor for OD
+    ELSEIF (aerosol_name(m).EQ.id_SSSSM) THEN 
+        soluble=.TRUE.
+        spsol=5
+        spss=3
     ELSEIF (aerosol_name(m).EQ.id_CSSSM) THEN 
         soluble=.TRUE.
-        spsol=1
+        spsol=6
+        spss=2
     ELSEIF (aerosol_name(m).EQ.id_ASSSM) THEN
         soluble=.TRUE.
-        spsol=2
-    ELSEIF (aerosol_name(m).EQ.id_ASBCM) THEN
-        soluble=.TRUE.
-        spsol=3
-    ELSEIF (aerosol_name(m).EQ.id_ASPOMM) THEN 
-        soluble=.TRUE.
-        spsol=4 
-    ELSEIF ((aerosol_name(m).EQ.id_ASSO4M) .OR.  (aerosol_name(m).EQ.id_CSSO4M)) THEN
-        soluble=.TRUE.
-        spsol=5
-        fac=1.375    ! (NH4)2-SO4/SO4 132/96 mass conversion factor for OD
-    ELSEIF     (aerosol_name(m).EQ.id_CIDUSTM) THEN 
+        spsol=7
+        spss=1
+    ELSEIF (aerosol_name(m).EQ.id_CIDUSTM) THEN 
         soluble=.FALSE.
         spinsol=1
+        spss=0
     ELSEIF  (aerosol_name(m).EQ.id_AIBCM) THEN 
         soluble=.FALSE.
         spinsol=2
+        spss=0
     ELSEIF (aerosol_name(m).EQ.id_AIPOMM) THEN 
         soluble=.FALSE.
         spinsol=3
+        spss=0
     ELSE 
         CYCLE
@@ -447,19 +581,41 @@
           
           IF (soluble) THEN
-              tau_ae5wv_int(i,k,la) = &
-                 alpha_aers_5wv(RH_num,la,spsol)+DELTA* &
-                 (alpha_aers_5wv(RH_num+1,la,spsol) - & 
-                 alpha_aers_5wv(RH_num,la,spsol))
-              
-              piz_ae5wv_int(i,k,la) = &
-                 piz_aers_5wv(RH_num,la,spsol)+DELTA* &
-                 (piz_aers_5wv(RH_num+1,la,spsol) - & 
-                 piz_aers_5wv(RH_num,la,spsol))
-              
-              cg_ae5wv_int(i,k,la) = &
-                 cg_aers_5wv(RH_num,la,spsol)+DELTA* & 
-                 (cg_aers_5wv(RH_num+1,la,spsol) - & 
-                 cg_aers_5wv(RH_num,la,spsol))
-              
+
+
+              IF((la.EQ.2).AND.(spss.NE.0)) THEN !la=2 corresponds to 550 nm
+                  H=rh/100
+                  IF (spss.EQ.1) THEN !accumulation mode
+                      tau_ae5wv_int(i,k,la)=A1_ASSSM(k)+A2_ASSSM(k)*H+A3_ASSSM(k)/(H-1.05)
+                      piz_ae5wv_int(i,k,la)=1-B1_ASSSM(k)-B2_ASSSM(k)*H
+                      cg_ae5wv_int(i,k,la)=C1_ASSSM(k)+C2_ASSSM(k)*H
+                  ENDIF
+                  IF (spss.EQ.2) THEN !coarse mode
+                      tau_ae5wv_int(i,k,la)=A1_CSSSM(k)+A2_CSSSM(k)*H+A3_CSSSM(k)/(H-1.05)
+                      piz_ae5wv_int(i,k,la)=1-B1_CSSSM(k)-B2_CSSSM(k)*H
+                      cg_ae5wv_int(i,k,la)=C1_CSSSM(k)+C2_CSSSM(k)*H
+                  ENDIF
+                  IF (spss.EQ.3) THEN !super coarse mode
+                      tau_ae5wv_int(i,k,la)=A1_SSSSM(k)+A2_SSSSM(k)*H+A3_SSSSM(k)/(H-1.05)
+                      piz_ae5wv_int(i,k,la)=1-B1_SSSSM(k)-B2_SSSSM(k)*H
+                      cg_ae5wv_int(i,k,la)=C1_SSSSM(k)+C2_SSSSM(k)*H
+                  ENDIF
+              ELSE
+                  
+                  tau_ae5wv_int(i,k,la) = &
+                     alpha_aers_5wv(RH_num,la,spsol)+DELTA* &
+                     (alpha_aers_5wv(RH_num+1,la,spsol) - & 
+                     alpha_aers_5wv(RH_num,la,spsol))
+                  
+                  piz_ae5wv_int(i,k,la) = &
+                     piz_aers_5wv(RH_num,la,spsol)+DELTA* &
+                     (piz_aers_5wv(RH_num+1,la,spsol) - & 
+                     piz_aers_5wv(RH_num,la,spsol))
+                  
+                  cg_ae5wv_int(i,k,la) = &
+                     cg_aers_5wv(RH_num,la,spsol)+DELTA* & 
+                     (cg_aers_5wv(RH_num+1,la,spsol) - & 
+                     cg_aers_5wv(RH_num,la,spsol))
+              ENDIF
+
               tau3d(i,k) = &
                  mass_temp(i,k,spsol)*1000.*zdp1(i,k)*tau_ae5wv_int(i,k,la)*delt*fac
@@ -471,5 +627,5 @@
 
               tau3d(i,k) = &
-                 mass_temp(i,k,5+spinsol)*1000.*zdp1(i,k)*tau_ae5wv_int(i,k,la)*delt*fac
+                 mass_temp(i,k,7+spinsol)*1000.*zdp1(i,k)*tau_ae5wv_int(i,k,la)*delt*fac
           ENDIF
           
Index: LMDZ4/branches/LMDZ4-dev/libf/phylmd/physiq.F
===================================================================
--- LMDZ4/branches/LMDZ4-dev/libf/phylmd/physiq.F	(revision 1220)
+++ LMDZ4/branches/LMDZ4-dev/libf/phylmd/physiq.F	(revision 1221)
@@ -2665,5 +2665,5 @@
      &        CALL readaerosol_optic(
      &        debut, new_aod, flag_aerosol, jD_cur-jD_ref, pdtphys,
-     &        pplay, paprs, t_seri, rhcl, 
+     &        pplay, paprs, t_seri, rhcl, presnivs, 
      &        mass_solu_aero, mass_solu_aero_pi, 
      &        tau_aero, piz_aero, cg_aero, 
Index: LMDZ4/branches/LMDZ4-dev/libf/phylmd/readaerosol_optic.F90
===================================================================
--- LMDZ4/branches/LMDZ4-dev/libf/phylmd/readaerosol_optic.F90	(revision 1220)
+++ LMDZ4/branches/LMDZ4-dev/libf/phylmd/readaerosol_optic.F90	(revision 1221)
@@ -2,5 +2,5 @@
 !
 SUBROUTINE readaerosol_optic(debut, new_aod, flag_aerosol, rjourvrai, pdtphys, &
-     pplay, paprs, t_seri, rhcl, &
+     pplay, paprs, t_seri, rhcl, presnivs, &
      mass_solu_aero, mass_solu_aero_pi, &
      tau_aero, piz_aero, cg_aero, &
@@ -27,4 +27,5 @@
   REAL, DIMENSION(klon,klev), INTENT(IN)   :: t_seri
   REAL, DIMENSION(klon,klev), INTENT(IN)   :: rhcl   ! humidite relative ciel clair
+  REAL, DIMENSION(klev), INTENT(IN)        :: presnivs
 
 ! Output arguments
@@ -73,5 +74,5 @@
        flag_aerosol .EQ. 6 ) THEN 
 
-     CALL readaerosol_interp(5, rjourvrai, debut, pplay, paprs, t_seri, sulfate, sulfate_pi)
+     CALL readaerosol_interp(id_ASSO4M, rjourvrai, debut, pplay, paprs, t_seri, sulfate, sulfate_pi)
   ELSE
      sulfate(:,:) = 0. ; sulfate_pi(:,:) = 0.
@@ -83,6 +84,6 @@
 
      ! Get bc aerosol distribution 
-     CALL readaerosol_interp(3, rjourvrai, debut, pplay, paprs, t_seri, bcsol, bcsol_pi )
-     CALL readaerosol_interp(7, rjourvrai, debut, pplay, paprs, t_seri, bcins, bcins_pi )
+     CALL readaerosol_interp(id_ASBCM, rjourvrai, debut, pplay, paprs, t_seri, bcsol, bcsol_pi )
+     CALL readaerosol_interp(id_AIBCM, rjourvrai, debut, pplay, paprs, t_seri, bcins, bcins_pi )
   ELSE
      bcsol(:,:) = 0. ; bcsol_pi(:,:) = 0.
@@ -95,6 +96,6 @@
        flag_aerosol .EQ. 6 ) THEN
 
-     CALL readaerosol_interp(4, rjourvrai, debut, pplay, paprs, t_seri, pomsol, pomsol_pi)
-     CALL readaerosol_interp(8, rjourvrai, debut, pplay, paprs, t_seri, pomins, pomins_pi)
+     CALL readaerosol_interp(id_ASPOMM, rjourvrai, debut, pplay, paprs, t_seri, pomsol, pomsol_pi)
+     CALL readaerosol_interp(id_AIPOMM, rjourvrai, debut, pplay, paprs, t_seri, pomins, pomins_pi)
   ELSE
      pomsol(:,:) = 0. ; pomsol_pi(:,:) = 0.
@@ -107,10 +108,12 @@
       flag_aerosol .EQ. 6 ) THEN 
 
-      CALL readaerosol_interp(1 ,rjourvrai, debut, pplay, paprs, t_seri, sscoarse,sscoarse_pi) 
-      CALL readaerosol_interp(2 ,rjourvrai, debut, pplay, paprs, t_seri, ssacu, ssacu_pi) 
+      CALL readaerosol_interp(id_SSSSM ,rjourvrai, debut, pplay, paprs, t_seri, sssupco, sssupco_pi) 
+      CALL readaerosol_interp(id_CSSSM ,rjourvrai, debut, pplay, paprs, t_seri, sscoarse,sscoarse_pi) 
+      CALL readaerosol_interp(id_ASSSM ,rjourvrai, debut, pplay, paprs, t_seri, ssacu, ssacu_pi) 
 
   ELSE
      sscoarse(:,:) = 0. ; sscoarse_pi(:,:) = 0. 
-     ssacu(:,:) = 0.    ; ssacu_pi(:,:) = 0. 
+     ssacu(:,:)    = 0. ; ssacu_pi(:,:) = 0. 
+     sssupco(:,:)  = 0. ; sssupco_pi = 0. 
   ENDIF
 
@@ -119,5 +122,5 @@
       flag_aerosol .EQ. 6 ) THEN 
 
-      CALL readaerosol_interp(6 , rjourvrai, debut, pplay, paprs, t_seri, cidust, cidust_pi) 
+      CALL readaerosol_interp(id_CIDUSTM, rjourvrai, debut, pplay, paprs, t_seri, cidust, cidust_pi) 
 
   ELSE
@@ -128,12 +131,14 @@
 ! Store all aerosols in one variable
 !
-  m_allaer(:,:,1) = sscoarse(:,:)     ! SSSSM || CSSSM
-  m_allaer(:,:,2) = ssacu(:,:)        ! ASSSM
-  m_allaer(:,:,3) = bcsol(:,:)        ! ASBCM
-  m_allaer(:,:,4) = pomsol(:,:)       ! ASPOMM
-  m_allaer(:,:,5) = sulfate(:,:)      ! ASSO4M || CSSO4M   
-  m_allaer(:,:,6) = cidust(:,:)       ! CIDUSTM
-  m_allaer(:,:,7) = bcins(:,:)        ! AIBCM
-  m_allaer(:,:,8) = pomins(:,:)       ! AIPOMM
+  m_allaer(:,:,id_ASBCM)  = bcsol(:,:)        ! ASBCM
+  m_allaer(:,:,id_ASPOMM) = pomsol(:,:)       ! ASPOMM
+  m_allaer(:,:,id_ASSO4M) = sulfate(:,:)      ! ASSO4M (= SO4) 
+  m_allaer(:,:,id_CSSO4M) = 0.                ! CSSO4M 
+  m_allaer(:,:,id_SSSSM)  = sssupco(:,:)      ! SSSSM
+  m_allaer(:,:,id_CSSSM)  = sscoarse(:,:)     ! CSSSM
+  m_allaer(:,:,id_ASSSM)  = ssacu(:,:)        ! ASSSM
+  m_allaer(:,:,id_CIDUSTM)= cidust(:,:)       ! CIDUSTM
+  m_allaer(:,:,id_AIBCM)  = bcins(:,:)        ! AIBCM
+  m_allaer(:,:,id_AIPOMM) = pomins(:,:)       ! AIPOMM
 
 !
@@ -141,7 +146,7 @@
 !
   mass_solu_aero(:,:)    = sulfate(:,:)    + bcsol(:,:)    + pomsol(:,:)    + &
-       sscoarse(:,:)   + ssacu(:,:)
+       sscoarse(:,:)    + ssacu(:,:)    + sssupco(:,:) 
   mass_solu_aero_pi(:,:) = sulfate_pi(:,:) + bcsol_pi(:,:) + pomsol_pi(:,:) + &
-       sscoarse_pi(:,:) + ssacu_pi(:,:)
+       sscoarse_pi(:,:) + ssacu_pi(:,:) + sssupco_pi(:,:)
 
 !****************************************************************************************
@@ -162,5 +167,5 @@
           tau_aero, piz_aero, cg_aero,   &
           fractnat_allaer, flag_aerosol, &
-          pplay, t_seri) 
+          pplay, t_seri, presnivs) 
      
      ! aeropt_5wv only for validation and diagnostics.
@@ -169,9 +174,9 @@
           pdtphys, rhcl, aerindex, & 
           flag_aerosol, pplay, t_seri, &
-          tausum_aero, tau3d_aero)
+          tausum_aero, tau3d_aero, presnivs)
   ELSE
 
      CALL aeropt(pplay, paprs, t_seri, sulfate, rhcl, &
-          tau_aero(:,:,5,:), piz_aero(:,:,5,:), cg_aero(:,:,5,:), aerindex)
+          tau_aero(:,:,id_ASSO4M,:), piz_aero(:,:,id_ASSO4M,:), cg_aero(:,:,id_ASSO4M,:), aerindex)
      
   END IF
