Index: /LMDZ6/trunk/libf/phylmd/lmdz_blowing_snow_sublim_sedim.f90
===================================================================
--- /LMDZ6/trunk/libf/phylmd/lmdz_blowing_snow_sublim_sedim.f90	(revision 6010)
+++ /LMDZ6/trunk/libf/phylmd/lmdz_blowing_snow_sublim_sedim.f90	(revision 6011)
@@ -29,5 +29,4 @@
 !INPUT
 !=====
-
 integer, intent(in)                     :: ngrid ! number of horizontal grid points
 integer, intent(in)                     :: nlay  ! number of vertical layers
@@ -44,6 +43,4 @@
 ! OUTPUT
 !========
-
-
 real, intent(out), dimension(ngrid,nlay) :: dtemp_bs ! temperature tendency [K/s] 
 real, intent(out), dimension(ngrid,nlay) :: dqv_bs   ! water vapor tendency [kg/kg/s]
Index: /LMDZ6/trunk/libf/phylmd/lmdz_call_blowing_snow.f90
===================================================================
--- /LMDZ6/trunk/libf/phylmd/lmdz_call_blowing_snow.f90	(revision 6010)
+++ /LMDZ6/trunk/libf/phylmd/lmdz_call_blowing_snow.f90	(revision 6011)
@@ -4,44 +4,66 @@
 contains
 
-subroutine call_blowing_snow_sublim_sedim(ngrid,nlay,dtime,ustar,temp,q,qbs,pplay,paprs, &
-                                  dtemp_bs,dq_bs,dqbs_bs,bsfl,precip_bs)
+   subroutine call_blowing_snow(ngrid, nlay, abortphy, flag_inhib_tend, itap, dtime, ustar, temp, q, qb, pplay, paprs, &
+                                dtemp_bs, dq_bs, dqb_bs, bsfl, precip_bs)
 
-use lmdz_blowing_snow_sublim_sedim, only : blowing_snow_sublim_sedim
-implicit none
+!==================================================================================================
+! call_blowing_snow in the main interface between the LMDZ physics monitor physiq_mod
+! and the blowing snow parameterizations
+!
+! contact: Etienne Vignon etienne.vignon@lmd.ipsl.fr
+!================================================================================================
+
+      use lmdz_blowing_snow_sublim_sedim, only: blowing_snow_sublim_sedim
+      USE add_phys_tend_mod, ONLY: add_phys_tend, prt_enerbil
+
+      implicit none
+!======================================================
+! Declarations
+!======================================================
 
 !INPUT
 !=====
 
-integer, intent(in)                     :: ngrid,nlay
-real, intent(in)                        :: dtime
-real, intent(in), dimension(ngrid)      :: ustar
-real, intent(in), dimension(ngrid,nlay) :: temp
-real, intent(in), dimension(ngrid,nlay) :: q
-real, intent(in), dimension(ngrid,nlay) :: qbs
-real, intent(in), dimension(ngrid,nlay) :: pplay
-real, intent(in), dimension(ngrid,nlay+1) :: paprs
-
+      INTEGER, INTENT(IN)                     :: abortphy, flag_inhib_tend, itap ! flag and physics time counter for add_phys_tend
+      integer, intent(in)                     :: ngrid ! number of horizontal grid points
+      integer, intent(in)                     :: nlay  ! number of vertical layers
+      real, intent(in)                        :: dtime ! physics time step [s]
+      real, intent(in), dimension(ngrid)      :: ustar ! surface friction velocity [m/s]
+      real, intent(in), dimension(ngrid, nlay) :: temp  ! temperature of the air [K]
+      real, intent(in), dimension(ngrid, nlay) :: q     ! specific content of water [kg/kg]
+      real, intent(in), dimension(ngrid, nlay) :: qb    ! specific content of blowing snow [kg/kg]
+      real, intent(in), dimension(ngrid, nlay) :: pplay ! pressure at the middle of layers [Pa]
+      real, intent(in), dimension(ngrid, nlay + 1) :: paprs ! pressure at the layer bottom interface [Pa]
 
 ! OUTPUT
 !========
+      real, intent(out), dimension(ngrid, nlay) :: dtemp_bs ! temperature tendency [K/s]
+      real, intent(out), dimension(ngrid, nlay) :: dq_bs    ! water vapor tendency [kg/kg/s]
+      real, intent(out), dimension(ngrid, nlay) :: dqb_bs   ! blowing snow mass tendancy [kg/kg/s]
+      real, intent(out), dimension(ngrid, nlay + 1) :: bsfl   ! vertical profile of blowing snow vertical flux [kg/m2/s]
+      real, intent(out), dimension(ngrid)      :: precip_bs ! surface sedimentation flux of blowing snow [kg/s/m2]
 
+! LOCAL
+!========
+      real, dimension(ngrid, nlay)              :: du0, dv0, dql0, dqi0
 
-real, intent(out), dimension(ngrid,nlay) :: dtemp_bs
-real, intent(out), dimension(ngrid,nlay) :: dq_bs
-real, intent(out), dimension(ngrid,nlay) :: dqbs_bs
-real, intent(out), dimension(ngrid,nlay+1) :: bsfl
-real, intent(out), dimension(ngrid)      :: precip_bs
+!=================================================================
+! Call to main routine of blowing snow sublimation and sedim.
+!=================================================================
+      call blowing_snow_sublim_sedim(ngrid, nlay, dtime, ustar, temp, q, qb, pplay, paprs, &
+                                     dtemp_bs, dq_bs, dqb_bs, bsfl, precip_bs)
 
-      
+!=================================================================
+! Add tendencies
+!=================================================================
+      du0(:, :) = 0.
+      dv0(:, :) = 0.
+      dql0(:, :) = 0.
+      dqi0(:, :) = 0.
 
+      CALL add_phys_tend(du0, dv0, dtemp_bs, dq_bs, dql0, dqi0, dqb_bs, paprs, &
+                         'bsss', abortphy, flag_inhib_tend, itap, 0)
 
-call blowing_snow_sublim_sedim(ngrid,nlay,dtime,ustar,temp,q,qbs,pplay,paprs, &
-                                  dtemp_bs,dq_bs,dqbs_bs,bsfl,precip_bs)
-
-
-
-
-
-end subroutine call_blowing_snow_sublim_sedim
+   end subroutine call_blowing_snow
 
 end module lmdz_call_blowing_snow
