From 33d6ad639847a3809e8f2b5f70379d34345a0fd9 Mon Sep 17 00:00:00 2001
From: Gaelle Tanguy <gaelle.tanguy@meteo.fr>
Date: Tue, 1 Dec 2015 15:26:23 +0000
Subject: [PATCH] M.Leriche 11/2015 : bug chemistery

---
 src/MNH/BASIC.f90                | 493 +------------------------------
 src/MNH/ch_aer_driver.f90        |  21 +-
 src/MNH/ch_aer_eqm_initn.f90     |   3 +-
 src/MNH/ch_aer_nucl.f90          |  12 +-
 src/MNH/ch_aer_reallfin.f90      |   3 +-
 src/MNH/ch_aer_solv.f90          |  13 +-
 src/MNH/ch_aer_wetdepn.f90       |   5 +-
 src/MNH/ch_aqueous_tmicice.f90   |   3 +-
 src/MNH/ch_model0d.f90           |   2 +
 src/MNH/ch_read_chem.f90         |   2 +
 src/MNH/ch_write_chem.f90        |   2 +
 src/MNH/exchange.f90             |  12 +-
 src/MNH/mode_aero_psd.f90        |   4 +
 src/MNH/prep_real_case.f90       |   8 +-
 src/SURFEX/ch_emission_fluxn.F90 |  11 +-
 src/SURFEX/mode_aer_surf.F90     |  10 +-
 16 files changed, 83 insertions(+), 521 deletions(-)

diff --git a/src/MNH/BASIC.f90 b/src/MNH/BASIC.f90
index 0a3a8f4b2..d01f28929 100644
--- a/src/MNH/BASIC.f90
+++ b/src/MNH/BASIC.f90
@@ -1,21 +1,16 @@
-!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
-!MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
-!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt  
-!MNH_LIC for details. version 1.
-!
 !
 !========================================================================
 !
 ! The following species appear on the left hand side of a reaction,
 ! but they are not in the list of prognostic variables. Make sure that
 ! they are defined elsewhere (in begin_module as TPK%something):
-! CO2
+! H2
 ! O1D
+! W_O2
 ! O3P
-! H2
 ! H2O
+! CO2
 ! N2
-! W_O2
 ! O2
 !
 !========================================================================
@@ -23,11 +18,11 @@
 ! The following species appear on the right hand side of a reaction,
 ! but they are not in the list of prognostic variables. Make sure that
 ! they are really final products or defined elsewhere:
-! CO2
+! H2
 ! O1D
 ! O3P
-! H2
 ! H2O
+! CO2
 ! N2
 ! O2
 !
@@ -1977,468 +1972,6 @@ END MODULE MODD_CH_M9_SCHEME
 !
 !========================================================================
 !