Index: /LMDZ6/trunk/libf/phylmd/lmdz_call_lscp.f90
===================================================================
--- /LMDZ6/trunk/libf/phylmd/lmdz_call_lscp.f90	(revision 6011)
+++ /LMDZ6/trunk/libf/phylmd/lmdz_call_lscp.f90	(revision 6011)
@@ -0,0 +1,360 @@
+!$gpum horizontal klon
+MODULE lmdz_call_lscp
+
+   IMPLICIT NONE
+
+CONTAINS
+
+   SUBROUTINE call_lscp(klon, klev, nbsrf, is_ter, is_lic, &
+                        abortphy, flag_inhib_tend, itap, &
+                        nqo, dtime, missing_val, ok_new_lscp, &
+                        paprs, pplay, omega, temp, qt, ql_seri, qi_seri, &
+                        zmasse, ptconv, ratqsc, ratqs, ratqs_inter_, sigma_qtherm, &
+                        qtc_cv, sigt_cv, detrain_cv, fm_cv, fqd, fqcomp, &
+                        sigd, qsat, ratio_ql_qtot, ratio_qi_qtot, &
+                        pctsrf, s_pblh, zstd, wake_s, wake_deltaq, &
+                        d_t, d_q, d_ql, d_qi, rneb, rneblsvol, &
+                        pfraclr, pfracld, &
+                        cldfraliq, cldfraliqth, &
+                        sigma2_icefracturb, sigma2_icefracturbth, &
+                        mean_icefracturb, mean_icefracturbth, &
+                        radocond, radicefrac, rain, snow, &
+                        frac_impa, frac_nucl, beta, &
+                        pfrac_impa, pfrac_nucl, pfrac_1nucl, &
+                        prfl, psfl, rhcl, qta, fraca, &
+                        tv, pspsk, tla, thl, wth, iflag_cld_th, &
+                        iflag_ice_thermo, distcltop, temp_cltop, &
+                        tke, tke_dissip, &
+                        fm_therm, entr_therm, detr_therm, &
+                        cell_area, &
+                        cf_seri, rvc_seri, u_seri, v_seri, &
+                        qsub, qissr, qcld, subfra, issrfra, gamma_cond, &
+                        dcf_sub, dcf_con, dcf_mix, &
+                        dqi_adj, dqi_sub, dqi_con, dqi_mix, dqvc_adj, &
+                        dqvc_sub, dqvc_con, dqvc_mix, qsatl, qsati, &
+                        Tcontr, qcontr, qcontr2, fcontrN, fcontrP, dcf_avi, &
+                        dqi_avi, dqvc_avi, flight_dist, flight_h2o, &
+                        cloudth_sth, cloudth_senv, cloudth_sigmath, cloudth_sigmaenv, &
+                        qraindiag, qsnowdiag, dqreva, dqssub, dqrauto, &
+                        dqrcol, dqrmelt, dqrfreez, dqsauto, dqsagg, dqsrim, &
+                        dqsmelt, dqsfreez)
+
+      USE lmdz_lscp_main, ONLY: lscp
+      USE lmdz_lscp_old, ONLY: fisrtilp, fisrtilp_first
+      USE lmdz_lscp_subgridvarq, ONLY: ratqs_main, ratqs_main_first
+      USE lmdz_lscp_ini, ONLY: qlmax, qimax
+      USE add_phys_tend_mod, ONLY: add_phys_tend, prt_enerbil
+
+      IMPLICIT NONE
+
+!============================================================================
+! call_lscp in the main interface between the LMDZ physics monitor physiq_mod
+! and the large scale clouds and precipitation (lscp) parameterizations
+!
+! contact: Etienne Vignon etienne.vignon@lmd.ipsl.fr
+!============================================================================
+
+!===============================================================================
+! VARIABLES DECLARATION
+!===============================================================================
+
+! INPUT VARIABLES:
+!-----------------
+
+      INTEGER, INTENT(IN)   :: klon, klev       ! number of horizontal grid points and vertical levels
+      INTEGER, INTENT(IN)   :: nbsrf, is_ter, is_lic ! number of subgrid tiles and indices for land and landice
+      INTEGER, INTENT(IN)   :: abortphy, flag_inhib_tend, itap ! flag and physics time counter for add_phys_tend
+      INTEGER, INTENT(IN)   :: iflag_ice_thermo! flag to activate the ice thermodynamics
+      INTEGER, INTENT(IN)   :: nqo             ! number of water species
+      LOGICAL, INTENT(IN)   :: ok_new_lscp     ! flag that controls the version of lscp code used
+
+      REAL, INTENT(IN)   :: dtime           ! time step [s]
+      REAL, INTENT(IN)   :: missing_val     ! missing value for output
+
+      REAL, DIMENSION(klon, klev + 1), INTENT(IN)   :: paprs           ! inter-layer pressure [Pa]
+      REAL, DIMENSION(klon, klev), INTENT(IN)   :: pplay           ! mid-layer pressure [Pa]
+      REAL, DIMENSION(klon, klev), INTENT(IN)   :: zmasse          ! masse of layers [kg/m2]
+      REAL, DIMENSION(klon, klev), INTENT(IN)   :: temp            ! temperature (K)
+      REAL, DIMENSION(klon, klev), INTENT(IN)   :: omega           ! vertical velocity [Pa/s]
+      REAL, DIMENSION(klon, klev), INTENT(IN)   :: qt              ! total specific humidity (in vapor phase in input) [kg/kg]
+      REAL, DIMENSION(klon, klev), INTENT(IN)   :: ql_seri         ! liquid specific content [kg/kg]
+      REAL, DIMENSION(klon, klev), INTENT(IN)   :: qi_seri         ! ice specific content [kg/kg]
+      REAL, DIMENSION(klon, klev), INTENT(IN)   :: qsat            ! saturation specific humidity [kg/kg] from the physics
+      REAL, DIMENSION(klon, klev), INTENT(IN)   :: ratio_ql_qtot   ! ratio ql/qt at the beginning of physics time step [-]
+      REAL, DIMENSION(klon, klev), INTENT(IN)   :: ratio_qi_qtot   ! ratio qi/qt at the beginning of physics time step [-]
+      REAL, DIMENSION(klon, klev + 1), INTENT(IN)   :: tke             ! turbulent kinetic energy [m2/s2]
+      REAL, DIMENSION(klon, klev + 1), INTENT(IN)   :: tke_dissip      ! TKE dissipation [m2/s3]
+
+      LOGICAL, DIMENSION(klon, klev), INTENT(IN)   :: ptconv          ! grid points where deep convection scheme is active
+
+      !Inputs associated with thermal plumes
+
+      INTEGER, INTENT(IN)   :: iflag_cld_th    ! flag that determines the distribution of convective clouds
+      REAL, DIMENSION(klon, klev), INTENT(IN)   :: tv              ! virtual potential temperature [K]
+      REAL, DIMENSION(klon, klev), INTENT(IN)   :: qta             ! specific humidity within thermals [kg/kg]
+      REAL, DIMENSION(klon, klev), INTENT(IN)   :: fraca           ! fraction of thermals within the mesh [-]
+      REAL, DIMENSION(klon, klev), INTENT(IN)   :: pspsk           ! exner potential (p/100000)**(R/cp)
+      REAL, DIMENSION(klon, klev), INTENT(IN)   :: tla             ! liquid potential temperature within thermals [K]
+      REAL, DIMENSION(klon, klev), INTENT(IN)   :: wth             ! vertical velocity within thermals [m/s]
+      REAL, DIMENSION(klon, klev), INTENT(IN)   :: entr_therm      ! thermal plume entrainment rate * dz [kg/s/m2]
+      REAL, DIMENSION(klon, klev), INTENT(IN)   :: detr_therm      ! thermal plume detrainment rate * dz [kg/s/m2]
+      REAL, DIMENSION(klon, klev + 1), INTENT(IN)   :: fm_therm        ! convective mass flux of thermals [kg/s/m2]
+
+      ! Inputs associated with subgrid water variability
+
+      REAL, DIMENSION(klon, klev), INTENT(IN)   :: wake_deltaq     ! difference in humidity between wakes and environment [kg/kg]
+      REAL, DIMENSION(klon), INTENT(IN)   :: wake_s          ! wake fraction area [-]
+      REAL, DIMENSION(klon, nbsrf), INTENT(IN)   :: pctsrf          ! fraction of each subgrid tiles [0-1]
+      REAL, DIMENSION(klon), INTENT(IN)   :: s_pblh          ! boundary layer height [m]
+      REAL, DIMENSION(klon), INTENT(IN)   :: zstd            ! sub grid orography standard deviation [m]
+      REAL, DIMENSION(klon, klev), INTENT(IN)   :: ratqsc          ! normalized subgrid distribution of water due to deep convection
+      real, dimension(klon, klev), intent(in)   :: qtc_cv          ! total specific moisture in convective saturated draughts  [kg/kg]
+      real, dimension(klon, klev), intent(in)   :: sigt_cv         ! surface fraction of convective saturated draughts [-]
+      real, dimension(klon, klev), intent(in)   :: detrain_cv      ! deep convection detrainment of specific humidity variance [kg/s/m2*(kg/kg)^2]
+      real, dimension(klon, klev), intent(in)   :: fm_cv           ! deep convective mass flux [kg/s/m2]
+      real, dimension(klon, klev), intent(in)   :: fqd             ! specific humidity tendency due to convective precip [kg/kg/s]
+      real, dimension(klon, klev), intent(in)   :: fqcomp          ! specific humidity tendency due to convective mixed draughts [kg/ks/s]
+      real, dimension(klon), intent(in)   :: sigd            ! fractional area covered by unsaturated convective downdrafts [-]
+
+      ! INPUT/OUTPUT variables
+      !------------------------
+
+      REAL, DIMENSION(klon, klev), INTENT(INOUT)   :: thl          ! liquid potential temperature [K]
+      REAL, DIMENSION(klon, klev), INTENT(INOUT)   :: pfrac_impa   ! product of impaction scavenging coeff.
+      REAL, DIMENSION(klon, klev), INTENT(INOUT)   :: pfrac_nucl   ! product of nucleation scavenging coeff.
+      REAL, DIMENSION(klon, klev), INTENT(INOUT)   :: pfrac_1nucl  ! product of nucleation scavenging coeff. (alpha=1)
+
+      ! INPUT/OUTPUT condensation and ice supersaturation
+      !--------------------------------------------------
+      REAL, DIMENSION(klon, klev), INTENT(INOUT):: cf_seri          ! cloud fraction [-]
+      REAL, DIMENSION(klon, klev), INTENT(INOUT):: rvc_seri         ! cloudy water vapor to total water vapor ratio [-]
+      REAL, DIMENSION(klon, klev), INTENT(IN)   :: u_seri           ! eastward wind [m/s]
+      REAL, DIMENSION(klon, klev), INTENT(IN)   :: v_seri           ! northward wind [m/s]
+      REAL, DIMENSION(klon), INTENT(IN)   :: cell_area        ! area of each cell [m2]
+
+      ! INPUT/OUTPUT aviation
+      !--------------------------------------------------
+      REAL, DIMENSION(klon, klev), INTENT(IN)   :: flight_dist      ! Aviation distance flown within the mesh [m/s/mesh]
+      REAL, DIMENSION(klon, klev), INTENT(IN)   :: flight_h2o       ! Aviation H2O emitted within the mesh [kg H2O/s/mesh]
+
+      ! OUTPUT variables
+      !-------------------
+
+      REAL, DIMENSION(klon, klev), INTENT(OUT)  :: d_t              ! temperature increment [K]
+      REAL, DIMENSION(klon, klev), INTENT(OUT)  :: d_q              ! specific humidity increment [kg/kg]
+      REAL, DIMENSION(klon, klev), INTENT(OUT)  :: d_ql             ! liquid water increment [kg/kg]
+      REAL, DIMENSION(klon, klev), INTENT(OUT)  :: d_qi             ! cloud ice mass increment [kg/kg]
+      REAL, DIMENSION(klon, klev), INTENT(OUT)  :: rneb             ! cloud fraction [-]
+      REAL, DIMENSION(klon, klev), INTENT(OUT)  :: rneblsvol        ! cloud fraction per unit volume [-]
+      REAL, DIMENSION(klon, klev), INTENT(OUT)  :: pfraclr          ! precip fraction clear-sky part [-]
+      REAL, DIMENSION(klon, klev), INTENT(OUT)  :: pfracld          ! precip fraction cloudy part [-]
+      REAL, DIMENSION(klon, klev), INTENT(OUT)  :: cldfraliq        ! liquid fraction of cloud fraction [-]
+      REAL, DIMENSION(klon, klev), INTENT(OUT)  :: cldfraliqth      ! liquid fraction of cloud fraction in thermals [-]
+      REAL, DIMENSION(klon, klev), INTENT(OUT)  :: sigma2_icefracturb  ! Variance of the diagnostic supersaturation distribution (icefrac_turb) [-]
+      REAL, DIMENSION(klon, klev), INTENT(OUT)  :: mean_icefracturb    ! Mean of the diagnostic supersaturation distribution (icefrac_turb) [-]
+      REAL, DIMENSION(klon, klev), INTENT(OUT)  :: sigma2_icefracturbth ! Variance of the diagnostic supersaturation distribution in thermals (icefrac_turb) [-]
+      REAL, DIMENSION(klon, klev), INTENT(OUT)  :: mean_icefracturbth   ! Mean of the diagnostic supersaturation distribution in thermals (icefrac_turb) [-]
+      REAL, DIMENSION(klon, klev), INTENT(OUT)  :: radocond         ! condensed water used in the radiation scheme [kg/kg]
+      REAL, DIMENSION(klon, klev), INTENT(OUT)  :: radicefrac       ! ice fraction of condensed water for radiation scheme
+      REAL, DIMENSION(klon, klev), INTENT(OUT)  :: rhcl             ! clear-sky relative humidity [-]
+      REAL, DIMENSION(klon), INTENT(OUT)  :: rain             ! surface large-scale rainfall [kg/s/m2]
+      REAL, DIMENSION(klon), INTENT(OUT)  :: snow             ! surface large-scale snowfall [kg/s/m2]
+      REAL, DIMENSION(klon, klev + 1), INTENT(OUT)  :: prfl             ! large-scale rainfall flux in the column [kg/s/m2]
+      REAL, DIMENSION(klon, klev + 1), INTENT(OUT)  :: psfl             ! large-scale snowfall flux in the column [kg/s/m2]
+      REAL, DIMENSION(klon, klev), INTENT(OUT)  :: distcltop        ! distance to cloud top [m]
+      REAL, DIMENSION(klon, klev), INTENT(OUT)  :: temp_cltop       ! temperature of cloud top [K]
+      REAL, DIMENSION(klon, klev), INTENT(OUT)  :: beta             ! conversion rate of condensed water
+
+      ! for subgrid variability of water
+
+      real, dimension(klon, klev), intent(out) :: ratqs             ! ratqs i.e. factor for subgrid standard deviation of humidit
+      real, dimension(klon, klev), intent(out) :: ratqs_inter_      ! interactive ratqs
+      real, dimension(klon, klev), intent(out) :: sigma_qtherm      ! standard deviation of humidity in thermals [kg/kg]
+
+      ! fraction of aerosol scavenging through impaction and nucleation    (for on-line)
+
+      REAL, DIMENSION(klon, klev), INTENT(OUT)  :: frac_impa           ! scavenging fraction due tu impaction [-]
+      REAL, DIMENSION(klon, klev), INTENT(OUT)  :: frac_nucl           ! scavenging fraction due tu nucleation [-]
+
+! for condensation and ice supersaturation
+
+      REAL, DIMENSION(klon, klev), INTENT(OUT)  :: qsub           !--specific total water content in sub-saturated clear sky region [kg/kg]
+      REAL, DIMENSION(klon, klev), INTENT(OUT)  :: qissr          !--specific total water content in supersat region [kg/kg]
+      REAL, DIMENSION(klon, klev), INTENT(OUT)  :: qcld           !--specific total water content in cloudy region [kg/kg]
+      REAL, DIMENSION(klon, klev), INTENT(OUT)  :: subfra         !--mesh fraction of subsaturated clear sky [-]
+      REAL, DIMENSION(klon, klev), INTENT(OUT)  :: issrfra        !--mesh fraction of ISSR [-]
+      REAL, DIMENSION(klon, klev), INTENT(OUT)  :: gamma_cond     !--coefficient governing the ice nucleation RHi threshold [-]
+      REAL, DIMENSION(klon, klev), INTENT(OUT)  :: dcf_sub        !--cloud fraction tendency because of sublimation [s-1]
+      REAL, DIMENSION(klon, klev), INTENT(OUT)  :: dcf_con        !--cloud fraction tendency because of condensation [s-1]
+      REAL, DIMENSION(klon, klev), INTENT(OUT)  :: dcf_mix        !--cloud fraction tendency because of cloud mixing [s-1]
+      REAL, DIMENSION(klon, klev), INTENT(OUT)  :: dqi_adj        !--specific ice content tendency because of temperature adjustment [kg/kg/s]
+      REAL, DIMENSION(klon, klev), INTENT(OUT)  :: dqi_sub        !--specific ice content tendency because of sublimation [kg/kg/s]
+      REAL, DIMENSION(klon, klev), INTENT(OUT)  :: dqi_con        !--specific ice content tendency because of condensation [kg/kg/s]
+      REAL, DIMENSION(klon, klev), INTENT(OUT)  :: dqi_mix        !--specific ice content tendency because of cloud mixing [kg/kg/s]
+      REAL, DIMENSION(klon, klev), INTENT(OUT)  :: dqvc_adj       !--specific cloud water vapor tendency because of temperature adjustment [kg/kg/s]
+      REAL, DIMENSION(klon, klev), INTENT(OUT)  :: dqvc_sub       !--specific cloud water vapor tendency because of sublimation [kg/kg/s]
+      REAL, DIMENSION(klon, klev), INTENT(OUT)  :: dqvc_con       !--specific cloud water vapor tendency because of condensation [kg/kg/s]
+      REAL, DIMENSION(klon, klev), INTENT(OUT)  :: dqvc_mix       !--specific cloud water vapor tendency because of cloud mixing [kg/kg/s]
+      REAL, DIMENSION(klon, klev), INTENT(OUT)  :: qsatl          !--saturation specific humidity wrt liquid [kg/kg]
+      REAL, DIMENSION(klon, klev), INTENT(OUT)  :: qsati          !--saturation specific humidity wrt ice [kg/kg]
+
+      ! for contrails and aviation
+
+      REAL, DIMENSION(klon, klev), INTENT(OUT)  :: Tcontr         !--threshold temperature for contrail formation [K]
+      REAL, DIMENSION(klon, klev), INTENT(OUT)  :: qcontr         !--threshold humidity for contrail formation [kg/kg]
+      REAL, DIMENSION(klon, klev), INTENT(OUT)  :: qcontr2        !--// (2nd expression more consistent with LMDZ expression of q)
+      REAL, DIMENSION(klon, klev), INTENT(OUT)  :: fcontrN        !--fraction of grid favourable to non-persistent contrails
+      REAL, DIMENSION(klon, klev), INTENT(OUT)  :: fcontrP        !--fraction of grid favourable to persistent contrails
+      REAL, DIMENSION(klon, klev), INTENT(OUT)  :: dcf_avi        !--cloud fraction tendency because of aviation [s-1]
+      REAL, DIMENSION(klon, klev), INTENT(OUT)  :: dqi_avi        !--specific ice content tendency because of aviation [kg/kg/s]
+      REAL, DIMENSION(klon, klev), INTENT(OUT)  :: dqvc_avi       !--specific cloud water vapor tendency because of aviation [kg/kg/s]
+
+      ! for POPRECIP
+
+      REAL, DIMENSION(klon, klev), INTENT(OUT)  :: qraindiag      !--DIAGNOSTIC specific rain content [kg/kg]
+      REAL, DIMENSION(klon, klev), INTENT(OUT)  :: qsnowdiag      !--DIAGNOSTIC specific snow content [kg/kg]
+      REAL, DIMENSION(klon, klev), INTENT(OUT)  :: dqreva         !--rain tendendy due to evaporation [kg/kg/s]
+      REAL, DIMENSION(klon, klev), INTENT(OUT)  :: dqssub         !--snow tendency due to sublimation [kg/kg/s]
+      REAL, DIMENSION(klon, klev), INTENT(OUT)  :: dqrcol         !--rain tendendy due to collection by rain of liquid cloud droplets [kg/kg/s]
+      REAL, DIMENSION(klon, klev), INTENT(OUT)  :: dqsagg         !--snow tendency due to collection of lcoud ice by aggregation [kg/kg/s]
+      REAL, DIMENSION(klon, klev), INTENT(OUT)  :: dqrauto        !--rain tendency due to autoconversion of cloud liquid [kg/kg/s]
+      REAL, DIMENSION(klon, klev), INTENT(OUT)  :: dqsauto        !--snow tendency due to autoconversion of cloud ice [kg/kg/s]
+      REAL, DIMENSION(klon, klev), INTENT(OUT)  :: dqsrim         !--snow tendency due to riming [kg/kg/s]
+      REAL, DIMENSION(klon, klev), INTENT(OUT)  :: dqsmelt        !--snow tendency due to melting [kg/kg/s]
+      REAL, DIMENSION(klon, klev), INTENT(OUT)  :: dqrmelt        !--rain tendency due to melting [kg/kg/s]
+      REAL, DIMENSION(klon, klev), INTENT(OUT)  :: dqsfreez       !--snow tendency due to freezing [kg/kg/s]
+      REAL, DIMENSION(klon, klev), INTENT(OUT)  :: dqrfreez       !--rain tendency due to freezing [kg/kg/s]
+
+      ! for thermals
+
+      REAL, DIMENSION(klon, klev), INTENT(OUT)  :: cloudth_sth      !--mean saturation deficit in thermals
+      REAL, DIMENSION(klon, klev), INTENT(OUT)  :: cloudth_senv     !--mean saturation deficit in environment
+      REAL, DIMENSION(klon, klev), INTENT(OUT)  :: cloudth_sigmath  !--std of saturation deficit in thermals
+      REAL, DIMENSION(klon, klev), INTENT(OUT)  :: cloudth_sigmaenv !--std of saturation deficit in environment
+
+      ! LOCAL variables
+      !-------------------
+
+      INTEGER                                      :: i, k
+      REAL, DIMENSION(klon)                        :: rain_num
+      REAL, DIMENSION(klon, klev)                  :: ql_seri_lscp, qi_seri_lscp
+      REAL, DIMENSION(klon, klev)                   :: du0, dv0, dqbs0
+
+!===============================================================================
+! Computation of subgrid water variability
+!===============================================================================
+
+      CALL ratqs_main_first(klon, cell_area)
+
+      CALL ratqs_main(klon, klev, nbsrf, is_ter, is_lic, &
+                      iflag_cld_th, dtime, &
+                      pctsrf, s_pblh, zstd, wake_s, wake_deltaq, &
+                      paprs, pplay, temp, qt, &
+                      qtc_cv, sigt_cv, detrain_cv, fm_cv, fqd, fqcomp, sigd, qsat, &
+                      fm_therm, entr_therm, detr_therm, cell_area, &
+                      ratqsc, ratqs, ratqs_inter_, sigma_qtherm)
+
+!===============================================================================
+! Computation of large scale clouds and precipitation
+!===============================================================================
+
+      IF (ok_new_lscp) THEN
+
+         ! recentmost version of the lscp routine. To use by default.
+
+         DO k = 1, klev
+            DO i = 1, klon
+               ql_seri_lscp(i, k) = ratio_ql_qtot(i, k)*qt(i, k)
+               qi_seri_lscp(i, k) = ratio_qi_qtot(i, k)*qt(i, k)
+            END DO
+         END DO
+
+         CALL lscp(klon, klev, dtime, missing_val, paprs, pplay, omega, &
+                   temp, qt, ql_seri_lscp, qi_seri_lscp, ptconv, ratqs, sigma_qtherm, &
+                   d_t, d_q, d_ql, d_qi, rneb, rneblsvol, &
+                   pfraclr, pfracld, cldfraliq, cldfraliqth, &
+                   sigma2_icefracturb, sigma2_icefracturbth, &
+                   mean_icefracturb, mean_icefracturbth, &
+                   radocond, radicefrac, rain, snow, &
+                   frac_impa, frac_nucl, beta, &
+                   prfl, psfl, rhcl, &
+                   qta, fraca, tv, pspsk, tla, thl, wth, iflag_cld_th, &
+                   iflag_ice_thermo, distcltop, temp_cltop, &
+                   tke, tke_dissip, &
+                   entr_therm, detr_therm, &
+                   cell_area, &
+                   cf_seri, rvc_seri, u_seri, v_seri, &
+                   qsub, qissr, qcld, subfra, issrfra, gamma_cond, &
+                   dcf_sub, dcf_con, dcf_mix, dqi_adj, dqi_sub, dqi_con, dqi_mix, &
+                   dqvc_adj, dqvc_sub, dqvc_con, dqvc_mix, qsatl, qsati, &
+                   Tcontr, qcontr, qcontr2, fcontrN, fcontrP, &
+                   dcf_avi, dqi_avi, dqvc_avi, flight_dist, flight_h2o, &
+                   cloudth_sth, cloudth_senv, cloudth_sigmath, cloudth_sigmaenv, &
+                   qraindiag, qsnowdiag, dqreva, dqssub, dqrauto, dqrcol, dqrmelt, &
+                   dqrfreez, dqsauto, dqsagg, dqsrim, dqsmelt, dqsfreez)
+
+      ELSE
+
+         ! old (pre-cmip7) code
+
+         CALL fisrtilp_first(klon, klev, dtime, pfrac_impa, pfrac_nucl, pfrac_1nucl)
+
+         CALL fisrtilp(klon, klev, dtime, paprs, pplay, &
+                       temp, qt, ptconv, ratqs, sigma_qtherm, &
+                       d_t, d_q, d_ql, d_qi, rneb, rneblsvol, radocond, &
+                       rain, snow, &
+                       pfrac_impa, pfrac_nucl, pfrac_1nucl, &
+                       frac_impa, frac_nucl, beta, &
+                       prfl, psfl, rhcl, &
+                       qta, fraca, tv, pspsk, tla, thl, iflag_cld_th, &
+                       iflag_ice_thermo, &
+                       cloudth_sth, cloudth_senv, cloudth_sigmath, cloudth_sigmaenv)
+
+      END IF
+
+!===============================================================================
+! Final computations
+!===============================================================================
+
+      ! rain and snow are set to 0 when negative
+      WHERE (rain < 0) rain = 0.
+      WHERE (snow < 0) snow = 0.
+
+      ! so-called 'numerical rain' is computed when qlnew=ql+dql>qlmax and qinew=qi+dqi>qimax
+      ! i.e. when the condensed content is unrealistically large
+      ! qlnew is set to qlmax and qinew to qimax
+      ! equivalently, we set d_ql=qlmax-ql, d_ql=qimax-qi
+      rain_num(:) = 0.
+      DO k = 1, klev
+         DO i = 1, klon
+            IF (ql_seri(i, k) + d_ql(i, k) > qlmax) THEN
+               rain_num(i) = rain_num(i) + (ql_seri(i, k) + d_ql(i, k) - qlmax)*zmasse(i, k)/dtime
+               d_ql(i, k) = qlmax - ql_seri(i, k)
+            END IF
+         END DO
+      END DO
+
+      IF (nqo >= 3) THEN
+         DO k = 1, klev
+            DO i = 1, klon
+               IF (qi_seri(i, k) + d_qi(i, k) > qimax) THEN
+                  rain_num(i) = rain_num(i) + (qi_seri(i, k) - qimax)*zmasse(i, k)/dtime
+                  d_qi(i, k) = qimax - qi_seri(i, k)
+               END IF
+            END DO
+         END DO
+      END IF
+
+!===============================================================================
+! Add tendencies
+!===============================================================================
+      du0(:, :) = 0.
+      dv0(:, :) = 0.
+      dqbs0(:, :) = 0.
+      CALL add_phys_tend(du0, dv0, d_t, d_q, d_ql, d_qi, dqbs0, paprs, &
+                         'lsc', abortphy, flag_inhib_tend, itap, 0)
+      CALL prt_enerbil('lsc', itap)
+
+   END SUBROUTINE call_lscp
+
+END MODULE lmdz_call_lscp
Index: /LMDZ6/trunk/libf/phylmd/lmdz_lscp_ini.f90
===================================================================
--- /LMDZ6/trunk/libf/phylmd/lmdz_lscp_ini.f90	(revision 6010)
+++ /LMDZ6/trunk/libf/phylmd/lmdz_lscp_ini.f90	(revision 6011)
@@ -23,4 +23,11 @@
   REAL, SAVE, PROTECTED :: min_frac_thermals=1.e-10   ! minimum thermals fraction for use of bigaussian distribution
   !$OMP THREADPRIVATE(min_frac_thermals)
+
+  REAL, SAVE, PROTECTED :: qlmax=999.           ! maximum possible liquid water specific content in a mesh [kg/kg]
+  !$OMP THREADPRIVATE(qlmax)
+
+  REAL, SAVE, PROTECTED :: qimax=999.           ! maximum possible ice water specific content in a mesh [kg/kg]
+  !$OMP THREADPRIVATE(qimax)
+
 
   INTEGER, SAVE :: lunout, prt_level            ! Logical unit number and level for standard output
@@ -443,4 +450,11 @@
     CALL getin_p('iflag_evap_prec',iflag_evap_prec)
     CALL getin_p('seuil_neb',seuil_neb)
+
+    CALL getin_p('oliqmax',qlmax)
+    CALL getin_p('qlmax',qlmax)
+
+    CALL getin_p('oicemax',qimax)
+    CALL getin_p('qimax',qimax)
+
     CALL getin_p('ok_radocond_snow',ok_radocond_snow) 
     CALL getin_p('t_glace_max',t_glace_max)
@@ -562,4 +576,6 @@
     WRITE(lunout,*) 'lscp_ini, iflag_evap_prec:', iflag_evap_prec
     WRITE(lunout,*) 'lscp_ini, seuil_neb:', seuil_neb
+    WRITE(lunout,*) 'lscp_ini, qlmax:', qlmax
+    WRITE(lunout,*) 'lscp_ini, qimax:', qimax
     WRITE(lunout,*) 'lscp_ini, ok_radocond_snow:', ok_radocond_snow
     WRITE(lunout,*) 'lscp_ini, t_glace_max:', t_glace_max