-! /BEGIN_ADDITIONAL/
-!
-!     ################
-      MODULE MODI_TROE
-!     ################
-INTERFACE
-FUNCTION TROE(PCOEF,PKO, PNEXP, PKINF, PMEXP, PM, PT, KVECNPT)
-IMPLICIT NONE
-INTEGER,                  INTENT(IN) :: KVECNPT ! no. of points in vector mask
-REAL, DIMENSION(KVECNPT)             :: TROE 
-REAL,                     INTENT(IN) :: PCOEF,PKO, PNEXP, PKINF, PMEXP
-REAL, DIMENSION(KVECNPT), INTENT(IN) :: PM, PT
-END FUNCTION TROE
-END INTERFACE
-END MODULE MODI_TROE
-!
-!========================================================================
-!!    #############################################################
-      FUNCTION TROE(PCOEF,PKO, PNEXP, PKINF, PMEXP, PM, PT,KVECNPT)
-!!    #############################################################
-!!
-!!*** *TROE*
-!!
-!!    PURPOSE
-!!    -------
-!     this function implements the TROE reaction rate for RACM
-!!
-!!    REFERENCE
-!!    ---------
-!!    Stockwell et al., JGR, 1997
-!!
-!!    AUTHOR
-!!    ------
-!!    Karsten Suhre (LA)
-!!    
-!!    MODIFICATIONS
-!!    -------------
-!!    Original 27/01/98
-!!
-!!------------------------------------------------------------------------------
-!!
-!!    EXTERNAL
-!!    --------
-!!    none
-!!
-!!    IMPLICIT ARGUMENTS
-!!    ------------------
-!!    none
-!!
-!!    EXPLICIT ARGUMENTS
-!!    ------------------
-IMPLICIT NONE
-INTEGER,                  INTENT(IN) :: KVECNPT ! no. of points in vector mask
-REAL, DIMENSION(KVECNPT)             :: TROE 
-REAL,                     INTENT(IN) :: PCOEF,PKO, PNEXP, PKINF, PMEXP
-REAL, DIMENSION(KVECNPT), INTENT(IN) :: PM, PT
-!!
-!!    LOCAL VARIABLES
-!!    ---------------
-REAL, DIMENSION(KVECNPT) :: ZKOTM, ZKINFT, ZFACT
-!!
-!------------------------------------------------------------------------------
-!!
-!!    EXECUTABLE STATEMENTS
-!!    ---------------------
-!
-!*        1. THE EXPRESSION
-!         -----------------
-!
-ZKOTM(:)  = PM(:) * PKO * ( (PT(:)/300.)**(-PNEXP) )
-ZKINFT(:) = PKINF * ( (PT(:)/300.)**(-PMEXP) )
-ZFACT(:)  = 0.6**(1./(1.+ALOG10(ZKOTM(:)/ZKINFT(:))**2 ))
-TROE(:)   = PCOEF*(ZKOTM(:)/(1.+ZKOTM(:)/ZKINFT(:)))*ZFACT(:)
-!
-END FUNCTION TROE
-!
-!========================================================================
-!
-!     ######################
-      MODULE MODI_TROE_EQUIL
-!     ######################
-INTERFACE
-FUNCTION TROE_EQUIL(PKO, PNEXP, PKINF, PMEXP, PAFACT, PB, PM, PT, KVECNPT)
-IMPLICIT NONE
-INTEGER,                  INTENT(IN) :: KVECNPT ! no. of points in vector mask
-REAL,DIMENSION(KVECNPT)              :: TROE_EQUIL 
-REAL,                     INTENT(IN) :: PKO, PNEXP, PKINF, PMEXP, PAFACT, PB
-REAL, DIMENSION(KVECNPT), INTENT(IN) :: PM, PT
-END FUNCTION TROE_EQUIL
-END INTERFACE
-END MODULE MODI_TROE_EQUIL
-!
-!!    #########################################################################
-      FUNCTION TROE_EQUIL(PKO, PNEXP, PKINF, PMEXP, PAFACT, PB, PM, PT,KVECNPT)
-!!    #########################################################################
-!!
-!!*** *TROE_EQUIL*
-!!
-!!    PURPOSE
-!!    -------
-!     this function implements the TROE_EQUIL reaction rate for RACM
-!!
-!!    REFERENCE
-!!    ---------
-!!    Stockwell et al., JGR, 1997
-!!
-!!    AUTHOR
-!!    ------
-!!    Karsten Suhre (LA)
-!!    
-!!    MODIFICATIONS
-!!    -------------
-!!    Original 27/01/98
-!!
-!!------------------------------------------------------------------------------
-!!
-!!    EXTERNAL
-!!    --------
-!!    none
-!!
-!!    IMPLICIT ARGUMENTS
-!!    ------------------
-!!    none
-!!
-!!    EXPLICIT ARGUMENTS
-!!    ------------------
-IMPLICIT NONE
-INTEGER,                  INTENT(IN) :: KVECNPT ! no. of points in vector mask
-REAL,DIMENSION(KVECNPT)              :: TROE_EQUIL 
-REAL,                     INTENT(IN) :: PKO, PNEXP, PKINF, PMEXP, PAFACT, PB
-REAL, DIMENSION(KVECNPT), INTENT(IN) :: PM, PT
-!!
-!!    LOCAL VARIABLES
-!!    ---------------
-REAL, DIMENSION(KVECNPT) :: ZKOTM, ZKINFT, ZFACT
-!!
-!------------------------------------------------------------------------------
-!!
-!!    EXECUTABLE STATEMENTS
-!!    ---------------------
-!
-!*        1. THE EXPRESSION
-!         -----------------
-!
-ZKOTM(:)      = PM(:) * PKO * ( (PT(:)/300.)**(-PNEXP) )
-ZKINFT(:)     = PKINF * ( (PT(:)/300.)**(-PMEXP) )
-ZFACT(:)      = 0.6**(1./(1.+ALOG10(ZKOTM(:)/ZKINFT(:))**2 ))
-TROE_EQUIL(:) = PAFACT*exp(-PB/PT)*(ZKOTM/(1.+ZKOTM(:)/ZKINFT(:)))*ZFACT(:)
-!
-END FUNCTION TROE_EQUIL
-!
-!========================================================================
-!
-!     ##############
-      MODULE MODI_KT
-!     ##############
-INTERFACE
-FUNCTION KT(PALPHA, PMM, PT, PRAD, KVECNPT)
-IMPLICIT NONE
-INTEGER,                  INTENT(IN) :: KVECNPT ! no. of points in vector mask
-REAL, DIMENSION(KVECNPT)             :: KT
-REAL,                     INTENT(IN) :: PALPHA,PMM
-REAL, DIMENSION(KVECNPT), INTENT(IN) :: PT, PRAD
-END FUNCTION KT
-END INTERFACE
-END MODULE MODI_KT
-!
-!
-!!    ###########################################
-      FUNCTION KT(PALPHA, PMM, PT, PRAD, KVECNPT)
-!!    ###########################################
-!!
-!!*** *KT*
-!!
-!!    PURPOSE
-!!    -------
-!     this function implements the mass transfer reaction rate
-!     for exchange between gas and aqueous phase
-!!
-!!    REFERENCE
-!!    ---------
-!!    Schwartz, 1986
-!!
-!!    AUTHORS
-!!    ------
-!!    Céline Mari & Maud Leriche (LA)
-!! 
-!!    MODIFICATIONS
-!!    -------------
-!!    Original 22/02/2007
-!!
-!!------------------------------------------------------------------------------
-!!
-!!    EXTERNAL
-!!    --------
-!!    none
-!!
-!!    IMPLICIT ARGUMENTS
-!!    ------------------
-!!    none
-!!
-!!    EXPLICIT ARGUMENTS
-!!    ------------------
-IMPLICIT NONE
-INTEGER,                  INTENT(IN) :: KVECNPT ! no. of points in vector mask
-REAL, DIMENSION(KVECNPT)             :: KT
-REAL,                     INTENT(IN) :: PALPHA,PMM
-REAL, DIMENSION(KVECNPT), INTENT(IN) :: PT, PRAD
-!!
-!!    LOCAL VARIABLES
-!!    ---------------
-REAL, DIMENSION(KVECNPT)             :: ZDG, ZV
-!
-!!
-!------------------------------------------------------------------------------
-!!
-!!    EXECUTABLE STATEMENTS
-!!    ---------------------
-!
-!*        1. THE EXPRESSION
-!         -----------------
-!
-ZV(:) = SQRT(8.*PT(:)*8.3144/(PMM*1.e-3)/3.1415926535898)
-ZDG(:) = 1.e-7 * ZV(:) /3.    !gas-phase diffusion
-KT(:) = 1./(PRAD(:)*PRAD(:)/(3.*ZDG(:))+(4.*PRAD(:)/(3.*ZV(:)*PALPHA)))
-!
-END FUNCTION KT
-!
-!========================================================================
-!
-!     #################
-      MODULE MODI_HENRY
-!     #################
-INTERFACE
-FUNCTION HENRY(PH, PDEPT, PT, KVECNPT)
-IMPLICIT NONE
-INTEGER,                  INTENT(IN) :: KVECNPT ! no. of points in vector mask
-REAL, DIMENSION(KVECNPT)             :: HENRY
-REAL,                     INTENT(IN) :: PH,PDEPT
-REAL, DIMENSION(KVECNPT), INTENT(IN) :: PT
-END FUNCTION HENRY
-END INTERFACE
-END MODULE MODI_HENRY
-!
-!
-!!    ###########################################
-      FUNCTION HENRY(PH, PDEPT, PT, KVECNPT)
-!!    ###########################################
-!!
-!!*** *HENRY*
-!!
-!!    PURPOSE
-!!    -------
-!     this function computes the henry's law constant at a given temperature
-!!
-!!    AUTHOR
-!!    ------
-!!    Maud Leriche (LA)
-!! 
-!!    MODIFICATIONS
-!!    -------------
-!!    Original 23/02/2007
-!!
-!!------------------------------------------------------------------------------
-!!
-!!    EXTERNAL
-!!    --------
-!!    none
-!!
-!!    IMPLICIT ARGUMENTS
-!!    ------------------
-!!    none
-!!
-!!    EXPLICIT ARGUMENTS
-!!    ------------------
-IMPLICIT NONE
-INTEGER,                  INTENT(IN) :: KVECNPT ! no. of points in vector mask
-REAL, DIMENSION(KVECNPT)             :: HENRY
-REAL,                     INTENT(IN) :: PH,PDEPT
-REAL, DIMENSION(KVECNPT), INTENT(IN) :: PT
-!!
-!------------------------------------------------------------------------------
-!!
-!!    EXECUTABLE STATEMENTS
-!!    ---------------------
-!
-!*        1. THE EXPRESSION
-!         -----------------
-!
-HENRY(:) = PH*EXP(-PDEPT*((1./PT(:))-(1./298.15)))
-!
-END FUNCTION HENRY
-!
-!========================================================================
-!
-!     #################
-      MODULE MODI_HEFFA
-!     #################
-INTERFACE
-FUNCTION HEFFA(PH, PDEPT, PK1, PDEPT1, PK2, PDEPT2, PPH, PT, KVECNPT)
-IMPLICIT NONE
-INTEGER,                  INTENT(IN) :: KVECNPT ! no. of points in vector mask
-REAL, DIMENSION(KVECNPT)             :: HEFFA
-REAL,                     INTENT(IN) :: PH,PDEPT,PK1,PDEPT1,PK2,PDEPT2
-REAL, DIMENSION(KVECNPT), INTENT(IN) :: PT,PPH
-END FUNCTION HEFFA
-END INTERFACE
-END MODULE MODI_HEFFA
-!
-!
-!!    #####################################################################
-      FUNCTION HEFFA(PH, PDEPT, PK1, PDEPT1, PK2, PDEPT2, PPH, PT, KVECNPT)
-!!    #####################################################################
-!!
-!!*** *HEFFA*
-!!
-!!    PURPOSE
-!!    -------
-!     this function computes the effective henry's law constant
-!     at a given temperature for acid
-!!
-!!    AUTHOR
-!!    ------
-!!    Maud Leriche (LA)
-!! 
-!!    MODIFICATIONS
-!!    -------------
-!!    Original 23/02/2007
-!!
-!!------------------------------------------------------------------------------
-!!
-!!    EXTERNAL
-!!    --------
-!!    none
-!!
-!!    IMPLICIT ARGUMENTS
-!!    ------------------
-!!    none
-!!
-!!    EXPLICIT ARGUMENTS
-!!    ------------------
-IMPLICIT NONE
-INTEGER,                  INTENT(IN) :: KVECNPT ! no. of points in vector mask
-REAL, DIMENSION(KVECNPT)             :: HEFFA
-REAL,                     INTENT(IN) :: PH,PDEPT,PK1,PDEPT1,PK2,PDEPT2
-REAL, DIMENSION(KVECNPT), INTENT(IN) :: PT,PPH
-!!
-!!    LOCAL VARIABLES
-!!    ---------------
-REAL, DIMENSION(KVECNPT)             :: ZHPLUS, ZH, ZK1, ZK2
-!!
-!------------------------------------------------------------------------------
-!!
-!!    EXECUTABLE STATEMENTS
-!!    ---------------------
-!
-!*        0. Concentration of H+
-!         -------------------------
-!
-ZHPLUS(:) = 10.**(-PPH(:))
-!
-!*        1. Temperature dependency
-!         -------------------------
-!
-ZH(:) = PH*EXP(-PDEPT*((1./PT(:))-(1./298.15)))
-ZK1(:) = PK1*EXP(-PDEPT1*((1./PT(:))-(1./298.15)))
-ZK2(:) = PK2*EXP(-PDEPT2*((1./PT(:))-(1./298.15)))
-!
-!*        2. THE EXPRESSION
-!         -----------------
-!
-HEFFA(:) = ZH(:)*( 1.0 + (ZK1(:)/ZHPLUS(:))*(1.0+(ZK2(:)/(ZHPLUS(:)))) )
-!
-END FUNCTION HEFFA
-!
-!========================================================================
-!
-!     #################
-      MODULE MODI_HEFFB
-!     #################
-INTERFACE
-FUNCTION HEFFB(PH, PDEPT, PK1, PDEPT1, PPH, PT, KVECNPT)
-IMPLICIT NONE
-INTEGER,                  INTENT(IN) :: KVECNPT ! no. of points in vector mask
-REAL, DIMENSION(KVECNPT)             :: HEFFB
-REAL,                     INTENT(IN) :: PH,PDEPT,PK1,PDEPT1
-REAL, DIMENSION(KVECNPT), INTENT(IN) :: PT,PPH
-END FUNCTION HEFFB
-END INTERFACE
-END MODULE MODI_HEFFB
-!
-!
-!!    ########################################################
-      FUNCTION HEFFB(PH, PDEPT, PK1, PDEPT1, PPH, PT, KVECNPT)
-!!    ########################################################
-!!
-!!*** *HEFFB*
-!!
-!!    PURPOSE
-!!    -------
-!     this function computes the effective henry's law constant
-!     at a given temperature for base
-!!
-!!    AUTHOR
-!!    ------
-!!    Maud Leriche (LA)
-!! 
-!!    MODIFICATIONS
-!!    -------------
-!!    Original 23/02/2007
-!!
-!!------------------------------------------------------------------------------
-!!
-!!    EXTERNAL
-!!    --------
-!!    none
-!!
-!!    IMPLICIT ARGUMENTS
-!!    ------------------
-!!    none
-!!
-!!    EXPLICIT ARGUMENTS
-!!    ------------------
-IMPLICIT NONE
-INTEGER,                  INTENT(IN) :: KVECNPT ! no. of points in vector mask
-REAL, DIMENSION(KVECNPT)             :: HEFFB
-REAL,                     INTENT(IN) :: PH,PDEPT,PK1,PDEPT1
-REAL, DIMENSION(KVECNPT), INTENT(IN) :: PT,PPH
-!!
-!!    LOCAL VARIABLES
-!!    ---------------
-REAL, DIMENSION(KVECNPT)             :: ZKH2O, ZHPLUS, ZOHM, ZH, ZK1
-!!
-!------------------------------------------------------------------------------
-!!
-!!    EXECUTABLE STATEMENTS
-!!    ---------------------
-!
-!*        0. Concentration of OH-
-!         -------------------------
-!
-ZHPLUS(:) = 10.**(-PPH(:))
-ZKH2O = 1.e-14*EXP(-6716*((1./PT(:))-(1./298.15)))
-ZOHM(:) = ZKH2O(:)/ZHPLUS(:)
-!
-!*        1. Temperature dependency
-!         -------------------------
-!
-ZH(:) = PH*EXP(-PDEPT*((1./PT(:))-(1./298.15)))
-ZK1(:) = PK1*EXP(-PDEPT1*((1./PT(:))-(1./298.15)))
-!
-!*        2. THE EXPRESSION
-!         -----------------
-!
-HEFFB(:) = ZH(:)*( 1.0 + ZK1(:)/ZOHM(:) )
-!
-END FUNCTION HEFFB
-!
-! /END_ADDITIONAL/
-!
-!========================================================================
-!
 !     ##########################
       MODULE MODI_CH_ALLOCATE_TACCS
 !     ##########################