Index: /LMDZ6/trunk/libf/phylmd/lmdz_lscp_phase.f90
===================================================================
--- /LMDZ6/trunk/libf/phylmd/lmdz_lscp_phase.f90	(revision 6010)
+++ /LMDZ6/trunk/libf/phylmd/lmdz_lscp_phase.f90	(revision 6011)
@@ -1,2 +1,3 @@
+!$gpum horizontal klon 
 MODULE lmdz_lscp_phase
 
Index: /LMDZ6/trunk/libf/phylmd/physiq_mod.F90
===================================================================
--- /LMDZ6/trunk/libf/phylmd/physiq_mod.F90	(revision 6010)
+++ /LMDZ6/trunk/libf/phylmd/physiq_mod.F90	(revision 6011)
@@ -95,8 +95,7 @@
     USE write_field_phy
     use wxios_mod, ONLY: g_ctx, wxios_set_context
-    USE lmdz_lscp_main, ONLY : lscp
     USE lmdz_call_cloud_optics_prop, ONLY : call_cloud_optics_prop, call_cloud_optics_prop_post
-    USE lmdz_lscp_old, ONLY : fisrtilp, fisrtilp_first
-    USE lmdz_call_blowing_snow, ONLY : call_blowing_snow_sublim_sedim
+    USE lmdz_call_blowing_snow, ONLY : call_blowing_snow
+    USE lmdz_call_lscp, ONLY: call_lscp
     USE calwake_mod, ONLY : calwake, calwake_first
     USE lmdz_wake_ini, ONLY : wake_ini
@@ -110,5 +109,4 @@
     USE lmdz_blowing_snow_ini, ONLY : blowing_snow_ini , qbst_bs
     USE lmdz_lscp_ini, ONLY : lscp_ini, ratqsbas
-    USE lmdz_lscp_subgridvarq, ONLY : ratqs_main, ratqs_main_first
     USE lmdz_cloud_optics_prop_ini, ONLY : cloud_optics_prop_ini
     USE phys_output_var_mod, ONLY :      cloudth_sth,cloudth_senv,cloudth_sigmath,cloudth_sigmaenv
@@ -748,6 +746,4 @@
     INTEGER,SAVE :: iflag_adjwk=0            !jyg
     !$OMP THREADPRIVATE(iflag_adjwk)         !jyg
-    REAL,SAVE :: oliqmax=999.,oicemax=999.
-    !$OMP THREADPRIVATE(oliqmax,oicemax)
     REAL, SAVE :: alp_offset
     !$OMP THREADPRIVATE(alp_offset)
@@ -893,5 +889,6 @@
     REAL dialiq(klon,klev)  ! eau liquide nuageuse
     REAL diafra(klon,klev)  ! fraction nuageuse
-    REAL radocond(klon,klev)  ! eau condensee nuageuse
+    REAL radocond(klon,klev)  ! condensed water content seen by radiative scheme [kg/kg]
+    REAL radicefrac(klon,klev)! fraction of radocond that is ice [-]
     !
     !XXX PB