@@ -28772,12 +28305,12 @@ USE MODD_CH_M9_SCHEME
 USE MODD_CH_M9_n,        ONLY : METEOTRANSTYPE
 USE MODD_CH_MNHC_n,      ONLY : XRTMIN_AQ, XCH_PHINIT
 !     USER DEFINED FUNCTIONS
-USE MODI_HEFFA
-USE MODI_HEFFB
-USE MODI_TROE
 USE MODI_KT
-USE MODI_TROE_EQUIL
+USE MODI_TROE
 USE MODI_HENRY
+USE MODI_HEFFA
+USE MODI_TROE_EQUIL
+USE MODI_HEFFB
 !!
 !!    EXPLICIT ARGUMENTS
 !!    ------------------
@@ -29635,12 +29168,12 @@ USE MODD_CH_M9_SCHEME
 USE MODD_CH_M9_n,        ONLY : METEOTRANSTYPE
 USE MODI_CH_ALLOCATE_TACCS
 !     USER DEFINED FUNCTIONS
-USE MODI_HEFFA
-USE MODI_HEFFB
-USE MODI_TROE
 USE MODI_KT
-USE MODI_TROE_EQUIL
+USE MODI_TROE
 USE MODI_HENRY
+USE MODI_HEFFA
+USE MODI_TROE_EQUIL
+USE MODI_HEFFB
 !!
 !!    EXPLICIT ARGUMENTS
 !!    ------------------