@@ -1035,5 +1032,4 @@
     !$OMP THREADPRIVATE(iflag_cld_th)
     LOGICAL ptconvth(klon,klev)
-    REAL picefra(klon,klev)
     REAL nm_oro(klon)
     ! Variables liees a l'ecriture de la bande histoire physique
@@ -1501,6 +1497,4 @@
        CALL getin_p('dtcon_multistep_max',dtcon_multistep_max)
        CALL getin_p('dqcon_multistep_max',dqcon_multistep_max)
-       CALL getin_p('oliqmax',oliqmax)
-       CALL getin_p('oicemax',oicemax)
        iflag_wake_tend = 0
        CALL getin_p('iflag_wake_tend',iflag_wake_tend)
@@ -3087,10 +3081,7 @@
     IF (ok_bs) THEN
 
-       CALL call_blowing_snow_sublim_sedim(klon,klev,phys_tstep,zustar,t_seri,q_seri,qbs_seri,pplay,paprs, &
-            d_t_bsss,d_q_bsss,d_qbs_bsss,bsfl,bs_fall)
-
-       CALL add_phys_tend &
-            (du0,dv0,d_t_bsss,d_q_bsss,dql0,dqi0,d_qbs_bsss,paprs,&
-            'bsss',abortphy,flag_inhib_tend,itap,0)
+       CALL call_blowing_snow(klon,klev,abortphy,flag_inhib_tend,itap,phys_tstep,zustar, &
+                              t_seri,q_seri,qbs_seri,pplay,paprs, &
+                               d_t_bsss,d_q_bsss,d_qbs_bsss,bsfl,bs_fall)
 
     ENDIF
@@ -3956,104 +3947,50 @@
     ! water distribution
 
-
-    CALL ratqs_main_first(klon, cell_area)
-    CALL ratqs_main(klon,klev,nbsrf,is_ter,is_lic,        &
-         iflag_cld_th, pdtphys,  &
-         pctsrf,s_pblh,zstd, wake_s, wake_deltaq,   &
-         paprs,pplay,t_seri,q_seri, &
-         qtc_cv, sigt_cv,detrain_cv,fm_cv,fqd,fqcomp,sigd,zqsat, &
-         fm_therm,entr_therm,detr_therm,cell_area, &
-         ratqsc,ratqs,ratqs_inter_,sigma_qtherm)
-
-
-    picefra(:,:)=0.
-
-    IF (ok_new_lscp) THEN
-
-       DO k = 1, klev
-          DO i = 1, klon
-             ql_seri_lscp(i,k) = ratio_ql_qtot(i,k) * q_seri(i,k)
-             qi_seri_lscp(i,k) = ratio_qi_qtot(i,k) * q_seri(i,k)
-          ENDDO
-       ENDDO
-
-
-       !--mise à jour de flight_m et flight_h2o dans leur module
-       !IF (ok_plane_h2o .OR. ok_plane_contrail) THEN
-       !  CALL airplane(debut,pphis,pplay,paprs,t_seri)
-       !ENDIF
-
-
-       CALL lscp(klon,klev,phys_tstep,missing_val,paprs,pplay,omega, &
-            t_seri, q_seri, ql_seri_lscp, qi_seri_lscp, ptconv, ratqs, sigma_qtherm, &
-            d_t_lsc, d_q_lsc, d_ql_lsc, d_qi_lsc, rneb, rneblsvol, &
-            pfraclr, pfracld, cldfraliq, cldfraliqth,              &
-            sigma2_icefracturb, sigma2_icefracturbth,              &
-            mean_icefracturb,  mean_icefracturbth,                 &
-            radocond, picefra, rain_lsc, snow_lsc, &
-            frac_impa, frac_nucl, beta_prec_fisrt, &
-            prfl, psfl, rhcl,  &
-            zqasc, fraca,ztv,zpspsk,ztla,zthl,zw2,iflag_cld_th, &
-            iflag_ice_thermo, distcltop, temp_cltop,   &
-            pbl_tke(:,:,is_ave), pbl_eps(:,:,is_ave), &
-            entr_therm, detr_therm, &
-            cell_area, &
-            cf_seri, rvc_seri, u_seri, v_seri, &
-            qsub, qissr, qcld, subfra, issrfra, gamma_cond,  &
-            dcf_sub, dcf_con, dcf_mix, dqi_adj, dqi_sub, dqi_con, dqi_mix, &
-            dqvc_adj, dqvc_sub, dqvc_con, dqvc_mix, qsatliq, qsatice, &
-            Tcontr, qcontr, qcontr2, fcontrN, fcontrP, &
-            dcf_avi, dqi_avi, dqvc_avi, flight_dist, flight_h2o, &
-            cloudth_sth,cloudth_senv,cloudth_sigmath,cloudth_sigmaenv, &
-            qraindiag, qsnowdiag, dqreva, dqssub, dqrauto, dqrcol, dqrmelt, &
-            dqrfreez, dqsauto, dqsagg, dqsrim, dqsmelt, dqsfreez)
-
-
-    ELSE
-
-       CALL fisrtilp_first(klon, klev, phys_tstep, pfrac_impa, pfrac_nucl, pfrac_1nucl)
-       CALL fisrtilp(klon,klev,phys_tstep,paprs,pplay, &
-            t_seri, q_seri,ptconv,ratqs,sigma_qtherm, &
-            d_t_lsc, d_q_lsc, d_ql_lsc, d_qi_lsc, rneb, rneblsvol, radocond, &
-            rain_lsc, snow_lsc, &
-            pfrac_impa, pfrac_nucl, pfrac_1nucl, &
-            frac_impa, frac_nucl, beta_prec_fisrt, &
-            prfl, psfl, rhcl,  &
-            zqasc, fraca,ztv,zpspsk,ztla,zthl,iflag_cld_th, &
-            iflag_ice_thermo, &
-            cloudth_sth,cloudth_senv,cloudth_sigmath,cloudth_sigmaenv)
-
-    ENDIF
-    
-    WHERE (rain_lsc < 0) rain_lsc = 0.
-    WHERE (snow_lsc < 0) snow_lsc = 0.
+    CALL call_lscp(klon, klev, nbsrf, is_ter, is_lic,             &
+     abortphy, flag_inhib_tend, itap,                             &
+     nqo, pdtphys, missing_val, ok_new_lscp,                      &
+     paprs, pplay, omega, t_seri, q_seri, ql_seri, qs_seri,       &
+     zmasse, ptconv, ratqsc, ratqs, ratqs_inter_, sigma_qtherm,   &
+     qtc_cv, sigt_cv,detrain_cv,fm_cv,fqd,fqcomp,       &
+     sigd, zqsat, ratio_ql_qtot, ratio_qi_qtot,         &
+     pctsrf, s_pblh, zstd, wake_s, wake_deltaq,         &
+     d_t_lsc, d_q_lsc, d_ql_lsc, d_qi_lsc, rneb, rneblsvol,  &
+     pfraclr, pfracld,                                  &
+     cldfraliq, cldfraliqth,                            &
+     sigma2_icefracturb,sigma2_icefracturbth,           &
+     mean_icefracturb,mean_icefracturbth,               &
+     radocond, radicefrac, rain_lsc, snow_lsc,          &
+     frac_impa, frac_nucl, beta,                        &
+     pfrac_impa, pfrac_nucl, pfrac_1nucl,               &
+     prfl, psfl, rhcl, zqasc, fraca,                    &
+     ztv, zpspsk, ztla, zthl, zw2, iflag_cld_th,        &
+     iflag_ice_thermo, distcltop, temp_cltop,           &
+     pbl_tke(:,:,is_ave), pbl_eps(:,:,is_ave),          &
+     fm_therm, entr_therm, detr_therm,                  &
+     cell_area,                                         &
+     cf_seri, rvc_seri, u_seri, v_seri,                 &
+     qsub, qissr, qcld, subfra, issrfra, gamma_cond,    &
+     dcf_sub, dcf_con, dcf_mix,                         &
+     dqi_adj, dqi_sub, dqi_con, dqi_mix, dqvc_adj,      &
+     dqvc_sub, dqvc_con, dqvc_mix, qsatliq, qsatice,    &
+     Tcontr, qcontr, qcontr2, fcontrN, fcontrP, dcf_avi,&
+     dqi_avi, dqvc_avi, flight_dist, flight_h2o,        &
+     cloudth_sth,cloudth_senv,cloudth_sigmath,cloudth_sigmaenv, &
+     qraindiag, qsnowdiag, dqreva, dqssub, dqrauto,     &
+     dqrcol, dqrmelt, dqrfreez, dqsauto, dqsagg, dqsrim,&
+     dqsmelt, dqsfreez)
+
 
     CALL add_phys_tend(du0,dv0,d_t_lsc,d_q_lsc,d_ql_lsc,d_qi_lsc,dqbs0,paprs, &
          'lsc',abortphy,flag_inhib_tend,itap,0)
     CALL prt_enerbil('lsc',itap)
-    
-    rain_num(:)=0.
-    DO k = 1, klev
-       DO i = 1, klon
-          IF (ql_seri(i,k)>oliqmax) THEN
-             rain_num(i)=rain_num(i)+(ql_seri(i,k)-oliqmax)*zmasse(i,k)/pdtphys
-             ql_seri(i,k)=oliqmax
-          ENDIF
-       ENDDO
-    ENDDO
-    
-    IF (nqo >= 3) THEN
-       DO k = 1, klev
-          DO i = 1, klon
-             IF (qs_seri(i,k)>oicemax) THEN
-                rain_num(i)=rain_num(i)+(qs_seri(i,k)-oicemax)*zmasse(i,k)/pdtphys
-                qs_seri(i,k)=oicemax
-             ENDIF
-          ENDDO
-       ENDDO
-    ENDIF
 
 
     !===============================================================================