diff --git a/src/MNH/ch_aer_driver.f90 b/src/MNH/ch_aer_driver.f90
index c7262ca28..dc81a8e59 100644
--- a/src/MNH/ch_aer_driver.f90
+++ b/src/MNH/ch_aer_driver.f90
@@ -55,6 +55,7 @@ SUBROUTINE CH_AER_DRIVER(PM, PSIG0, PRG0, PN0, PCTOTG, PCTOTA,&
 !!    MODIFICATIONS
 !!    -------------
 !!    Original
+!!       M.Leriche 2015 Calcul de la fraction massique entre les modes
 !!
 !!    EXTERNAL
 !!    --------
@@ -84,7 +85,7 @@ REAL,                 DIMENSION(:),     INTENT(IN)    :: PRV, PDENAIR, PPRESSURE
 !
 !  Declarations variables internes
 !
-INTEGER                       :: II
+INTEGER                       :: II, JI, JJ
 
 ! Variables utilisees pour le tranfert de moment de chaque espece
 ! pour la condensation 
@@ -97,7 +98,7 @@ REAL                          :: ZGASMW       ! Molecular weight of background
 REAL, DIMENSION(SIZE(PM,1))   :: ZPGAS        ! background gas pressure (Pa)
 REAL, DIMENSION(SIZE(PM,1))   :: ZRH,PSAT            ! Relative humidity
 REAL                          :: ZDT          ! Pas de temps
-REAL, DIMENSION(SIZE(PM,1))   :: ZPKM, ZPKH2O
+REAL, DIMENSION(SIZE(PM,1))   :: ZPKM, ZPKH2O, ZSUM
 
 !-----------------------------------------------------------------------------
 
@@ -110,6 +111,22 @@ NM0(2) = 4
 NM3(2) = 5
 NM6(2) = 6
 
+!*************************************************************
+! Calcul de la fraction massique entre les modes
+!*************************************************************
+ZSUM (:) = 0.
+DO JI=1,JPMODE
+  DO JJ=1,NSP+NCARB+NSOA
+    ZSUM (:) = ZSUM (:) + PCTOTA(:,JJ,JI)
+  ENDDO
+ENDDO
+POM(:,:) = 0.
+DO JI=1,JPMODE
+  DO JJ=1,NSP+NCARB+NSOA
+    POM(:,JI)  =  POM(:,JI) + PCTOTA(:,JJ,JI) / ZSUM (:)
+  ENDDO
+ENDDO
+
 
 !******************************************************
 !      Thermodynamic variables initialization
diff --git a/src/MNH/ch_aer_eqm_initn.f90 b/src/MNH/ch_aer_eqm_initn.f90
index 8de41ffcc..ef4f69812 100644
--- a/src/MNH/ch_aer_eqm_initn.f90
+++ b/src/MNH/ch_aer_eqm_initn.f90
@@ -48,7 +48,7 @@ END MODULE MODI_CH_AER_EQM_INIT_n
 !!
 !!    MODIFICATIONS
 !!    -------------
-!!    none
+!!    M.Leriche 2015 : masse molaire Black carbon à 12 g/mol
 !!
 !!    EXTERNAL
 !!    --------
@@ -132,6 +132,7 @@ XMI(:,:,:,JP_AER_SO4)  = 98.
 XMI(:,:,:,JP_AER_NO3)  = 63.
 XMI(:,:,:,JP_AER_NH3)  = 17.
 XMI(:,:,:,JP_AER_H2O)  = 18.
+XMI(:,:,:,JP_AER_BC) = 12.
 XMI(:,:,:,JP_AER_DST)  = 100.
 IF (NSOA .EQ. 10) THEN
 XMI(:,:,:,JP_AER_SOA1) = 88. 
diff --git a/src/MNH/ch_aer_nucl.f90 b/src/MNH/ch_aer_nucl.f90
index d3acfcef1..738f80a9c 100644
--- a/src/MNH/ch_aer_nucl.f90
+++ b/src/MNH/ch_aer_nucl.f90
@@ -49,6 +49,7 @@ SUBROUTINE CH_AER_NUCL(ZRH,ZT,ZCONC,ZJ,ZAL,KVECNPT)
 !!    MODIFICATIONS
 !!    -------------
 !!     P. Tulet       05/01/04 
+!!    M.Leriche 2015 : correction bug
 !----------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -79,6 +80,8 @@ XH2O(:) = ZRH(:)*PVH2O(:)/(Kb*ZT(:))/1.E6
 
 ZJ(:)=0.
 ZAL(:)=0.
+RA(:)=0.
+
 WHERE(((ZT(:)>=223.).OR.(ZT(:)<=298)).AND.(ZRH(:)>=0.1))
 !   1. Saturation vapor pressure for water (N/m2, T in K)
 !         (Preining et al, 1981)
@@ -100,14 +103,13 @@ WHERE(((ZT(:)>=223.).OR.(ZT(:)<=298)).AND.(ZRH(:)>=0.1))
 END WHERE
 !   5.    H2SO4 mole fraction in the critical nucleous 
   DO II=1,SIZE(ZCONC,1)
-  IF((ZCONC(II)>0.).AND.(XH2O(II)>0.)) THEN
+  IF((ZCONC(II)>0.).AND.(XH2O(II)>0.).AND.(RA(II)/=0.)) THEN
     ZAL(II)=1.2233-0.0154*RA(II)/(RA(II)+ZRH(II))+0.0102*&
          LOG(ZCONC(II))-0.0415*LOG(XH2O(II))+0.0016*ZT(II)
   END IF
   END DO
 
-WHERE(((ZT(:)>=223.).OR.(ZT(:)<=298)).AND.(ZRH(:)>=0.1))
-  WHERE(ZAL(:)/=0.)
+WHERE(((ZT(:)>=223.).OR.(ZT(:)<=298)).AND.(ZRH(:)>=0.1).AND.ZAL(:)/=0.)
     !   6.    Sulfuric nucleation rate (molec/cm3/s) 
     XNSULFC(:)=EXP(-14.5125+0.1335*ZT(:)-10.5462*ZRH(:)+1958.4*ZRH(:)/ZT(:))
     SIG(:) = 1.+(ZT(:)-273.15)/273.15
@@ -115,11 +117,7 @@ WHERE(((ZT(:)>=223.).OR.(ZT(:)<=298)).AND.(ZRH(:)>=0.1))
     KHI(:)=25.1289*XNSULF(:)-4890.8*XNSULF(:)/ZT(:)-1743.3/ZT(:)-2.2479*SIG(:)*XNSULF(:)*ZRH(:)+&
          7643.4*ZAL(:)/ZT(:)-1.9712*ZAL(:)*SIG(:)/ZRH(:)
     ZJ(:)=EXP(KHI(:))
-  END WHERE
 END WHERE
-!WHERE(RA(:)>1)
-!  ZJ(:)=0.
-!END WHERE
 
 RETURN
 END SUBROUTINE CH_AER_NUCL
diff --git a/src/MNH/ch_aer_reallfin.f90 b/src/MNH/ch_aer_reallfin.f90
index 7cd7ca1e5..99b0f8766 100644
--- a/src/MNH/ch_aer_reallfin.f90
+++ b/src/MNH/ch_aer_reallfin.f90
@@ -46,7 +46,7 @@ END MODULE MODI_CH_AER_REALLFI_n
 !!
 !!    MODIFICATIONS
 !!    -------------
-!!    none
+!!    M.Leriche 2015 : masse molaire Black carbon à 12 g/mol
 !!
 !!    EXTERNAL
 !!    --------
@@ -117,6 +117,7 @@ ZMI(JP_AER_SO4)  = 98.
 ZMI(JP_AER_NO3)  = 63.
 ZMI(JP_AER_NH3)  = 17.
 ZMI(JP_AER_H2O)  = 18.
+ZMI(JP_AER_BC)   = 12.
 ZMI(JP_AER_DST)  = 100.
 !
 IF (NSOA .EQ. 10) THEN
diff --git a/src/MNH/ch_aer_solv.f90 b/src/MNH/ch_aer_solv.f90
index 5e104e8d4..6bfd75ce3 100644
--- a/src/MNH/ch_aer_solv.f90
+++ b/src/MNH/ch_aer_solv.f90
@@ -65,7 +65,7 @@ END MODULE MODI_CH_AER_SOLV
 !!
 !!    EXTERNAL
 !!    --------
-!!    None
+!!    M.Leriche 2015 correction bug
 !-------------------------------------------------------------------------------
 !
 !*       0.     DECLARATIONS
@@ -101,7 +101,6 @@ INTEGER :: JI,JJ,JK, JN, IDT
 REAL, DIMENSION(SIZE(PM,1)) :: ZSUM
 REAL, DIMENSION(SIZE(PM,1),JPMODE) :: ZNEWM, ZMASK
 REAL, DIMENSION(SIZE(PM,1)) :: ZSIGMA
-REAL, DIMENSION(SIZE(POM,1),SIZE(POM,2)) :: ZOM
 
 REAL, DIMENSION(SIZE(PM,1)) :: ZA,ZB,ZC,ZD
 REAL, DIMENSION(SIZE(PM,1)) :: ZCONST1,ZCONST2
@@ -168,7 +167,7 @@ ZA(:)=0.
 ZB(:)=0.
 ZC(:)=0.
 ZA(:)=PDMINTRA(:,NM0(JI))
-!ZB(:)=PDMINTER(:,NM0(JI))
+ZB(:)=PDMINTER(:,NM0(JI))
 ZC(:)=PDMCOND(:,NM0(JI))
 
 DO JK=1,SIZE(PM,1)
@@ -266,10 +265,10 @@ DO JI=1,JPMODE
     ZSUM (:) = ZSUM (:) + PCTOTA(:,JJ,JI)
   ENDDO
 ENDDO
-ZOM(:,:) = 0.
+POM(:,:) = 0.
 DO JI=1,JPMODE
   DO JJ=1,NSP+NCARB+NSOA
-    ZOM(:,JI)  =  ZOM(:,JI) + PCTOTA(:,JJ,JI) / ZSUM (:) 
+    POM(:,JI)  =  POM(:,JI) + PCTOTA(:,JJ,JI) / ZSUM (:) 
   ENDDO
 ENDDO
   
@@ -280,7 +279,7 @@ ENDDO
 IDT = INT(MAX(5.*PDT,1.))
 IF ((PDT .GT. 0.).AND.( MOD(INT(PTIME) , IDT) .EQ. 0)) THEN
 !IF (PDT .GT. 0.) THEN
-  CALL CH_AER_MINERAL(PCTOTG, PCTOTA,PRV, PDENAIR, PPRESSURE, PTEMP, PRC, ZOM,&
+  CALL CH_AER_MINERAL(PCTOTG, PCTOTA,PRV, PDENAIR, PPRESSURE, PTEMP, PRC, POM,&
                       PCCTOT,PSIG0, PRG0, PDT)
 
 ! Equilibre Organiques
@@ -288,7 +287,7 @@ IF ((PDT .GT. 0.).AND.( MOD(INT(PTIME) , IDT) .EQ. 0)) THEN
 
   IF (NSOA .EQ. 10)   CALL CH_AER_ORGANIC(PCTOTG, PCTOTA,PRV, PDENAIR, &
                                           PPRESSURE, PTEMP,&
-                                          PRC, ZOM, PCCTOT,PSIG0, PRG0, PDT, PSOLORG)
+                                          PRC, POM, PCCTOT,PSIG0, PRG0, PDT, PSOLORG)
 END IF
 
 ! Mass need to be positive
diff --git a/src/MNH/ch_aer_wetdepn.f90 b/src/MNH/ch_aer_wetdepn.f90
index bd5d263b6..b1041d55d 100644
--- a/src/MNH/ch_aer_wetdepn.f90
+++ b/src/MNH/ch_aer_wetdepn.f90
@@ -50,6 +50,7 @@ END MODULE MODI_CH_AER_WETDEP_n
 !!   MODIFICATIONS
 !!    -------------
 !!   Original
+!!    M.Leriche 2015 correction bug
 !!
 ! Entry variables:
 !
@@ -107,11 +108,11 @@ ZPMIN(6) = ZPMIN(4) * (ZRGMIN**6)*EXP(18. * LOG(XSIGJMIN)**2)
 !
 CALL  PPP2AERO(PSVT, PRHODREF, PSIG3D=ZSIG, PRG3D=ZRG, PM3D=ZPMOLD)
 CALL  PPP2AERO(PCWETDEP, PRHODREF, PSIG3D=ZSIGN, PRG3D=ZRGN, PM3D=ZPM)
+!
+DO JN=1,JPMODE
 WHERE (ZPM(:,:,:,NM3(JN)) .LT. ZPMIN(NM3(JN)))
    ZPM(:,:,:,NM3(JN)) = ZPMOLD(:,:,:,NM3(JN))
 END WHERE
-!
-DO JN=1,JPMODE
 ! Calcul pour maintenir le rayon fixe pour la sedimentation :
  IF (LRGFIX) THEN
     ZPM(:,:,:,NM0(JN)) = ZPM(:,:,:,NM3(JN)) / &
diff --git a/src/MNH/ch_aqueous_tmicice.f90 b/src/MNH/ch_aqueous_tmicice.f90
index 4d0bd5b52..042fefda1 100644
--- a/src/MNH/ch_aqueous_tmicice.f90
+++ b/src/MNH/ch_aqueous_tmicice.f90
@@ -100,6 +100,7 @@ END MODULE MODI_CH_AQUEOUS_TMICICE
 !!    M. Leriche 17/09/2010 add OUSECHIC flag
 !!    Juan 24/09/2012: for BUG Pgi rewrite PACK function on mode_pack_pgi
 !!    J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1
+!!    M.Leriche 2015 correction bug
 !!
 !-------------------------------------------------------------------------------
 !
@@ -1107,7 +1108,6 @@ ENDIF
 !
  ZZW(:) = 0.0
  ZZW2(:,:) = 0.0
- ZZW3(:,:) = 0.0
  ZZW4(:,:) = 0.0
  DO JL = 1,IMICRO
    IF ( (ZRGT(JL)>PRTMIN_AQ*1.e3/ZRHODREF(JL)) .AND.     &    ! wet case
@@ -1118,6 +1118,7 @@ ENDIF
      ZZW2(JL,:) = MAX(MIN(ZZW2(JL,:),(ZRSVT(JL,:)/PTSTEP)),0.0)
      ZRRSVS(JL,:) = ZRRSVS(JL,:) - ZZW2(JL,:)  ! rain -> graupel
      IF (OUSECHIC) THEN
+     ZZW3(:,:) = 0.0
      DO JLI = 1, SIZE(PSGRSVS,4)
        IF (TRIM(HICNAMES(JLI)) == 'IC_HNO3' .OR. TRIM(HICNAMES(JLI)) == 'IC_SULF' &
           .OR. TRIM(HICNAMES(JLI)) == 'IC_NH3' .OR. HICNAMES(JLI)(1:4) == 'IC_A' &
diff --git a/src/MNH/ch_model0d.f90 b/src/MNH/ch_model0d.f90
index 70c665dc3..f15d6c4e0 100644
--- a/src/MNH/ch_model0d.f90
+++ b/src/MNH/ch_model0d.f90
@@ -46,6 +46,7 @@
 !!    21/09/04 (P. Tulet) update for MASDEV44 bug2
 !!    21/03/06 (P. Tulet) update for MASDEV46 and add ORILAM aerosol scheme
 !!    24/24/14 (M. Leriche) add ReLACS3
+!!    M.Leriche 2015 : masse molaire Black carbon à 12 g/mol
 !!
 !!    EXTERNAL
 !!    --------
@@ -245,6 +246,7 @@ ZMI(1,JP_AER_SO4)  = 98.
 ZMI(1,JP_AER_NO3)  = 63.
 ZMI(1,JP_AER_NH3)  = 17.
 ZMI(1,JP_AER_H2O)  = 18.
+ZMI(1,JP_AER_BC)   = 12.
 IF (NSOA == 10) THEN
 ZMI(1,JP_AER_SOA1) = 88. 
 ZMI(1,JP_AER_SOA2) = 180.
diff --git a/src/MNH/ch_read_chem.f90 b/src/MNH/ch_read_chem.f90
index 2137bc887..edf49a458 100644
--- a/src/MNH/ch_read_chem.f90
+++ b/src/MNH/ch_read_chem.f90
@@ -59,6 +59,7 @@ END MODULE MODI_CH_READ_CHEM
 !!    Original 21/04/95
 !!    18/02/99 (K. Suhre) allow reading from namelist file
 !!    01/12/03 (D. Gazen)   change Chemical scheme interface
+!!    M.Leriche 2015 : masse molaire Black carbon à 12 g/mol
 !!
 !!    EXTERNAL
 !!    --------
@@ -158,6 +159,7 @@ ZMI(JP_AER_SO4)  = 98.
 ZMI(JP_AER_NO3)  = 63.
 ZMI(JP_AER_NH3)  = 17.
 ZMI(JP_AER_H2O)  = 18.
+ZMI(JP_AER_BC)   = 12.
 ZMI(JP_AER_DST)  = 100.
 IF (NSOA == 10) THEN
 ZMI(JP_AER_SOA1) = 88. 
diff --git a/src/MNH/ch_write_chem.f90 b/src/MNH/ch_write_chem.f90
index 72935df26..25ee92cc4 100644
--- a/src/MNH/ch_write_chem.f90
+++ b/src/MNH/ch_write_chem.f90
@@ -54,6 +54,7 @@ END MODULE MODI_CH_WRITE_CHEM
 !!    -------------
 !!    Original 21/04/95
 !!    01/12/03 (D. Gazen)   change Chemical scheme interface
+!!    M.Leriche 2015 : masse molaire Black carbon à 12 g/mol
 !!
 !!    EXTERNAL
 !!    --------
@@ -107,6 +108,7 @@ ZMI(JP_AER_SO4)  = 98.
 ZMI(JP_AER_NO3)  = 63.
 ZMI(JP_AER_NH3)  = 17.
 ZMI(JP_AER_H2O)  = 18.
+ZMI(JP_AER_BC)   = 12.
 ZMI(JP_AER_DST)  = 100.
 IF (NSOA == 10) THEN
 ZMI(JP_AER_SOA1) = 88. 
diff --git a/src/MNH/exchange.f90 b/src/MNH/exchange.f90
index 4827c03ea..ac14a5b9b 100644
--- a/src/MNH/exchange.f90
+++ b/src/MNH/exchange.f90
@@ -158,25 +158,25 @@ IF (SIZE(PRTKES,1) /= 0) PRTKES(:,:,:) = PRTKES(:,:,:)*PTSTEP/PRHODJ
 !      REMOVE NEGATIVE VALUES OF CHEM SCALAR
 !
 IF (LUSECHEM) THEN
-  DO JSV = 1, KSV
-    IF ( MIN_ll( PRSVS(:,:,:,NSV_CHEMBEG+JSV-1), IINFO_ll) < 0.0 ) THEN
+  DO JSV=NSV_CHEMBEG,NSV_CHEMEND
+    IF ( MIN_ll( PRSVS(:,:,:,JSV), IINFO_ll) < 0.0 ) THEN
 !
 ! compute the total water mass computation
 !
-      ZMASSTOT = MAX( 0. , SUM3D_ll( PRSVS(:,:,:,NSV_CHEMBEG+JSV-1), IINFO_ll ) )
+      ZMASSTOT = MAX( 0. , SUM3D_ll( PRSVS(:,:,:,JSV), IINFO_ll ) )
 !
 ! remove the negative values
 !
-      PRSVS(:,:,:,NSV_CHEMBEG+JSV-1) = MAX(0., PRSVS(:,:,:,NSV_CHEMBEG+JSV-1) )
+      PRSVS(:,:,:,JSV) = MAX(0., PRSVS(:,:,:,JSV) )
 !
 ! compute the new total mass
 !
-      ZMASSPOS = MAX(XMNH_TINY,SUM3D_ll( PRSVS(:,:,:,NSV_CHEMBEG+JSV-1), IINFO_ll ) )
+      ZMASSPOS = MAX(XMNH_TINY,SUM3D_ll( PRSVS(:,:,:,JSV), IINFO_ll ) )
 !
 ! correct again in such a way to conserve the total mass 
 !
       ZRATIO = ZMASSTOT / ZMASSPOS
-      PRSVS(:,:,:,NSV_CHEMBEG+JSV-1) = PRSVS(:,:,:,NSV_CHEMBEG+JSV-1) * ZRATIO
+      PRSVS(:,:,:,JSV) = PRSVS(:,:,:,JSV) * ZRATIO
 !
       WRITE(ILUOUT,*)'DUE TO CHEMISTRY',JSV,'HAS NEGATIVE VALUES'
       WRITE(ILUOUT,*)'SOURCES IS CORRECTED BY RATIO',ZRATIO
diff --git a/src/MNH/mode_aero_psd.f90 b/src/MNH/mode_aero_psd.f90
index 348c10216..cb09f5461 100644
--- a/src/MNH/mode_aero_psd.f90
+++ b/src/MNH/mode_aero_psd.f90
@@ -62,6 +62,7 @@ CONTAINS
 !!    MODIFICATIONS
 !!    -------------
 !!    Alf Grini (CNRM)
+!!    M.Leriche 2015 : masse molaire Black carbon à 12 g/mol
 !!
 !!    EXTERNAL
 !!    --------
@@ -135,6 +136,7 @@ ELSE
     ZMI(:,:,:,JP_AER_NO3)  = 63.
     ZMI(:,:,:,JP_AER_NH3)  = 17.
     ZMI(:,:,:,JP_AER_H2O)  = 18.
+    ZMI(:,:,:,JP_AER_BC)   = 12.
     IF (NSOA .EQ. 10) THEN
     ZMI(:,:,:,JP_AER_SOA1) = 88. 
     ZMI(:,:,:,JP_AER_SOA2) = 180.
@@ -410,6 +412,7 @@ ELSE
     ZMI(:,:,:,JP_AER_NO3)  = 63.
     ZMI(:,:,:,JP_AER_NH3)  = 17.
     ZMI(:,:,:,JP_AER_H2O)  = 18.
+    ZMI(:,:,:,JP_AER_BC)   = 12.
     ZMI(:,:,:,JP_AER_DST)  = 100.
     IF (NSOA .EQ. 10) THEN
     ZMI(:,:,:,JP_AER_SOA1) = 88. 
@@ -641,6 +644,7 @@ ELSE
     ZMI(:,JP_AER_NO3)  = 63.
     ZMI(:,JP_AER_NH3)  = 17.
     ZMI(:,JP_AER_H2O)  = 18.
+    ZMI(:,JP_AER_BC)   = 12.
     IF (NSOA .EQ. 10) THEN
     ZMI(:,JP_AER_SOA1) = 88. 
     ZMI(:,JP_AER_SOA2) = 180.
diff --git a/src/MNH/prep_real_case.f90 b/src/MNH/prep_real_case.f90
index 8133e5fa7..0d3a0aae5 100644
--- a/src/MNH/prep_real_case.f90
+++ b/src/MNH/prep_real_case.f90
@@ -378,6 +378,7 @@
 !!                  Fevr  2015     (M.Moge) Cleaning up
 !!                  Aug   2015     (M.Moge) removing EXTRAPOL on XDXX and XDYY in part 8
 !!    J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1
+!!    M.Leriche        2015 : add LUSECHEM  dans NAM_CH_CONF 
 !-------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -447,7 +448,7 @@ USE MODD_DUST,      ONLY:  LDUST, NMODE_DST, CRGUNITD, XINISIG, XINIRADIUS, XN0M
 USE MODD_SALT,      ONLY:  LSALT, NMODE_SLT, CRGUNITS, XINISIG_SLT, XINIRADIUS_SLT, XN0MIN_SLT
 USE MODD_IO_ll,   ONLY : GSMONOPROC
 USE MODD_PREP_REAL
-USE MODD_CH_MNHC_n, ONLY: LUSECHAQ_n=>LUSECHAQ,LUSECHIC_n=>LUSECHIC
+USE MODD_CH_MNHC_n, ONLY: LUSECHAQ_n=>LUSECHAQ,LUSECHIC_n=>LUSECHIC, LUSECHEM_n=>LUSECHEM
 USE MODI_READ_VER_GRID
 USE MODE_MPPDB
 USE MODE_SPLITTINGZ_ll
@@ -511,6 +512,7 @@ LOGICAL                           :: LDUMMY_REAL ! flag to read and interpolate
 INTEGER                           :: JRR      ! loop counter for moist var.
 LOGICAL  :: LUSECHAQ
 LOGICAL  :: LUSECHIC
+LOGICAL  :: LUSECHEM
 !
 !*       0.3   Declaration of namelists
 !              ------------------------
@@ -529,7 +531,7 @@ XANGCONV0, XANGCONV1000, XANGCONV2000,            &
                          XINISIGI, XINISIGJ, XN0IMIN, XN0JMIN, CRGUNIT, CRGUNITD,&
                          LSALT, CRGUNITS, NMODE_DST, XINISIG, XINIRADIUS, XN0MIN,&
                          XINISIG_SLT, XINIRADIUS_SLT, XN0MIN_SLT, NMODE_SLT
-NAMELIST/NAM_CH_CONF/ LUSECHAQ,LUSECHIC
+NAMELIST/NAM_CH_CONF/ LUSECHAQ,LUSECHIC,LUSECHEM
 ! name of dad of input FM file
 INTEGER                :: II, IJ, IGRID, ILENGTH
 CHARACTER (LEN=100)    :: HCOMMENT
@@ -1180,6 +1182,7 @@ XRES=XRES_n
 NITR=NITR_n
 LUSECHAQ=LUSECHAQ_n
 LUSECHIC=LUSECHIC_n
+LUSECHEM=LUSECHEM_n
 END SUBROUTINE INIT_NMLVAR
 
 SUBROUTINE UPDATE_MODD_FROM_NMLVAR
@@ -1189,6 +1192,7 @@ XRES_n=XRES
 NITR_n=NITR
 LUSECHAQ_n=LUSECHAQ
 LUSECHIC_n=LUSECHIC
+LUSECHEM_n=LUSECHEM
 END SUBROUTINE UPDATE_MODD_FROM_NMLVAR
 
 END PROGRAM PREP_REAL_CASE
diff --git a/src/SURFEX/ch_emission_fluxn.F90 b/src/SURFEX/ch_emission_fluxn.F90
index 6d9b29a12..80d8c0cdb 100644
--- a/src/SURFEX/ch_emission_fluxn.F90
+++ b/src/SURFEX/ch_emission_fluxn.F90
@@ -22,6 +22,7 @@
 !!    D.Gazen  01/12/03  change emissions handling for surf. externalization
 !!    P.Tulet  01/01/04  change emission conversion factor
 !!    P.Tulet  01/01/05  add dust, orilam
+!!    M.Leriche    2015  suppress ZDEPOT
 !!
 !!    EXTERNAL
 !!    --------
@@ -87,7 +88,6 @@ TYPE(PRONOSVAR_T),POINTER :: CURPRONOS !Current pronostic variable
 CHARACTER(LEN=6), DIMENSION(:), POINTER :: CNAMES
 REAL,DIMENSION(SIZE(PSFSV,1),KNBTS_MAX)     :: ZWORK ! temporary array for reading data
 REAL,DIMENSION(SIZE(PSFSV,1),SIZE(PSFSV,2)) :: ZEMIS ! interpolated in time emission flux
-REAL,DIMENSION(SIZE(PSFSV,1),SIZE(PSFSV,2))  :: ZDEPOT! interpolated in time deposition flux
 REAL,DIMENSION(SIZE(PSFSV,1))               :: ZFCO  ! CO flux
 INTEGER                          :: INEQ  ! number of chemical var
                                           !(=NEQ (chimie gaz) + NSV_AER (chimie aerosol)
@@ -134,7 +134,7 @@ DO JI=1,SIZE(TSEMISS)
 !
   IF (INBTS == 1) THEN
 !   Time Constant Flux
-!   XFWORK already points on data (see ch_buildemiss.f90)
+!   XFWORK already points on data (see build_emisstabn.F90)
     IF (IVERB >= 6) THEN
       WRITE(ILUOUT,*) 'NO interpolation for ',TRIM(TSEMISS(JI)%CNAME)
       IF (IVERB >= 10 ) WRITE(ILUOUT,*) TSEMISS(JI)%XFWORK
@@ -417,13 +417,6 @@ DO WHILE(ASSOCIATED(CURPRONOS))
 !
 END DO
 !
-ZDEPOT(:,:) = 0.
-WHERE (PSFSV(:,:) >= 0.) 
-  ZEMIS(:,:) = ZEMIS(:,:) + PSFSV(:,:)
-ELSE WHERE
-  ZDEPOT(:,:) = PSFSV(:,:)
-END WHERE
-!
 IF ((LCH_AERO_FLUX).AND.(NSV_AERBEG > 0)) THEN
   IF (GCO) THEN
     CALL CH_AER_EMISSION(ZEMIS, PRHOA, CSV, NSV_CHSBEG, PFCO=ZFCO)
diff --git a/src/SURFEX/mode_aer_surf.F90 b/src/SURFEX/mode_aer_surf.F90
index ca2895d0a..d1d17f673 100644
--- a/src/SURFEX/mode_aer_surf.F90
+++ b/src/SURFEX/mode_aer_surf.F90
@@ -9,7 +9,10 @@ MODULE MODE_AER_SURF
 !! MODULE DUST PSD (Particle Size Distribution)
 !! Purpose: Contains subroutines to convert from transported variables (ppp)
 !! to understandable aerosol variables, e.g. #/m3, kg/m3, sigma, R_{n}
-
+!!
+!! Modifications
+!!    M.Leriche 2015 : masse molaire Black carbon à 12 g/mol
+!!
   USE MODD_CHS_AEROSOL
   USE MODD_DST_SURF, ONLY : XDENSITY_DST
 !
@@ -60,6 +63,7 @@ ZMI(JP_AER_SO4)  = 98.
 ZMI(JP_AER_NO3)  = 63.
 ZMI(JP_AER_NH3)  = 17.
 ZMI(JP_AER_H2O)  = 18.
+ZMI(JP_AER_BC)  = 12.
 ZMI(JP_AER_DST)  = 100.
 IF (NSOA .EQ. 10) THEN
   ZMI(JP_AER_SOA1) = 88. 
@@ -234,8 +238,8 @@ ENDDO
 !
 !*       3    set  moment 0 
 !
-!ZM(:,1)=   MAX(ZSV(:,JP_CH_M0i) * 1E+6, XSURF_TINY) ! molec_{aer}/m3_{air}
-!ZM(:,4)=   MAX(ZSV(:,JP_CH_M0j) * 1E+6, XSURF_TINY) ! molec_{aer}/m3_{air}
+ZM(:,1)=   MAX(ZSV(:,JP_CH_M0i) * 1E+6, XSURF_TINY) ! molec_{aer}/m3_{air}
+ZM(:,4)=   MAX(ZSV(:,JP_CH_M0j) * 1E+6, XSURF_TINY) ! molec_{aer}/m3_{air}
 !WHERE ((ZM(:,1) .LT. ZMMIN(1)).OR.(ZM(:,2) .LT. ZMMIN(2)))
 !  ZM(:,1)= ZMMIN(1)
 !  ZM(:,2)= ZMMIN(2)
-- 
GitLab