+    ! from Clouds to Radiation (cloud2rad)
+    ! computation of cloud variables that are useful for the radiative transfer
+
+
+
     DO k = 1, klev
        DO i = 1, klon
@@ -4070,9 +4007,9 @@
 
     IF (ok_bs .AND. ok_rad_bs) THEN
-       IF (ok_new_lscp .AND. ok_icefra_lscp) THEN
+       IF (ok_icefra_lscp) THEN
           DO k=1,klev
              DO i=1,klon
                 radocond(i,k)=radocond(i,k)+qbs_seri(i,k)
-                picefra(i,k)=(radocond(i,k)*picefra(i,k)+qbs_seri(i,k))/(radocond(i,k))
+                radicefrac(i,k)=(radocond(i,k)*radicefrac(i,k)+qbs_seri(i,k))/(radocond(i,k))
                 qbsfra=min(qbs_seri(i,k)/qbst_bs,1.0)
                 cldfra(i,k)=max(cldfra(i,k),qbsfra)
@@ -4081,5 +4018,5 @@
        ELSE
           WRITE(lunout,*)"PAY ATTENTION, you try to activate the radiative effect of blowing snow"
-          WRITE(lunout,*)"with ok_new_lscp=false and/or ok_icefra_lscp=false"
+          WRITE(lunout,*)"with ok_icefra_lscp=false. You must use ok_icefra_lscp=y and ok_new_lscp=y."
           abort_message='inconsistency in cloud phase for blowing snow'
           CALL abort_physic(modname,abort_message,1)
@@ -4095,8 +4032,4 @@
     ENDIF
 
-    !
-    !-------------------------------------------------------------------
-    !  PRESCRIPTION DES NUAGES POUR LE RAYONNEMENT
-    !-------------------------------------------------------------------
 
     ! 1. NUAGES CONVECTIFS
@@ -4301,4 +4234,12 @@
             EXP((Lheat *qsat2m(i))/(RCPD*zt2m(i)))
     ENDDO
+
+
+
+    !===============================================================================
+    ! Aerosols and chemistry
+    !
+
+
 
     IF (ANY(type_trac == ['inca','inco'])) THEN ! ModThL
@@ -4541,5 +4482,5 @@
        !Rajout appel a interface calcul proprietes optiques des nuages
        CALL call_cloud_optics_prop(klon, klev, ok_newmicro, &
-            paprs, pplay, t_seri, radocond, picefra, cldfra, &
+            paprs, pplay, t_seri, radocond, radicefrac, cldfra, &
             cldtau, cldemi, cldh, cldl, cldm, cldt, cldq, &
             flwp, fiwp, flwc, fiwc, ok_aie, &
@@ -4733,4 +4674,10 @@
           IF (carbon_cycle_rad) RCO2=RCO2_glo
           !
+
+    !===============================================================================
+    ! Radiative scheme
+    !
+
+
           IF (prt_level .GE.10) THEN
              print *,' ->radlwsw, number 1 '
@@ -4994,10 +4941,12 @@
        bils(i) = radsol(i) - sens(i) + zxfluxlat(i)
     ENDDO
-    !
-    !moddeblott(jan95)
-    ! Appeler le programme de parametrisation de l'orographie
-    ! a l'echelle sous-maille:
-    !
-
+
+    !===============================================================================
+    ! Gravity waves' drag parameterizations
+    !
+    !
+    ! Drag by subgrid orography
+    !=========================
+    !
     ! calculation of nm_oro
     DO i=1,klon
@@ -5065,4 +5014,7 @@
     ENDIF
 
+    ! Lifting by subgrid orography
+    !==============================
+
     IF (ok_orolf) THEN
        !
@@ -5102,4 +5054,7 @@
        CALL prt_enerbil('lif',itap)
     ENDIF ! fin de test sur ok_orolf
+
+    ! GW drag from Hines
+    !===================
 
     IF (ok_hines) then
@@ -5127,4 +5082,7 @@
     ENDIF
 
+    ! Drag by GWs generated by fronts (stochastic approach)
+    !======================================================
+
     IF (.not. ok_hines .and. ok_gwd_rando) then
        ! ym missing init for east_gwstress & west_gwstress -> added in phys_local_var_mod
@@ -5146,4 +5104,7 @@
        CALL prt_enerbil('front_gwd_rando',itap)
     ENDIF
+
+    ! Drag by convective GWs (stochastic approach)
+    !==============================================
 
     IF (ok_gwd_rando) THEN
Index: DZ6/trunk/libf/phylmdiso/lmdz_call_blowing_snow.f90
===================================================================
--- /LMDZ6/trunk/libf/phylmdiso/lmdz_call_blowing_snow.f90	(revision 6010)
+++ 	(revision )
@@ -1,1 +1,0 @@
-link ../phylmd/lmdz_call_blowing_snow.f90
Index: /LMDZ6/trunk/libf/phylmdiso/physiq_mod.F90
===================================================================
--- /LMDZ6/trunk/libf/phylmdiso/physiq_mod.F90	(revision 6010)
+++ /LMDZ6/trunk/libf/phylmdiso/physiq_mod.F90	(revision 6011)
@@ -97,5 +97,5 @@
     USE lmdz_call_cloud_optics_prop, ONLY : call_cloud_optics_prop, call_cloud_optics_prop_post
     USE lmdz_lscp_old, ONLY : fisrtilp, fisrtilp_first
-    USE lmdz_call_blowing_snow, ONLY : call_blowing_snow_sublim_sedim
+    !USE lmdz_call_blowing_snow, ONLY : call_blowing_snow
     USE calwake_mod, ONLY : calwake, calwake_first
     USE lmdz_wake_ini, ONLY : wake_ini
@@ -3608,4 +3608,5 @@
     ! ==================================================================
     ! Blowing snow sublimation and sedimentation
+    ! cannot be activated with isotopes so far
 
     d_t_bsss(:,:)=0.
@@ -3614,18 +3615,11 @@
     bsfl(:,:)=0.
     bs_fall(:)=0.
-    IF (ok_bs) THEN
-
-     CALL call_blowing_snow_sublim_sedim(klon,klev,phys_tstep,zustar,t_seri,q_seri,qbs_seri,pplay,paprs, &
-                                         d_t_bsss,d_q_bsss,d_qbs_bsss,bsfl,bs_fall)
-
-     CALL add_phys_tend &
-               (du0,dv0,d_t_bsss,d_q_bsss,dql0,dqi0,d_qbs_bsss,paprs,&
-               'bsss',abortphy,flag_inhib_tend,itap,0 &
-#ifdef ISO
-       &       ,dxt0,dxtl0,dxti0 &
-#endif
-       &       )
-
-    ENDIF
+    !IF (ok_bs) THEN
+
+    ! CALL call_blowing_snow(klon,klev,abortphy,flag_inhib_tend,itap,phys_tstep,zustar, &
+    !                          t_seri,q_seri,qbs_seri,pplay,paprs, &
+    !                           d_t_bsss,d_q_bsss,d_qbs_bsss,bsfl,bs_fall)
+
+    !ENDIF
 
     ! =================================================================== c
