diff --git a/src/PHYEX/micro/lima_adjust_split.f90 b/src/PHYEX/micro/lima_adjust_split.f90
index 5ad444ac70a7f4809ac7c52ce72aade0965e1a09..33d7255bcd0280b0e9cff5864df549a2074f48b8 100644
--- a/src/PHYEX/micro/lima_adjust_split.f90
+++ b/src/PHYEX/micro/lima_adjust_split.f90
@@ -5,740 +5,550 @@
 !-----------------------------------------------------------------
 !     ###########################################################################
 SUBROUTINE LIMA_ADJUST_SPLIT(D, CST, BUCONF, TBUDGETS, KBUDGETS,                &
-                             KRR, KMI, HCONDENS, HLAMBDA3,                      &
-                             OSUBG_COND, OSIGMAS, PTSTEP, PSIGQSAT,             &
-                             PRHODREF, PRHODJ, PEXNREF, PSIGS, PMFCONV,         &
-                             PPABST, PPABSTT, PZZ, PDTHRAD, PW_NU,              &
-                             PRT, PRS, PSVT, PSVS,                              &
-                             PTHS, PSRCS, PCLDFR, PICEFR, PRC_MF, PRI_MF, PCF_MF)
-!     ###########################################################################
-!
-!!****  *MIMA_ADJUST* -  compute the fast microphysical sources 
-!!
-!!    PURPOSE
-!!    -------
-!!      The purpose of this routine is to compute the fast microphysical sources
-!!      through an explict scheme and a saturation ajustement procedure.
-!!
-!!
-!!**  METHOD
-!!    ------
-!!      Reisin et al.,    1996 for the explicit scheme when ice is present
-!!      Langlois, Tellus, 1973 for the implict adjustment for the cloud water
-!!      (refer also to book 1 of the documentation).
-!!
-!!      Computations are done separately for three cases :
-!!        - ri>0 and rc=0
-!!        - rc>0 and ri=0
-!!        - ri>0 and rc>0
-!!
-!!
-!!    EXTERNAL
-!!    --------
-!!      None
-!!     
-!!
-!!    IMPLICIT ARGUMENTS
-!!    ------------------
-!!      Module MODD_CST
-!!         XP00               ! Reference pressure
-!!         XMD,XMV            ! Molar mass of dry air and molar mass of vapor
-!!         XRD,XRV            ! Gaz constant for dry air, gaz constant for vapor
-!!         XCPD,XCPV          ! Cpd (dry air), Cpv (vapor)
-!!         XCL                ! Cl (liquid)
-!!         XTT                ! Triple point temperature
-!!         XLVTT              ! Vaporization heat constant
-!!         XALPW,XBETAW,XGAMW ! Constants for saturation vapor 
-!!                            !  pressure  function 
-!!      Module  MODD_CONF 
-!!         CCONF
-!!      Module MODD_BUDGET:
-!!         NBUMOD 
-!!         CBUTYPE
-!!         LBU_RTH    
-!!         LBU_RRV  
-!!         LBU_RRC  
-!!      Module MODD_LES : NCTR_LES,LTURB_LES,NMODNBR_LES
-!!                        XNA declaration (cloud fraction as global var)
-!!
-!!    REFERENCE
-!!    ---------
-!!
-!!      Book 1 and Book2 of documentation ( routine FAST_TERMS )
-!!      Langlois, Tellus, 1973
-!!
-!!    AUTHOR
-!!    ------
-!!      E. Richard       * Laboratoire d'Aerologie*
-!!      J.-M. Cohard     * Laboratoire d'Aerologie*
-!!      J.-P. Pinty      * Laboratoire d'Aerologie*
-!!      S.    Berthet    * Laboratoire d'Aerologie*
-!!      B.    Vié        * Laboratoire d'Aerologie*
-!!
-!!    MODIFICATIONS
-!!    -------------
-!!      Original             06/2021 forked from lima_adjust.f90 
-!  P. Wautelet 23/07/2021: replace non-standard FLOAT function by REAL function
-!  B. Vie         03/2022: Add option for 1-moment pristine ice
-!-------------------------------------------------------------------------------
-!
-!*       0.    DECLARATIONS
-!              ------------
-!
-USE MODD_BUDGET,   ONLY: TBUDGETDATA, TBUDGETCONF_t, NBUDGET_TH, NBUDGET_RV, &
-                         NBUDGET_RC, NBUDGET_RI, NBUDGET_RV, NBUDGET_SV1, NBUMOD        
-USE MODD_CST,            ONLY: CST_t
-!USE MODD_CONF
-!use modd_field,            only: TFIELDDATA, TYPEREAL
-!USE MODD_IO,               ONLY: TFILEDATA
-!USE MODD_LUNIT_n,          ONLY: TLUOUT
-USE MODD_NSV
-USE MODD_PARAMETERS
-USE MODD_PARAM_LIMA
-USE MODD_PARAM_LIMA_COLD
-USE MODD_PARAM_LIMA_MIXED
-USE MODD_PARAM_LIMA_WARM
-USE MODD_RAIN_ICE_PARAM_n,   ONLY: RAIN_ICE_PARAMN
-USE MODD_NEB_n,            ONLY: NEBN
-USE MODD_TURB_n,           ONLY: TURBN
-USE MODD_DIMPHYEX,         ONLY: DIMPHYEX_t
-!
-USE MODE_BUDGET_PHY,       ONLY: BUDGET_STORE_INIT_PHY, BUDGET_STORE_END_PHY
-!USE MODE_IO_FIELD_WRITE,   only: IO_Field_write
-use mode_msg
-!
-USE MODI_CONDENSATION
-USE MODE_LIMA_CCN_ACTIVATION, ONLY: LIMA_CCN_ACTIVATION
-!
-IMPLICIT NONE
-!
-!*       0.1   Declarations of dummy arguments :
-!
-!
-TYPE(DIMPHYEX_t),         INTENT(IN)   :: D
-TYPE(CST_t),              INTENT(IN)    :: CST
-TYPE(TBUDGETCONF_t),      INTENT(IN)    :: BUCONF
-TYPE(TBUDGETDATA), DIMENSION(KBUDGETS), INTENT(INOUT) :: TBUDGETS
-INTEGER, INTENT(IN) :: KBUDGETS
-!
-INTEGER,                  INTENT(IN)   :: KRR        ! Number of moist variables
-INTEGER,                  INTENT(IN)   :: KMI        ! Model index 
-CHARACTER(len=80),        INTENT(IN)    :: HCONDENS
-CHARACTER(len=4),         INTENT(IN)    :: HLAMBDA3  ! formulation for lambda3 coeff
-LOGICAL,                  INTENT(IN)   :: OSUBG_COND ! Switch for Subgrid 
-                                                     ! Condensation
-LOGICAL,                  INTENT(IN)   :: OSIGMAS    ! Switch for Sigma_s: 
-                                                     ! use values computed in CONDENSATION
-                                                     ! or that from turbulence scheme
-REAL,                     INTENT(IN)   :: PTSTEP     ! Time step          
-REAL,                     INTENT(IN)   :: PSIGQSAT   ! coeff applied to qsat variance contribution
-!
-REAL, DIMENSION(:,:,:),   INTENT(IN)   ::  PRHODREF  ! Dry density of the 
-                                                     ! reference state
-REAL, DIMENSION(:,:,:),   INTENT(IN)   ::  PRHODJ    ! Dry density * Jacobian
-REAL, DIMENSION(:,:,:),   INTENT(IN)   ::  PEXNREF   ! Reference Exner function
-REAL, DIMENSION(:,:,:),   INTENT(IN)   ::  PSIGS     ! Sigma_s at time t
-REAL, DIMENSION(:,:,:),   INTENT(IN)   ::  PMFCONV   ! 
-REAL, DIMENSION(:,:,:),   INTENT(IN)   ::  PPABST    ! Absolute Pressure at t     
-REAL, DIMENSION(:,:,:),   INTENT(IN)   ::  PPABSTT   ! Absolute Pressure at t+dt     
-REAL, DIMENSION(:,:,:),   INTENT(IN)   ::  PZZ       !     
-REAL, DIMENSION(:,:,:),   INTENT(IN)    :: PDTHRAD   ! Radiative temperature tendency
-REAL, DIMENSION(:,:,:),   INTENT(IN)    :: PW_NU     ! updraft velocity used for
-!
-REAL, DIMENSION(:,:,:,:), INTENT(IN)    :: PRT       ! m.r. at t
-!
-REAL, DIMENSION(:,:,:,:), INTENT(INOUT) :: PRS       ! m.r. source
-!
-REAL, DIMENSION(:,:,:,:), INTENT(IN)    :: PSVT ! Concentrations at time t
-!
-REAL, DIMENSION(:,:,:,:), INTENT(INOUT) :: PSVS ! Concentration sources
-!
-REAL, DIMENSION(:,:,:),   INTENT(INOUT) :: PTHS      ! Theta source
-!
-REAL, DIMENSION(:,:,:),   INTENT(OUT)   :: PSRCS     ! Second-order flux
-                                                     ! s'rc'/2Sigma_s2 at time t+1
-                                                     ! multiplied by Lambda_3
-REAL, DIMENSION(:,:,:),   INTENT(INOUT)   :: PCLDFR    ! Cloud fraction          
-REAL, DIMENSION(:,:,:),   INTENT(INOUT)   :: PICEFR    ! Cloud fraction          
-REAL, DIMENSION(:,:,:),     INTENT(IN)    :: PRC_MF! Convective Mass Flux liquid mixing ratio
-REAL, DIMENSION(:,:,:),     INTENT(IN)    :: PRI_MF! Convective Mass Flux ice mixing ratio
-REAL, DIMENSION(:,:,:),     INTENT(IN)    :: PCF_MF! Convective Mass Flux Cloud fraction 
-!
-!
-!*       0.2   Declarations of local variables :
-!
-! 3D Microphysical variables
-REAL, DIMENSION(SIZE(PRHODJ,1),SIZE(PRHODJ,2),SIZE(PRHODJ,3)) &
-                         :: PTHT,        &
-                            PRVT,        & ! Water vapor m.r. at t
-                            PRCT,        & ! Cloud water m.r. at t
-                            PRRT,        & ! Rain water m.r. at t
-                            PRIT,        & ! Cloud ice  m.r. at t
-                            PRST,        & ! Aggregate  m.r. at t
-                            PRGT,        & ! Graupel    m.r. at t
-                            PRHT,        & ! Hail       m.r. at t
-!
-                            PRVS,        & ! Water vapor m.r. source
-                            PRCS,        & ! Cloud water m.r. source
-                            PRRS,        & ! Rain water m.r. source
-                            PRIS,        & ! Cloud ice  m.r. source
-                            PRSS,        & ! Aggregate  m.r. source
-                            PRGS,        & ! Graupel    m.r. source
-                            PRHS,        & ! Hail       m.r. source
-!
-                            PCCT,        & ! Cloud water conc. at t
-                            PCIT,        & ! Cloud ice   conc. at t
-!
-                            PCCS,        & ! Cloud water C. source
-                            PMAS           ! Mass of scavenged AP
-!
-REAL, DIMENSION(:,:,:,:), ALLOCATABLE &
-                         :: PNFS,        & ! Free      CCN C. source
-                            PNAS,        & ! Activated CCN C. source
-                            PNFT,        & ! Free      CCN C.
-                            PNAT           ! Activated CCN C.
-!                             PIFS,        & ! Free      IFN C. source
-!                             PINS,        & ! Nucleated IFN C. source
-!                             PNIS           ! Acti. IMM. nuclei C. source
-!
-!
-!
-REAL                     :: ZEPS         ! Mv/Md
-REAL                     :: ZDT          ! Time increment (2*Delta t or Delta t if cold start)
-REAL, DIMENSION(SIZE(PRHODJ,1),SIZE(PRHODJ,2),SIZE(PRHODJ,3)) &
-                         :: ZEXNS,&      ! guess of the Exner function at t+1
-                            ZT, ZT2,  &      ! guess of the temperature at t+1
-                            ZCPH, &      ! guess of the CPh for the mixing
-                            ZW,   &
-                            ZW1,  &
-                            ZW2,  &
-                            ZLV,  &      ! guess of the Lv at t+1
-                            ZLS,  &      ! guess of the Ls at t+1
-                            ZMASK,&
-                            ZRV, ZRV2,ZRV_IN,  &
-                            ZRC, ZRC2,ZRC_IN,  &
-                            ZRI, ZRI_IN,  &
-                            Z_SIGS, Z_SRCS, &
-                            ZW_MF, &
-                            ZCND, ZS, ZVEC1, ZDUM
-REAL, DIMENSION(SIZE(PRHODJ,1),SIZE(PRHODJ,2)) :: ZSIGQSAT2D
-!
-INTEGER, DIMENSION(SIZE(PRHODJ,1),SIZE(PRHODJ,2),SIZE(PRHODJ,3)) :: IVEC1
-!
-!INTEGER                  :: IRESP      ! Return code of FM routines
-INTEGER                  :: JITER,ITERMAX  ! iterative loop for first order adjustment
-!INTEGER                  :: ILUOUT     ! Logical unit of output listing 
-!
-INTEGER                           :: ISIZE
-LOGICAL                           :: G_SIGMAS, GUSERI
-REAL, DIMENSION(:), ALLOCATABLE   :: ZRTMIN
-REAL, DIMENSION(:), ALLOCATABLE   :: ZCTMIN
-!
-integer :: idx
-integer :: JI, JJ, JK, jl
-INTEGER                           :: JMOD
-!
-!!$TYPE(TFIELDMETADATA)     :: TZFIELD
-!
-INTEGER :: ISV_LIMA_NC
-INTEGER :: ISV_LIMA_CCN_FREE
-INTEGER :: ISV_LIMA_CCN_ACTI
-INTEGER :: ISV_LIMA_SCAVMASS
-INTEGER :: ISV_LIMA_NI
-INTEGER :: ISV_LIMA_IFN_FREE
-INTEGER :: ISV_LIMA_IFN_NUCL
-INTEGER :: ISV_LIMA_IMM_NUCL
-!
-!-------------------------------------------------------------------------------
-!
-!*       1.     PRELIMINARIES
-!               -------------
-!
-ISV_LIMA_NC       = NSV_LIMA_NC       - NSV_LIMA_BEG + 1
-ISV_LIMA_CCN_FREE = NSV_LIMA_CCN_FREE - NSV_LIMA_BEG + 1
-ISV_LIMA_CCN_ACTI = NSV_LIMA_CCN_ACTI - NSV_LIMA_BEG + 1
-ISV_LIMA_SCAVMASS = NSV_LIMA_SCAVMASS - NSV_LIMA_BEG + 1
-ISV_LIMA_NI       = NSV_LIMA_NI       - NSV_LIMA_BEG + 1
-ISV_LIMA_IFN_FREE = NSV_LIMA_IFN_FREE - NSV_LIMA_BEG + 1
-ISV_LIMA_IFN_NUCL = NSV_LIMA_IFN_NUCL - NSV_LIMA_BEG + 1
-ISV_LIMA_IMM_NUCL = NSV_LIMA_IMM_NUCL - NSV_LIMA_BEG + 1
-!
-!ILUOUT = TLUOUT%NLU
-!
-ZEPS= CST%XMV / CST%XMD
-!
-IF (OSUBG_COND) THEN
-  ITERMAX=1
-ELSE
-  ITERMAX=1
-END IF
-!
-ZDT = PTSTEP
-!
-ISIZE = SIZE(XRTMIN)
-ALLOCATE(ZRTMIN(ISIZE))
-ZRTMIN(:) = XRTMIN(:) / ZDT
-ISIZE = SIZE(XCTMIN)
-ALLOCATE(ZCTMIN(ISIZE))
-ZCTMIN(:) = XCTMIN(:) / ZDT
-!
-! Prepare 3D water mixing ratios
-!
-PTHT = PTHS*PTSTEP
-!
-PRVT(:,:,:) = PRS(:,:,:,1)*PTSTEP
-PRVS(:,:,:) = PRS(:,:,:,1)
-!
-PRCT(:,:,:) = 0.
-PRCS(:,:,:) = 0.
-PRRT(:,:,:) = 0.
-PRRS(:,:,:) = 0.
-PRIT(:,:,:) = 0.
-PRIS(:,:,:) = 0.
-PRST(:,:,:) = 0.
-PRSS(:,:,:) = 0.
-PRGT(:,:,:) = 0.
-PRGS(:,:,:) = 0.
-PRHT(:,:,:) = 0.
-PRHS(:,:,:) = 0.
-!
-IF ( KRR .GE. 2 ) PRCT(:,:,:) = PRS(:,:,:,2)*PTSTEP
-IF ( KRR .GE. 2 ) PRCS(:,:,:) = PRS(:,:,:,2)
-IF ( KRR .GE. 3 ) PRRT(:,:,:) = PRT(:,:,:,3) 
-IF ( KRR .GE. 3 ) PRRS(:,:,:) = PRS(:,:,:,3)
-IF ( KRR .GE. 4 ) PRIT(:,:,:) = PRT(:,:,:,4)
-IF ( KRR .GE. 4 ) PRIS(:,:,:) = PRS(:,:,:,4) 
-IF ( KRR .GE. 5 ) PRST(:,:,:) = PRT(:,:,:,5) 
-IF ( KRR .GE. 5 ) PRSS(:,:,:) = PRS(:,:,:,5) 
-IF ( KRR .GE. 6 ) PRGT(:,:,:) = PRT(:,:,:,6)
-IF ( KRR .GE. 6 ) PRGS(:,:,:) = PRS(:,:,:,6)
-IF ( KRR .GE. 7 ) PRHT(:,:,:) = PRT(:,:,:,7)
-IF ( KRR .GE. 7 ) PRHS(:,:,:) = PRS(:,:,:,7)
-!
-! Prepare 3D number concentrations
-PCCT(:,:,:) = 0.
-PCIT(:,:,:) = 0.
-PCCS(:,:,:) = 0.
-! PCIS(:,:,:) = 0.
-!
-IF ( NMOM_C.GE.2 ) PCCT(:,:,:) = PSVS(:,:,:,ISV_LIMA_NC)*PTSTEP
-IF ( NMOM_I.GE.2 ) PCIT(:,:,:) = PSVT(:,:,:,ISV_LIMA_NI)
-!
-IF ( NMOM_C.GE.2 ) PCCS(:,:,:) = PSVS(:,:,:,ISV_LIMA_NC)
-! IF (  NMOM_I.GE.2 ) PCIS(:,:,:) = PSVS(:,:,:,ISV_LIMA_NI)
-!
-IF ( LSCAV .AND. LAERO_MASS ) PMAS(:,:,:) = PSVS(:,:,:,ISV_LIMA_SCAVMASS)
-! 
-IF ( NMOM_C.GE.1 .AND. NMOD_CCN.GE.1 ) THEN
-   ALLOCATE( PNFS(SIZE(PRHODJ,1),SIZE(PRHODJ,2),SIZE(PRHODJ,3),NMOD_CCN) )
-   ALLOCATE( PNAS(SIZE(PRHODJ,1),SIZE(PRHODJ,2),SIZE(PRHODJ,3),NMOD_CCN) )
-   ALLOCATE( PNFT(SIZE(PRHODJ,1),SIZE(PRHODJ,2),SIZE(PRHODJ,3),NMOD_CCN) )
-   ALLOCATE( PNAT(SIZE(PRHODJ,1),SIZE(PRHODJ,2),SIZE(PRHODJ,3),NMOD_CCN) )
-   PNFS(:,:,:,:) = PSVS(:,:,:,ISV_LIMA_CCN_FREE:ISV_LIMA_CCN_FREE+NMOD_CCN-1)
-   PNAS(:,:,:,:) = PSVS(:,:,:,ISV_LIMA_CCN_ACTI:ISV_LIMA_CCN_ACTI+NMOD_CCN-1)
-   PNFT(:,:,:,:) = PSVS(:,:,:,ISV_LIMA_CCN_FREE:ISV_LIMA_CCN_FREE+NMOD_CCN-1)*PTSTEP
-   PNAT(:,:,:,:) = PSVS(:,:,:,ISV_LIMA_CCN_ACTI:ISV_LIMA_CCN_ACTI+NMOD_CCN-1)*PTSTEP
-END IF
-!
-! IF ( NMOM_I.GE.1 .AND. NMOD_IFN .GE. 1 ) THEN
-!    ALLOCATE( PIFS(SIZE(PRHODJ,1),SIZE(PRHODJ,2),SIZE(PRHODJ,3),NMOD_IFN) )
-!    ALLOCATE( PINS(SIZE(PRHODJ,1),SIZE(PRHODJ,2),SIZE(PRHODJ,3),NMOD_IFN) )
-!    PIFS(:,:,:,:) = PSVS(:,:,:,ISV_LIMA_IFN_FREE:ISV_LIMA_IFN_FREE+NMOD_IFN-1)
-!    PINS(:,:,:,:) = PSVS(:,:,:,ISV_LIMA_IFN_NUCL:ISV_LIMA_IFN_NUCL+NMOD_IFN-1)
-! END IF
-!
-! IF ( NMOD_IMM .GE. 1 ) THEN
-!    ALLOCATE( PNIS(SIZE(PRHODJ,1),SIZE(PRHODJ,2),SIZE(PRHODJ,3),NMOD_IMM) )
-!    PNIS(:,:,:,:) = PSVS(:,:,:,ISV_LIMA_IMM_NUCL:ISV_LIMA_IMM_NUCL+NMOD_IMM-1)
-! END IF
-!
-!
-if ( nbumod == kmi .and. BUCONF%lbu_enable ) then
-  if ( BUCONF%lbudget_th ) call BUDGET_STORE_INIT_PHY(D, TBUDGETS(NBUDGET_TH), 'CEDS', pths(:, :, :) * prhodj(:, :, :) )
-  if ( BUCONF%lbudget_rv ) call BUDGET_STORE_INIT_PHY(D, TBUDGETS(NBUDGET_RV), 'CEDS', prvs(:, :, :) * prhodj(:, :, :) )
-  if ( BUCONF%lbudget_rc ) call BUDGET_STORE_INIT_PHY(D, TBUDGETS(NBUDGET_RC), 'CEDS', prcs(:, :, :) * prhodj(:, :, :) )
-  !Remark: PRIS is not modified but source term kept for better coherence with lima_adjust and lima_notadjust
-  if ( BUCONF%lbudget_ri ) call BUDGET_STORE_INIT_PHY(D, TBUDGETS(NBUDGET_RI), 'CEDS', pris(:, :, :) * prhodj(:, :, :) )
-  if ( BUCONF%lbudget_sv ) then
-    if ( nmom_c.ge.2) &
-      call BUDGET_STORE_INIT_PHY(D, TBUDGETS(NBUDGET_SV1 - 1 + nsv_lima_nc), 'CEDS', pccs(:, :, :) * prhodj(:, :, :) )
-    if ( lscav .and. laero_mass ) &
-      call BUDGET_STORE_INIT_PHY(D, TBUDGETS(NBUDGET_SV1 - 1 + nsv_lima_scavmass), 'CEDS', pmas(:, :, :) * prhodj(:, :, :) )
-    if ( nmom_c.ge.1 ) then
-      do jl = 1, nmod_ccn
-        idx = NBUDGET_SV1 - 1 + nsv_lima_ccn_free - 1 + jl
-        call BUDGET_STORE_INIT_PHY(D, TBUDGETS(idx), 'CEDS', pnfs(:, :, :, jl) * prhodj(:, :, :) )
-        idx = NBUDGET_SV1 - 1 + nsv_lima_ccn_acti - 1 + jl
-        call BUDGET_STORE_INIT_PHY(D, TBUDGETS(idx), 'CEDS', pnas(:, :, :, jl) * prhodj(:, :, :) )
-      end do
-    end if
-!     if ( nmom_i.ge.2 ) then
-!       call BUDGET_STORE_INIT_PHY(D, TBUDGETS(NBUDGET_SV1 - 1 + nsv_lima_ni), 'CEDS', pcis(:, :, :) * prhodj(:, :, :) )
-!       do jl = 1, nmod_ifn
-!         idx = NBUDGET_SV1 - 1 + nsv_lima_ifn_free - 1 + jl
-!         call BUDGET_STORE_INIT_PHY(D, TBUDGETS(idx), 'CEDS', pifs(:, :, :, jl) * prhodj(:, :, :) )
-!         idx = NBUDGET_SV1 - 1 + nsv_lima_ifn_nucl - 1 + jl
-!         call BUDGET_STORE_INIT_PHY(D, TBUDGETS(idx), 'CEDS', pins(:, :, :, jl) * prhodj(:, :, :) )
-!       end do
-!       do jl = 1, nmod_imm
-!         idx = NBUDGET_SV1 - 1 + nsv_lima_imm_nucl - 1 + jl
-!         call BUDGET_STORE_INIT_PHY(D, TBUDGETS(idx), 'CEDS', pnis(:, :, :, jl) * prhodj(:, :, :) )
-!       end do
-!     end if
+     KRR, KMI, HCONDENS, HLAMBDA3,                      &
+     OSUBG_COND, OSIGMAS, PTSTEP, PSIGQSAT,             &
+     PRHODREF, PRHODJ, PEXNREF, PSIGS, PMFCONV,         &
+     PPABST, PPABSTT, PZZ, PDTHRAD, PW_NU,              &
+     PRT, PRS, PSVT, PSVS,                              &
+     PTHS, PSRCS, PCLDFR, PICEFR, PRC_MF, PRI_MF, PCF_MF)
+  !     ###########################################################################
+  !
+  !!****  *MIMA_ADJUST* -  compute the fast microphysical sources 
+  !!
+  !!    PURPOSE
+  !!    -------
+  !!      The purpose of this routine is to compute the fast microphysical sources
+  !!      through an explict scheme and a saturation ajustement procedure.
+  !!
+  !!
+  !!**  METHOD
+  !!    ------
+  !!      Reisin et al.,    1996 for the explicit scheme when ice is present
+  !!      Langlois, Tellus, 1973 for the implict adjustment for the cloud water
+  !!      (refer also to book 1 of the documentation).
+  !!
+  !!      Computations are done separately for three cases :
+  !!        - ri>0 and rc=0
+  !!        - rc>0 and ri=0
+  !!        - ri>0 and rc>0
+  !!
+  !!
+  !!    EXTERNAL
+  !!    --------
+  !!      None
+  !!     
+  !!
+  !!    IMPLICIT ARGUMENTS
+  !!    ------------------
+  !!      Module MODD_CST
+  !!         XP00               ! Reference pressure
+  !!         XMD,XMV            ! Molar mass of dry air and molar mass of vapor
+  !!         XRD,XRV            ! Gaz constant for dry air, gaz constant for vapor
+  !!         XCPD,XCPV          ! Cpd (dry air), Cpv (vapor)
+  !!         XCL                ! Cl (liquid)
+  !!         XTT                ! Triple point temperature
+  !!         XLVTT              ! Vaporization heat constant
+  !!         XALPW,XBETAW,XGAMW ! Constants for saturation vapor 
+  !!                            !  pressure  function 
+  !!      Module  MODD_CONF 
+  !!         CCONF
+  !!      Module MODD_BUDGET:
+  !!         NBUMOD 
+  !!         CBUTYPE
+  !!         LBU_RTH    
+  !!         LBU_RRV  
+  !!         LBU_RRC  
+  !!      Module MODD_LES : NCTR_LES,LTURB_LES,NMODNBR_LES
+  !!                        XNA declaration (cloud fraction as global var)
+  !!
+  !!    REFERENCE
+  !!    ---------
+  !!
+  !!      Book 1 and Book2 of documentation ( routine FAST_TERMS )
+  !!      Langlois, Tellus, 1973
+  !!
+  !!    AUTHOR
+  !!    ------
+  !!      E. Richard       * Laboratoire d'Aerologie*
+  !!      J.-M. Cohard     * Laboratoire d'Aerologie*
+  !!      J.-P. Pinty      * Laboratoire d'Aerologie*
+  !!      S.    Berthet    * Laboratoire d'Aerologie*
+  !!      B.    Vié        * Laboratoire d'Aerologie*
+  !!
+  !!    MODIFICATIONS
+  !!    -------------
+  !!      Original             06/2021 forked from lima_adjust.f90 
+  !  P. Wautelet 23/07/2021: replace non-standard FLOAT function by REAL function
+  !  B. Vie         03/2022: Add option for 1-moment pristine ice
+  !-------------------------------------------------------------------------------
+  !
+  !*       0.    DECLARATIONS
+  !              ------------
+  !
+  USE MODD_BUDGET,   ONLY: TBUDGETDATA, TBUDGETCONF_t, NBUDGET_TH, NBUDGET_RV, &
+       NBUDGET_RC, NBUDGET_RI, NBUDGET_RV, NBUDGET_SV1, NBUMOD        
+  USE MODD_CST,            ONLY: CST_t
+  !USE MODD_CONF
+  !use modd_field,            only: TFIELDDATA, TYPEREAL
+  !USE MODD_IO,               ONLY: TFILEDATA
+  !USE MODD_LUNIT_n,          ONLY: TLUOUT
+  USE MODD_NSV
+  USE MODD_PARAMETERS
+  USE MODD_PARAM_LIMA
+  USE MODD_PARAM_LIMA_COLD
+  USE MODD_PARAM_LIMA_MIXED
+  USE MODD_PARAM_LIMA_WARM
+  USE MODD_RAIN_ICE_PARAM_n,   ONLY: RAIN_ICE_PARAMN
+  USE MODD_NEB_n,            ONLY: NEBN
+  USE MODD_TURB_n,           ONLY: TURBN
+  USE MODD_DIMPHYEX,         ONLY: DIMPHYEX_t
+  !
+  USE MODE_BUDGET_PHY,       ONLY: BUDGET_STORE_INIT_PHY, BUDGET_STORE_END_PHY
+  !USE MODE_IO_FIELD_WRITE,   only: IO_Field_write
+  use mode_msg
+  !
+  USE MODI_CONDENSATION
+  USE MODE_LIMA_CCN_ACTIVATION, ONLY: LIMA_CCN_ACTIVATION
+  !
+  IMPLICIT NONE
+  !
+  !*       0.1   Declarations of dummy arguments :
+  !
+  !
+  TYPE(DIMPHYEX_t),         INTENT(IN)   :: D
+  TYPE(CST_t),              INTENT(IN)    :: CST
+  TYPE(TBUDGETCONF_t),      INTENT(IN)    :: BUCONF
+  TYPE(TBUDGETDATA), DIMENSION(KBUDGETS), INTENT(INOUT) :: TBUDGETS
+  INTEGER, INTENT(IN) :: KBUDGETS
+  !
+  INTEGER,                  INTENT(IN)   :: KRR        ! Number of moist variables
+  INTEGER,                  INTENT(IN)   :: KMI        ! Model index 
+  CHARACTER(len=80),        INTENT(IN)    :: HCONDENS
+  CHARACTER(len=4),         INTENT(IN)    :: HLAMBDA3  ! formulation for lambda3 coeff
+  LOGICAL,                  INTENT(IN)   :: OSUBG_COND ! Switch for Subgrid 
+  ! Condensation
+  LOGICAL,                  INTENT(IN)   :: OSIGMAS    ! Switch for Sigma_s: 
+  ! use values computed in CONDENSATION
+  ! or that from turbulence scheme
+  REAL,                     INTENT(IN)   :: PTSTEP     ! Time step          
+  REAL,                     INTENT(IN)   :: PSIGQSAT   ! coeff applied to qsat variance contribution
+  !
+  REAL, DIMENSION(:,:,:),   INTENT(IN)   ::  PRHODREF  ! Dry density of the 
+  ! reference state
+  REAL, DIMENSION(:,:,:),   INTENT(IN)   ::  PRHODJ    ! Dry density * Jacobian
+  REAL, DIMENSION(:,:,:),   INTENT(IN)   ::  PEXNREF   ! Reference Exner function
+  REAL, DIMENSION(:,:,:),   INTENT(IN)   ::  PSIGS     ! Sigma_s at time t
+  REAL, DIMENSION(:,:,:),   INTENT(IN)   ::  PMFCONV   ! 
+  REAL, DIMENSION(:,:,:),   INTENT(IN)   ::  PPABST    ! Absolute Pressure at t     
+  REAL, DIMENSION(:,:,:),   INTENT(IN)   ::  PPABSTT   ! Absolute Pressure at t+dt     
+  REAL, DIMENSION(:,:,:),   INTENT(IN)   ::  PZZ       !     
+  REAL, DIMENSION(:,:,:),   INTENT(IN)    :: PDTHRAD   ! Radiative temperature tendency
+  REAL, DIMENSION(:,:,:),   INTENT(IN)    :: PW_NU     ! updraft velocity used for
+  !
+  REAL, DIMENSION(:,:,:,:), INTENT(IN)    :: PRT       ! m.r. at t
+  !
+  REAL, DIMENSION(:,:,:,:), INTENT(INOUT) :: PRS       ! m.r. source
+  !
+  REAL, DIMENSION(:,:,:,:), INTENT(IN)    :: PSVT ! Concentrations at time t
+  !
+  REAL, DIMENSION(:,:,:,:), INTENT(INOUT) :: PSVS ! Concentration sources
+  !
+  REAL, DIMENSION(:,:,:),   INTENT(INOUT) :: PTHS      ! Theta source
+  !
+  REAL, DIMENSION(:,:,:),   INTENT(OUT)   :: PSRCS     ! Second-order flux
+  ! s'rc'/2Sigma_s2 at time t+1
+  ! multiplied by Lambda_3
+  REAL, DIMENSION(:,:,:),   INTENT(INOUT)   :: PCLDFR    ! Cloud fraction          
+  REAL, DIMENSION(:,:,:),   INTENT(INOUT)   :: PICEFR    ! Cloud fraction          
+  REAL, DIMENSION(:,:,:),     INTENT(IN)    :: PRC_MF! Convective Mass Flux liquid mixing ratio
+  REAL, DIMENSION(:,:,:),     INTENT(IN)    :: PRI_MF! Convective Mass Flux ice mixing ratio
+  REAL, DIMENSION(:,:,:),     INTENT(IN)    :: PCF_MF! Convective Mass Flux Cloud fraction 
+  !
+  !
+  !*       0.2   Declarations of local variables :
+  !
+  ! 3D Microphysical variables
+  REAL, DIMENSION(SIZE(PRHODJ,1),SIZE(PRHODJ,2),SIZE(PRHODJ,3)) &
+       :: PTHT,        &
+       PRVT,        & ! Water vapor m.r. at t
+       PRCT,        & ! Cloud water m.r. at t
+       PRRT,        & ! Rain water m.r. at t
+       PRIT,        & ! Cloud ice  m.r. at t
+                                !
+       PRVS,        & ! Water vapor m.r. source
+       PRCS,        & ! Cloud water m.r. source
+       PRRS,        & ! Rain water m.r. source
+       PRIS,        & ! Cloud ice  m.r. source
+       PRSS,        & ! Aggregate  m.r. source
+       PRGS,        & ! Graupel    m.r. source
+       PRHS,        & ! Hail       m.r. source
+                                !
+       PCCT,        & ! Cloud water conc. at t
+       PCIT,        & ! Cloud ice   conc. at t
+                                !
+       PCCS,        & ! Cloud water C. source
+       PMAS           ! Mass of scavenged AP
+  !
+  REAL, DIMENSION(:,:,:,:), ALLOCATABLE &
+       :: PNFS,        & ! Free      CCN C. source
+       PNAS,        & ! Activated CCN C. source
+       PNFT,        & ! Free      CCN C.
+       PNAT           ! Activated CCN C.
+  !
+  !
+  !
+  REAL, DIMENSION(SIZE(PRHODJ,1),SIZE(PRHODJ,2),SIZE(PRHODJ,3)) &
+       :: ZEXNS,&      ! guess of the Exner function at t+1
+       ZT, ZT2,  &      ! guess of the temperature at t+1
+       ZCPH, &      ! guess of the CPh for the mixing
+       ZW,   &
+       ZW1,  &
+       ZW2,  &
+       ZLV,  &      ! guess of the Lv at t+1
+       ZLS,  &      ! guess of the Ls at t+1
+       ZMASK,&
+       ZRV, ZRV2,ZRV_IN,  &
+       ZRC, ZRC2,ZRC_IN,  &
+       ZRI, ZRI_IN,  &
+       Z_SIGS, Z_SRCS, &
+       ZW_MF, &
+       ZCND, ZS, ZVEC1, ZDUM
+  REAL, DIMENSION(SIZE(PRHODJ,1),SIZE(PRHODJ,2)) :: ZSIGQSAT2D
+  !
+  INTEGER, DIMENSION(SIZE(PRHODJ,1),SIZE(PRHODJ,2),SIZE(PRHODJ,3)) :: IVEC1
+  !
+  INTEGER                           :: ISIZE
+  LOGICAL                           :: G_SIGMAS, GUSERI
+  REAL, DIMENSION(:), ALLOCATABLE   :: ZRTMIN
+  REAL, DIMENSION(:), ALLOCATABLE   :: ZCTMIN
+  !
+  integer :: idx
+  integer :: JI, JJ, JK, jl
+  INTEGER                           :: JMOD
+  !
+  INTEGER :: ISV_LIMA_NC
+  INTEGER :: ISV_LIMA_CCN_FREE
+  INTEGER :: ISV_LIMA_CCN_ACTI
+  INTEGER :: ISV_LIMA_SCAVMASS
+  !
+  !-------------------------------------------------------------------------------
+  !
+  !*       1.     PRELIMINARIES
+  !               -------------
+  !
+  ISV_LIMA_NC       = NSV_LIMA_NC       - NSV_LIMA_BEG + 1
+  ISV_LIMA_CCN_FREE = NSV_LIMA_CCN_FREE - NSV_LIMA_BEG + 1
+  ISV_LIMA_CCN_ACTI = NSV_LIMA_CCN_ACTI - NSV_LIMA_BEG + 1
+  ISV_LIMA_SCAVMASS = NSV_LIMA_SCAVMASS - NSV_LIMA_BEG + 1
+  !
+  ISIZE = SIZE(XRTMIN)
+  ALLOCATE(ZRTMIN(ISIZE))
+  ZRTMIN(:) = XRTMIN(:) / PTSTEP
+  ISIZE = SIZE(XCTMIN)
+  ALLOCATE(ZCTMIN(ISIZE))
+  ZCTMIN(:) = XCTMIN(:) / PTSTEP
+  !
+  ! Prepare 3D water mixing ratios
+  !
+  PTHT = PTHS*PTSTEP
+  !
+  PRVT(:,:,:) = PRS(:,:,:,1)*PTSTEP
+  PRVS(:,:,:) = PRS(:,:,:,1)
+  !
+  PRCT(:,:,:) = 0.
+  PRCS(:,:,:) = 0.
+  PRRT(:,:,:) = 0.
+  PRRS(:,:,:) = 0.
+  PRIT(:,:,:) = 0.
+  PRIS(:,:,:) = 0.
+  PRSS(:,:,:) = 0.
+  PRGS(:,:,:) = 0.
+  PRHS(:,:,:) = 0.
+  !
+  IF ( KRR .GE. 2 ) PRCT(:,:,:) = PRS(:,:,:,2)*PTSTEP
+  IF ( KRR .GE. 2 ) PRCS(:,:,:) = PRS(:,:,:,2)
+  IF ( KRR .GE. 3 ) PRRT(:,:,:) = PRT(:,:,:,3) 
+  IF ( KRR .GE. 3 ) PRRS(:,:,:) = PRS(:,:,:,3)
+  IF ( KRR .GE. 4 ) PRIT(:,:,:) = PRT(:,:,:,4)
+  IF ( KRR .GE. 4 ) PRIS(:,:,:) = PRS(:,:,:,4) 
+  IF ( KRR .GE. 5 ) PRSS(:,:,:) = PRS(:,:,:,5) 
+  IF ( KRR .GE. 6 ) PRGS(:,:,:) = PRS(:,:,:,6)
+  IF ( KRR .GE. 7 ) PRHS(:,:,:) = PRS(:,:,:,7)
+  !
+  ! Prepare 3D number concentrations
+  !
+  PCCT(:,:,:) = 0.
+  PCCS(:,:,:) = 0.
+  !
+  IF ( NMOM_C.GE.2 ) PCCT(:,:,:) = PSVS(:,:,:,ISV_LIMA_NC)*PTSTEP
+  IF ( NMOM_C.GE.2 ) PCCS(:,:,:) = PSVS(:,:,:,ISV_LIMA_NC)
+  !
+  IF ( LSCAV .AND. LAERO_MASS ) PMAS(:,:,:) = PSVS(:,:,:,ISV_LIMA_SCAVMASS)
+  ! 
+  IF ( NMOM_C.GE.1 .AND. NMOD_CCN.GE.1 ) THEN
+     ALLOCATE( PNFS(SIZE(PRHODJ,1),SIZE(PRHODJ,2),SIZE(PRHODJ,3),NMOD_CCN) )
+     ALLOCATE( PNAS(SIZE(PRHODJ,1),SIZE(PRHODJ,2),SIZE(PRHODJ,3),NMOD_CCN) )
+     ALLOCATE( PNFT(SIZE(PRHODJ,1),SIZE(PRHODJ,2),SIZE(PRHODJ,3),NMOD_CCN) )
+     ALLOCATE( PNAT(SIZE(PRHODJ,1),SIZE(PRHODJ,2),SIZE(PRHODJ,3),NMOD_CCN) )
+     PNFS(:,:,:,:) = PSVS(:,:,:,ISV_LIMA_CCN_FREE:ISV_LIMA_CCN_FREE+NMOD_CCN-1)
+     PNAS(:,:,:,:) = PSVS(:,:,:,ISV_LIMA_CCN_ACTI:ISV_LIMA_CCN_ACTI+NMOD_CCN-1)
+     PNFT(:,:,:,:) = PSVS(:,:,:,ISV_LIMA_CCN_FREE:ISV_LIMA_CCN_FREE+NMOD_CCN-1)*PTSTEP
+     PNAT(:,:,:,:) = PSVS(:,:,:,ISV_LIMA_CCN_ACTI:ISV_LIMA_CCN_ACTI+NMOD_CCN-1)*PTSTEP
+  END IF
+  !
+  ! Initialize budgets
+  !
+  if ( nbumod == kmi .and. BUCONF%lbu_enable ) then
+     if ( BUCONF%lbudget_th ) call BUDGET_STORE_INIT_PHY(D, TBUDGETS(NBUDGET_TH), 'CEDS', pths(:, :, :) * prhodj(:, :, :) )
+     if ( BUCONF%lbudget_rv ) call BUDGET_STORE_INIT_PHY(D, TBUDGETS(NBUDGET_RV), 'CEDS', prvs(:, :, :) * prhodj(:, :, :) )
+     if ( BUCONF%lbudget_rc ) call BUDGET_STORE_INIT_PHY(D, TBUDGETS(NBUDGET_RC), 'CEDS', prcs(:, :, :) * prhodj(:, :, :) )
+     if ( BUCONF%lbudget_ri ) call BUDGET_STORE_INIT_PHY(D, TBUDGETS(NBUDGET_RI), 'CEDS', pris(:, :, :) * prhodj(:, :, :) )
+     if ( BUCONF%lbudget_sv ) then
+        if ( nmom_c.ge.2) &
+             call BUDGET_STORE_INIT_PHY(D, TBUDGETS(NBUDGET_SV1 - 1 + nsv_lima_nc), 'CEDS', pccs(:, :, :) * prhodj(:, :, :) )
+        if ( lscav .and. laero_mass ) &
+             call BUDGET_STORE_INIT_PHY(D, TBUDGETS(NBUDGET_SV1 - 1 + nsv_lima_scavmass), 'CEDS', pmas(:, :, :) * prhodj(:, :, :) )
+        if ( nmom_c.ge.1 ) then
+           do jl = 1, nmod_ccn
+              idx = NBUDGET_SV1 - 1 + nsv_lima_ccn_free - 1 + jl
+              call BUDGET_STORE_INIT_PHY(D, TBUDGETS(idx), 'CEDS', pnfs(:, :, :, jl) * prhodj(:, :, :) )
+              idx = NBUDGET_SV1 - 1 + nsv_lima_ccn_acti - 1 + jl
+              call BUDGET_STORE_INIT_PHY(D, TBUDGETS(idx), 'CEDS', pnas(:, :, :, jl) * prhodj(:, :, :) )
+           end do
+        end if
+     end if
   end if
-end if
-!
-!-------------------------------------------------------------------------------
-!
-!
-!*       2.     COMPUTE QUANTITIES WITH THE GUESS OF THE FUTURE INSTANT
-!               -------------------------------------------------------
-!
-!*       2.1    remove negative non-precipitating negative water
-!               ------------------------------------------------
-!
-!IF (ANY(PRVS(:,:,:)+PRCS(:,:,:)+PRIS(:,:,:) < 0.) .AND. NVERB>5) THEN
-!  WRITE(ILUOUT,*) 'LIMA_ADJUST:  negative values of total water (reset to zero)'
-!  WRITE(ILUOUT,*) '  location of minimum PRVS+PRCS+PRIS:',MINLOC(PRVS+PRCS+PRIS)
-!  WRITE(ILUOUT,*) '  value of minimum    PRVS+PRCS+PRIS:',MINVAL(PRVS+PRCS+PRIS)
-!END IF
-!
-WHERE ( PRVS(:,:,:)+PRCS(:,:,:)+PRIS(:,:,:) < 0.)
-  PRVS(:,:,:) = -  PRCS(:,:,:) - PRIS(:,:,:)
-END WHERE
-!
-!*       2.2    estimate the Exner function at t+1
-!
-ZEXNS(:,:,:) = ( PPABSTT(:,:,:) / CST%XP00 ) ** (CST%XRD/CST%XCPD)  
-!
-!    beginning of the iterative loop
-!
-DO JITER =1,ITERMAX
-!
-!*       2.3    compute the intermediate temperature at t+1, T*
-!  
-   ZT(:,:,:) = ( PTHS(:,:,:) * ZDT ) * ZEXNS(:,:,:)
-   ZT2(:,:,:) = ZT(:,:,:)
-!
-!*       2.4    compute the specific heat for moist air (Cph) at t+1
-!
-   ZCPH(:,:,:) = CST%XCPD + CST%XCPV  *ZDT*   PRVS(:,:,:)                             &
-                      + CST%XCL *ZDT* ( PRCS(:,:,:) + PRRS(:,:,:) )             &
-                      + CST%XCI *ZDT* ( PRIS(:,:,:) + PRSS(:,:,:) + PRGS(:,:,:) + PRHS(:,:,:) )
-!
-!*       2.5    compute the latent heat of vaporization Lv(T*) at t+1
-!               and of sublimation Ls(T*) at t+1
-!
-   ZLV(:,:,:) = CST%XLVTT + ( CST%XCPV - CST%XCL ) * ( ZT(:,:,:) -CST%XTT )
-   ZLS(:,:,:) = CST%XLSTT + ( CST%XCPV - CST%XCI ) * ( ZT(:,:,:) -CST%XTT )
-!
-!
-!-------------------------------------------------------------------------------
-!
-!*       3.     FIRST ORDER SUBGRID CONDENSATION SCHEME
-!               ---------------------------------------
-!
-   ZRV_IN=PRVS*PTSTEP
-   ZRV2=PRVT
-   ZRC_IN=PRCS*PTSTEP
-   ZRC2=PRCT
-   IF (NMOM_I.EQ.1) THEN
-      ZRI_IN=PRIS*PTSTEP
-      GUSERI=.TRUE.
-   ELSE
-      ZRI_IN=0.
-      GUSERI=.FALSE.
-   END IF
-   IF (OSUBG_COND) THEN
-      Z_SIGS=PSIGS
-      G_SIGMAS=OSIGMAS
-      ZSIGQSAT2D(:,:)=PSIGQSAT
-   ELSE
-      Z_SIGS=0.
-      G_SIGMAS=.TRUE.
-      ZSIGQSAT2D(:,:)=0.
-   END IF
-
-   IF (LADJ) THEN
-      CALL CONDENSATION(D, CST, RAIN_ICE_PARAMN, NEBN, TURBN,                    &
+  !
+  !-------------------------------------------------------------------------------
+  !
+  !*       2.     CONDENSATION
+  !               ------------
+  !
+  WHERE ( PRVS(:,:,:)+PRCS(:,:,:)+PRIS(:,:,:) < 0.)
+     PRVS(:,:,:) = -  PRCS(:,:,:) - PRIS(:,:,:)
+  END WHERE
+  !
+  ZEXNS(:,:,:) = ( PPABSTT(:,:,:) / CST%XP00 ) ** (CST%XRD/CST%XCPD)  
+  ZT(:,:,:) = ( PTHS(:,:,:) * PTSTEP ) * ZEXNS(:,:,:)
+  ZT2(:,:,:) = ZT(:,:,:)
+  ZCPH(:,:,:) = CST%XCPD + CST%XCPV  * PTSTEP *   PRVS(:,:,:)                             &
+       + CST%XCL * PTSTEP * ( PRCS(:,:,:) + PRRS(:,:,:) )             &
+       + CST%XCI * PTSTEP * ( PRIS(:,:,:) + PRSS(:,:,:) + PRGS(:,:,:) + PRHS(:,:,:) )
+  ZLV(:,:,:) = CST%XLVTT + ( CST%XCPV - CST%XCL ) * ( ZT(:,:,:) -CST%XTT )
+  ZLS(:,:,:) = CST%XLSTT + ( CST%XCPV - CST%XCI ) * ( ZT(:,:,:) -CST%XTT )
+  !
+  IF (LADJ) THEN
+     ZRV_IN=PRVS*PTSTEP
+     ZRC_IN=PRCS*PTSTEP
+     IF (NMOM_I.EQ.1) THEN
+        ZRI_IN=PRIS*PTSTEP
+        GUSERI=.TRUE.
+     ELSE
+        ZRI_IN=0.
+        GUSERI=.FALSE.
+     END IF
+     IF (OSUBG_COND) THEN
+        Z_SIGS=PSIGS
+        G_SIGMAS=OSIGMAS
+        ZSIGQSAT2D(:,:)=PSIGQSAT
+     ELSE
+        Z_SIGS=0.
+        G_SIGMAS=.TRUE.
+        ZSIGQSAT2D(:,:)=0.
+     END IF
+     CALL CONDENSATION(D, CST, RAIN_ICE_PARAMN, NEBN, TURBN,                    &
           'S', HCONDENS, HLAMBDA3,                                             &
-           PPABST, PZZ, PRHODREF, ZT, ZRV_IN, ZRV, ZRC_IN, ZRC, ZRI_IN, ZRI,   &
-           PRRS*PTSTEP,PRSS*PTSTEP, PRGS*PTSTEP, &
-           Z_SIGS, .FALSE., PMFCONV, PCLDFR, Z_SRCS, GUSERI, G_SIGMAS, .FALSE., &
-           ZDUM, ZDUM, ZDUM, ZDUM, ZDUM,              &
-           ZSIGQSAT2D, PLV=ZLV, PLS=ZLS, PCPH=ZCPH )
-   END IF
-   IF (OSUBG_COND .AND. NMOM_C.GE.2 .AND. LACTI) THEN
-      PSRCS=Z_SRCS
-      ZW_MF=0.
-      CALL LIMA_CCN_ACTIVATION (CST,                          &
-           PRHODREF, PEXNREF, PPABST, ZT2, PDTHRAD, PW_NU+ZW_MF, &
-           PTHT, ZRV2, ZRC2, PCCT, PRRT, PNFT, PNAT,             &
-           PCLDFR                                                )      
-   END IF
-
-END DO
-!
-!*       5.1    compute the sources
-!
-IF (LADJ) THEN
-                                                           !         Rc - Rc*
-   ZW1(:,:,:) = (ZRC(:,:,:) - PRCS(:,:,:)*PTSTEP) / PTSTEP ! Pcon = ----------
-                                                           !         2 Delta t
-   WHERE( ZW1(:,:,:) < 0.0 )
-      ZW1(:,:,:) = MAX ( ZW1(:,:,:), -PRCS(:,:,:) )
-   ELSEWHERE
-      ZW1(:,:,:) = MIN ( ZW1(:,:,:),  PRVS(:,:,:) )
-   END WHERE
-   PRVS(:,:,:) = PRVS(:,:,:) - ZW1(:,:,:)
-   PRCS(:,:,:) = PRCS(:,:,:) + ZW1(:,:,:)
-   PTHS(:,:,:) = PTHS(:,:,:) +        &
-              ZW1(:,:,:) * ZLV(:,:,:) / (ZCPH(:,:,:) * PEXNREF(:,:,:))
-ELSE
-   DO JI=1,SIZE(PRCS,1)
-      DO JJ=1,SIZE(PRCS,2)
-         DO JK=1,SIZE(PRCS,3)
-            IF (PRCS(JI,JJ,JK).GE.XRTMIN(2) .AND. PCCS(JI,JJ,JK).GE.XCTMIN(2)) THEN
-               ZVEC1(JI,JJ,JK) = MAX( 1.0001, MIN( FLOAT(NAHEN)-0.0001, XAHENINTP1 * ZT(JI,JJ,JK) + XAHENINTP2 ) )
-               IVEC1(JI,JJ,JK) = INT( ZVEC1(JI,JJ,JK) )
-               ZVEC1(JI,JJ,JK) = ZVEC1(JI,JJ,JK) - FLOAT( IVEC1(JI,JJ,JK) )
-               ZW(JI,JJ,JK)=EXP( CST%XALPW - CST%XBETAW/ZT(JI,JJ,JK) - CST%XGAMW*ALOG(ZT(JI,JJ,JK) ) ) ! es_w
-               ZW(JI,JJ,JK)=ZEPS*ZW(JI,JJ,JK) / ( PPABST(JI,JJ,JK)-ZW(JI,JJ,JK) ) 
-               ZS(JI,JJ,JK) = PRVS(JI,JJ,JK)*PTSTEP / ZW(JI,JJ,JK) - 1.
-               ZW(JI,JJ,JK) = PCCS(JI,JJ,JK)*PTSTEP/(XLBC*PCCS(JI,JJ,JK)/PRCS(JI,JJ,JK))**XLBEXC
-               ZW2(JI,JJ,JK) = XAHENG3(IVEC1(JI,JJ,JK)+1)*ZVEC1(JI,JJ,JK)-XAHENG3(IVEC1(JI,JJ,JK))*(ZVEC1(JI,JJ,JK)-1.)
-               ZCND(JI,JJ,JK) = 2.*3.14*1000.*ZW2(JI,JJ,JK)*ZS(JI,JJ,JK)*ZW(JI,JJ,JK)
-               IF(ZCND(JI,JJ,JK).LE.0.) THEN
-                  ZCND(JI,JJ,JK) = MAX ( ZCND(JI,JJ,JK), -PRCS(JI,JJ,JK) )
-               ELSE
-                  ZCND(JI,JJ,JK) = MIN ( ZCND(JI,JJ,JK),  PRVS(JI,JJ,JK) )
-               END IF
-               PRVS(JI,JJ,JK) = PRVS(JI,JJ,JK) - ZCND(JI,JJ,JK)
-               PRCS(JI,JJ,JK) = PRCS(JI,JJ,JK) + ZCND(JI,JJ,JK)
-               PTHS(JI,JJ,JK) = PTHS(JI,JJ,JK) + ZCND(JI,JJ,JK) * ZLV(JI,JJ,JK) / (ZCPH(JI,JJ,JK) * PEXNREF(JI,JJ,JK))
-            END IF
-         END DO
-      END DO
-   END DO
-END IF
-!
-IF (NMOM_I.EQ.1) THEN
-   ZW2(:,:,:) = (ZRI(:,:,:) - PRIS(:,:,:)*PTSTEP) / PTSTEP ! idem ZW1 but for Ri
-!
-   WHERE( ZW2(:,:,:) < 0.0 )
-      ZW2(:,:,:) = MAX ( ZW2(:,:,:), -PRIS(:,:,:) )
-   ELSEWHERE
-      ZW2(:,:,:) = MIN ( ZW2(:,:,:),  PRVS(:,:,:) )
-   END WHERE
-   PRVS(:,:,:) = PRVS(:,:,:) - ZW2(:,:,:)
-   PRIS(:,:,:) = PRIS(:,:,:) + ZW2(:,:,:)
-   PTHS(:,:,:) = PTHS(:,:,:) +        &
-                 ZW2(:,:,:) * ZLS(:,:,:) / (ZCPH(:,:,:) * PEXNREF(:,:,:))
-END IF
-!
-!*       5.2    compute the cloud fraction PCLDFR
-!
-IF ( .NOT. OSUBG_COND ) THEN
-  WHERE (PRCS(:,:,:) + PRIS(:,:,:) > 1.E-12 / PTSTEP)
-    PCLDFR(:,:,:)  = 1.
-  ELSEWHERE
-    PCLDFR(:,:,:)  = 0. 
-  ENDWHERE 
-  IF ( SIZE(PSRCS,3) /= 0 ) THEN
-     WHERE (PRCS(:,:,:) + PRIS(:,:,:) > 1.E-12 / ZDT)
-        PSRCS(:,:,:)  = 1.
+          PPABST, PZZ, PRHODREF, ZT, ZRV_IN, ZRV, ZRC_IN, ZRC, ZRI_IN, ZRI,   &
+          PRRS*PTSTEP,PRSS*PTSTEP, PRGS*PTSTEP, &
+          Z_SIGS, .FALSE., PMFCONV, PCLDFR, Z_SRCS, GUSERI, G_SIGMAS, .FALSE., &
+          ZDUM, ZDUM, ZDUM, ZDUM, ZDUM,              &
+          ZSIGQSAT2D, PLV=ZLV, PLS=ZLS, PCPH=ZCPH )
+     IF (NMOM_C.GE.1) THEN
+        ZW1(:,:,:) = (ZRC(:,:,:) - PRCS(:,:,:)*PTSTEP) / PTSTEP ! Pcon = Delta_rc / Delta_t
+        WHERE( ZW1(:,:,:) < 0.0 )
+           ZW1(:,:,:) = MAX ( ZW1(:,:,:), -PRCS(:,:,:) )
+        ELSEWHERE
+           ZW1(:,:,:) = MIN ( ZW1(:,:,:),  PRVS(:,:,:) )
+        END WHERE
+        PRVS(:,:,:) = PRVS(:,:,:) - ZW1(:,:,:)
+        PRCS(:,:,:) = PRCS(:,:,:) + ZW1(:,:,:)
+        PTHS(:,:,:) = PTHS(:,:,:) +        &
+             ZW1(:,:,:) * ZLV(:,:,:) / (ZCPH(:,:,:) * PEXNREF(:,:,:))
+     END IF
+     IF (NMOM_I.EQ.1) THEN
+        PICEFR(:,:,:)=PCLDFR(:,:,:)
+        ZW2(:,:,:) = (ZRI(:,:,:) - PRIS(:,:,:)*PTSTEP) / PTSTEP ! Pdep = Delta_ri / Delta_t
+        !
+        WHERE( ZW2(:,:,:) < 0.0 )
+           ZW2(:,:,:) = MAX ( ZW2(:,:,:), -PRIS(:,:,:) )
+        ELSEWHERE
+           ZW2(:,:,:) = MIN ( ZW2(:,:,:),  PRVS(:,:,:) )
+        END WHERE
+        PRVS(:,:,:) = PRVS(:,:,:) - ZW2(:,:,:)
+        PRIS(:,:,:) = PRIS(:,:,:) + ZW2(:,:,:)
+        PTHS(:,:,:) = PTHS(:,:,:) +        &
+             ZW2(:,:,:) * ZLS(:,:,:) / (ZCPH(:,:,:) * PEXNREF(:,:,:))
+     END IF
+  ELSE
+     DO JI=1,SIZE(PRCS,1)
+        DO JJ=1,SIZE(PRCS,2)
+           DO JK=1,SIZE(PRCS,3)
+              IF (PRCS(JI,JJ,JK).GE.XRTMIN(2) .AND. PCCS(JI,JJ,JK).GE.XCTMIN(2)) THEN
+                 ZVEC1(JI,JJ,JK) = MAX( 1.0001, MIN( FLOAT(NAHEN)-0.0001, XAHENINTP1 * ZT(JI,JJ,JK) + XAHENINTP2 ) )
+                 IVEC1(JI,JJ,JK) = INT( ZVEC1(JI,JJ,JK) )
+                 ZVEC1(JI,JJ,JK) = ZVEC1(JI,JJ,JK) - FLOAT( IVEC1(JI,JJ,JK) )
+                 ZW(JI,JJ,JK)=EXP( CST%XALPW - CST%XBETAW/ZT(JI,JJ,JK) - CST%XGAMW*ALOG(ZT(JI,JJ,JK) ) ) ! es_w
+                 ZW(JI,JJ,JK)=CST%XMV / CST%XMD * ZW(JI,JJ,JK) / ( PPABST(JI,JJ,JK)-ZW(JI,JJ,JK) ) 
+                 ZS(JI,JJ,JK) = PRVS(JI,JJ,JK)*PTSTEP / ZW(JI,JJ,JK) - 1.
+                 ZW(JI,JJ,JK) = PCCS(JI,JJ,JK)*PTSTEP/(XLBC*PCCS(JI,JJ,JK)/PRCS(JI,JJ,JK))**XLBEXC
+                 ZW2(JI,JJ,JK) = XAHENG3(IVEC1(JI,JJ,JK)+1)*ZVEC1(JI,JJ,JK)-XAHENG3(IVEC1(JI,JJ,JK))*(ZVEC1(JI,JJ,JK)-1.)
+                 ZCND(JI,JJ,JK) = 2.*3.14*1000.*ZW2(JI,JJ,JK)*ZS(JI,JJ,JK)*ZW(JI,JJ,JK)
+                 IF(ZCND(JI,JJ,JK).LE.0.) THEN
+                    ZCND(JI,JJ,JK) = MAX ( ZCND(JI,JJ,JK), -PRCS(JI,JJ,JK) )
+                 ELSE
+                    ZCND(JI,JJ,JK) = MIN ( ZCND(JI,JJ,JK),  PRVS(JI,JJ,JK) )
+                 END IF
+                 PRVS(JI,JJ,JK) = PRVS(JI,JJ,JK) - ZCND(JI,JJ,JK)
+                 PRCS(JI,JJ,JK) = PRCS(JI,JJ,JK) + ZCND(JI,JJ,JK)
+                 PTHS(JI,JJ,JK) = PTHS(JI,JJ,JK) + ZCND(JI,JJ,JK) * ZLV(JI,JJ,JK) / (ZCPH(JI,JJ,JK) * PEXNREF(JI,JJ,JK))
+              END IF
+           END DO
+        END DO
+     END DO
+  END IF
+  !
+  IF (OSUBG_COND .AND. NMOM_C.GE.2 .AND. LACTI) THEN
+     PSRCS=Z_SRCS
+     ZW_MF=0.
+     ZRV2=PRVT
+     ZRC2=PRCT
+     CALL LIMA_CCN_ACTIVATION (CST,                          &
+          PRHODREF, PEXNREF, PPABST, ZT2, PDTHRAD, PW_NU+ZW_MF, &
+          PTHT, ZRV2, ZRC2, PCCT, PRRT, PNFT, PNAT,             &
+          PCLDFR                                                )      
+  END IF
+  !
+  !-------------------------------------------------------------------------------
+  !
+  !*       3.     CLOUD FROM MASS-FLUX SCHEME
+  !               ---------------------------
+  !
+  IF ( .NOT. OSUBG_COND ) THEN
+     WHERE (PRCS(:,:,:) + PRIS(:,:,:) > 1.E-12 / PTSTEP)
+        PCLDFR(:,:,:)  = 1.
      ELSEWHERE
-        PSRCS(:,:,:)  = 0.
+        PCLDFR(:,:,:)  = 0. 
      ENDWHERE
+     IF ( SIZE(PSRCS,3) /= 0 ) THEN
+        PSRCS(:,:,:)  = PCLDFR(:,:,:)
+     END IF
+  ELSE
+     ! We limit PRC_MF+PRI_MF to PRVS*PTSTEP to avoid negative humidity
+     ZW1(:,:,:)=PRC_MF(:,:,:)/PTSTEP
+     ZW2(:,:,:)=0.
+     IF (NMOM_I.EQ.1) ZW2(:,:,:)=PRI_MF(:,:,:)/PTSTEP
+     WHERE(ZW1(:,:,:)+ZW2(:,:,:)>PRVS(:,:,:))
+        ZW1(:,:,:)=ZW1(:,:,:)*PRVS(:,:,:)/(ZW1(:,:,:)+ZW2(:,:,:))
+        ZW2(:,:,:)=PRVS(:,:,:)-ZW1(:,:,:)
+     ENDWHERE
+     !
+     PCLDFR(:,:,:) = MIN(1.,PCLDFR(:,:,:)+PCF_MF(:,:,:))
+     PRVS(:,:,:)   = PRVS(:,:,:) - ZW1(:,:,:) -ZW2(:,:,:)
+     PRCS(:,:,:)   = PRCS(:,:,:) + ZW1(:,:,:)
+     IF (NMOM_I.EQ.1) PRIS(:,:,:)   = PRIS(:,:,:) + ZW2(:,:,:)
+     IF (NMOM_C.GE.2) PCCS(:,:,:)   = PCCT(:,:,:) / PTSTEP
+     IF (NMOD_CCN.GE.1) PNFS(:,:,:,:) = PNFT(:,:,:,:) / PTSTEP
+     IF (NMOD_CCN.GE.1) PNAS(:,:,:,:) = PNAT(:,:,:,:) / PTSTEP
+     PTHS(:,:,:)   = PTHS(:,:,:) + &
+          (ZW1(:,:,:) * ZLV(:,:,:) + ZW2 * ZLS(:,:,:)) / ZCPH(:,:,:)     &
+          /  PEXNREF(:,:,:)
+  END IF
+  !
+  !-------------------------------------------------------------------------------
+  !
+  !*       4.     REMOVE SMALL NUMBERS OF DROPLETS
+  !               --------------------------------
+  !
+  IF (NMOM_C .GE. 2) THEN
+     ZMASK(:,:,:) = 0.0
+     ZW(:,:,:) = 0.
+     WHERE (PRCS(:,:,:) <= ZRTMIN(2) .OR. PCCS(:,:,:) <=0.) 
+        PRVS(:,:,:) = PRVS(:,:,:) + PRCS(:,:,:) 
+        PTHS(:,:,:) = PTHS(:,:,:) - PRCS(:,:,:)*ZLV(:,:,:)/(ZCPH(:,:,:)*ZEXNS(:,:,:))
+        PRCS(:,:,:) = 0.0
+        ZW(:,:,:)   = MAX(PCCS(:,:,:),0.)
+        PCCS(:,:,:) = 0.0
+     END WHERE
+     !
+     ZW1(:,:,:) = 0.
+     IF (NMOD_CCN.GE.1) ZW1(:,:,:) = SUM(PNAS,DIM=4)
+     ZW (:,:,:) = MIN( ZW(:,:,:), ZW1(:,:,:) )
+     ZW2(:,:,:) = 0.
+     WHERE ( ZW(:,:,:) > 0. )
+        ZMASK(:,:,:) = 1.0
+        ZW2(:,:,:) = ZW(:,:,:) / ZW1(:,:,:)
+     ENDWHERE
+     DO JMOD = 1, NMOD_CCN
+        PNFS(:,:,:,JMOD) = PNFS(:,:,:,JMOD) +                           &
+             ZMASK(:,:,:) * PNAS(:,:,:,JMOD) * ZW2(:,:,:)
+        PNAS(:,:,:,JMOD) = PNAS(:,:,:,JMOD) -                           &
+             ZMASK(:,:,:) * PNAS(:,:,:,JMOD) * ZW2(:,:,:)
+        PNAS(:,:,:,JMOD) = MAX( 0.0 , PNAS(:,:,:,JMOD) )
+     ENDDO
+     IF (LSCAV .AND. LAERO_MASS) PMAS(:,:,:) = PMAS(:,:,:) * (1-ZMASK(:,:,:))
+  END IF
+  !
+  !-------------------------------------------------------------------------------
+  !
+  !*       5.     SAVE CHANGES & CLEANING
+  !               -----------------------
+  !
+  ! 3D water mixing ratios
+  PRS(:,:,:,1) = PRVS(:,:,:)
+  IF ( KRR .GE. 2 ) PRS(:,:,:,2) = PRCS(:,:,:)
+  IF ( KRR .GE. 3 ) PRS(:,:,:,3) = PRRS(:,:,:)
+  IF ( KRR .GE. 4 ) PRS(:,:,:,4) = PRIS(:,:,:)
+  IF ( KRR .GE. 5 ) PRS(:,:,:,5) = PRSS(:,:,:)
+  IF ( KRR .GE. 6 ) PRS(:,:,:,6) = PRGS(:,:,:)
+  IF ( KRR .GE. 7 ) PRS(:,:,:,7) = PRHS(:,:,:)
+  !
+  ! 3D number concentrations
+  IF ( NMOM_C.GE.2 ) PSVS(:,:,:,ISV_LIMA_NC) = PCCS(:,:,:)
+  IF ( LSCAV .AND. LAERO_MASS ) PSVS(:,:,:,ISV_LIMA_SCAVMASS) = PMAS(:,:,:)
+  IF ( NMOD_CCN.GE.1 ) THEN
+     PSVS(:,:,:,ISV_LIMA_CCN_FREE:ISV_LIMA_CCN_FREE+NMOD_CCN-1) = PNFS(:,:,:,:)
+     PSVS(:,:,:,ISV_LIMA_CCN_ACTI:ISV_LIMA_CCN_ACTI+NMOD_CCN-1) = PNAS(:,:,:,:)
   END IF
-ELSE
-! We limit PRC_MF+PRI_MF to PRVS*PTSTEP to avoid negative humidity
-   ZW1(:,:,:)=PRC_MF(:,:,:)/PTSTEP
-   IF (NMOM_I.EQ.1) THEN
-      ZW2(:,:,:)=PRI_MF(:,:,:)/PTSTEP
-   ELSE
-      ZW2(:,:,:)=0.
-   END IF
-   WHERE(ZW1(:,:,:)+ZW2(:,:,:)>PRVS(:,:,:))
-      ZW1(:,:,:)=ZW1(:,:,:)*PRVS(:,:,:)/(ZW1(:,:,:)+ZW2(:,:,:))
-      ZW2(:,:,:)=PRVS(:,:,:)-ZW1(:,:,:)
-   ENDWHERE
-! Compute CF and update rc, ri from MF scheme
-   PRVS(:,:,:)   = PRVS(:,:,:) - ZW1(:,:,:) -ZW2(:,:,:)
-   PRCS(:,:,:)   = PRCS(:,:,:) + ZW1(:,:,:)
-   PRIS(:,:,:)   = PRIS(:,:,:) + ZW2(:,:,:)
-   PCCS(:,:,:)   = PCCT(:,:,:) / PTSTEP
-   PNFS(:,:,:,:) = PNFT(:,:,:,:) / PTSTEP
-   PNAS(:,:,:,:) = PNAT(:,:,:,:) / PTSTEP
-   PTHS(:,:,:)   = PTHS(:,:,:) + &
-                   (ZW1(:,:,:) * ZLV(:,:,:) + ZW2 * ZLS(:,:,:)) / ZCPH(:,:,:)     &
-                   /  PEXNREF(:,:,:)
-END IF
-!
-! Remove cloud droplets if there are few
-!
-ZMASK(:,:,:) = 0.0
-ZW(:,:,:) = 0.
-IF (NMOM_C .GE. 2) THEN
-   WHERE (PRCS(:,:,:) <= ZRTMIN(2) .OR. PCCS(:,:,:) <=0.) 
-      PRVS(:,:,:) = PRVS(:,:,:) + PRCS(:,:,:) 
-      PTHS(:,:,:) = PTHS(:,:,:) - PRCS(:,:,:)*ZLV(:,:,:)/(ZCPH(:,:,:)*ZEXNS(:,:,:))
-      PRCS(:,:,:) = 0.0
-      ZW(:,:,:)   = MAX(PCCS(:,:,:),0.)
-      PCCS(:,:,:) = 0.0
-   END WHERE
-END IF
-!
-ZW1(:,:,:) = 0.
-IF (NMOM_C.GE.1 .AND. NMOD_CCN.GE.1) ZW1(:,:,:) = SUM(PNAS,DIM=4)
-ZW (:,:,:) = MIN( ZW(:,:,:), ZW1(:,:,:) )
-ZW2(:,:,:) = 0.
-WHERE ( ZW(:,:,:) > 0. )
-   ZMASK(:,:,:) = 1.0
-   ZW2(:,:,:) = ZW(:,:,:) / ZW1(:,:,:)
-ENDWHERE
-!
-IF (NMOM_C.GE.1 .AND. NMOD_CCN.GE.1) THEN
-   DO JMOD = 1, NMOD_CCN
-      PNFS(:,:,:,JMOD) = PNFS(:,:,:,JMOD) +                           &
-           ZMASK(:,:,:) * PNAS(:,:,:,JMOD) * ZW2(:,:,:)
-      PNAS(:,:,:,JMOD) = PNAS(:,:,:,JMOD) -                           &
-           ZMASK(:,:,:) * PNAS(:,:,:,JMOD) * ZW2(:,:,:)
-      PNAS(:,:,:,JMOD) = MAX( 0.0 , PNAS(:,:,:,JMOD) )
-   ENDDO
-END IF
-!
-IF (LSCAV .AND. LAERO_MASS) PMAS(:,:,:) = PMAS(:,:,:) * (1-ZMASK(:,:,:))
-!
-!
-!
-PICEFR(:,:,:)=0.
-IF (NMOM_I.EQ.1) THEN
-   WHERE(PICEFR(:,:,:)<1.E-10 .AND. PRIT(:,:,:)>XRTMIN(4) .AND. PCIT(:,:,:)>XCTMIN(4)) PICEFR(:,:,:)=PCLDFR(:,:,:)
-ELSE
-   WHERE(PICEFR(:,:,:)<1.E-10 .AND. PRIT(:,:,:)>XRTMIN(4) .AND. PCIT(:,:,:)>XCTMIN(4)) PICEFR(:,:,:)=1.
-END IF
-!
-!!$IF ( tpfile%lopened ) THEN
-!!$   TZFIELD = TFIELDMETADATA(   &
-!!$     CMNHNAME   = 'NEB',       &
-!!$     CSTDNAME   = '',          &
-!!$     CLONGNAME  = 'NEB',       &
-!!$     CUNITS     = '1',         &
-!!$     CDIR       = 'XY',        &
-!!$     CCOMMENT   = 'X_Y_Z_NEB', &
-!!$     NGRID      = 1,           &
-!!$     NTYPE      = TYPEREAL,    &
-!!$     NDIMS      = 3,           &
-!!$     LTIMEDEP   = .TRUE.       )
-!!$   CALL IO_Field_write(TPFILE,TZFIELD,PCLDFR)
-!!$END IF
-!
-!
-!*       6.  SAVE CHANGES IN PRS AND PSVS
-!            ----------------------------
-!
-! Prepare 3D water mixing ratios
-PRS(:,:,:,1) = PRVS(:,:,:)
-IF ( KRR .GE. 2 ) PRS(:,:,:,2) = PRCS(:,:,:)
-IF ( KRR .GE. 3 ) PRS(:,:,:,3) = PRRS(:,:,:)
-IF ( KRR .GE. 4 ) PRS(:,:,:,4) = PRIS(:,:,:)
-IF ( KRR .GE. 5 ) PRS(:,:,:,5) = PRSS(:,:,:)
-IF ( KRR .GE. 6 ) PRS(:,:,:,6) = PRGS(:,:,:)
-IF ( KRR .GE. 7 ) PRS(:,:,:,7) = PRHS(:,:,:)
-!
-! Prepare 3D number concentrations
-!
-IF ( NMOM_C.GE.2 ) PSVS(:,:,:,ISV_LIMA_NC) = PCCS(:,:,:)
-! IF ( NMOM_I.GE.2 ) PSVS(:,:,:,ISV_LIMA_NI) = PCIS(:,:,:)
-!
-IF ( LSCAV .AND. LAERO_MASS ) PSVS(:,:,:,ISV_LIMA_SCAVMASS) = PMAS(:,:,:)
-! 
-IF ( NMOM_C.GE.1 .AND. NMOD_CCN.GE.1 ) THEN
-   PSVS(:,:,:,ISV_LIMA_CCN_FREE:ISV_LIMA_CCN_FREE+NMOD_CCN-1) = PNFS(:,:,:,:)
-   PSVS(:,:,:,ISV_LIMA_CCN_ACTI:ISV_LIMA_CCN_ACTI+NMOD_CCN-1) = PNAS(:,:,:,:)
-END IF
-!
-! IF ( NMOM_I.GE.1 .AND. NMOD_IFN .GE. 1 ) THEN
-!    PSVS(:,:,:,ISV_LIMA_IFN_FREE:ISV_LIMA_IFN_FREE+NMOD_IFN-1) = PIFS(:,:,:,:)
-!    PSVS(:,:,:,ISV_LIMA_IFN_NUCL:ISV_LIMA_IFN_NUCL+NMOD_IFN-1) = PINS(:,:,:,:)
-! END IF
-!
-! IF ( NMOM_I.GE.1 .AND. NMOD_IMM .GE. 1 ) THEN
-!    PSVS(:,:,:,ISV_LIMA_IMM_NUCL:ISV_LIMA_IMM_NUCL+NMOD_IMM-1) = PNIS(:,:,:,:)
-! END IF
-!
-! write SSI in LFI
-!
-!!$IF ( tpfile%lopened ) THEN
-!!$   ZT(:,:,:) = ( PTHS(:,:,:) * ZDT ) * ZEXNS(:,:,:)
-!!$   ZW(:,:,:) = EXP( XALPI - XBETAI/ZT(:,:,:) - XGAMI*ALOG(ZT(:,:,:) ) )
-!!$   ZW1(:,:,:)= PPABSTT(:,:,:)
-!!$   ZW(:,:,:) = PRVT(:,:,:)*( ZW1(:,:,:)-ZW(:,:,:) ) / ( (XMV/XMD) * ZW(:,:,:) ) - 1.0
-!!$   
-!!$   TZFIELD = TFIELDMETADATA(   &
-!!$     CMNHNAME   = 'SSI',       &
-!!$     CSTDNAME   = '',          &
-!!$     CLONGNAME  = 'SSI',       &
-!!$     CUNITS     = '',          &
-!!$     CDIR       = 'XY',        &
-!!$     CCOMMENT   = 'X_Y_Z_SSI', &
-!!$     NGRID      = 1,           &
-!!$     NTYPE      = TYPEREAL,    &
-!!$     NDIMS      = 3,           &
-!!$     LTIMEDEP   = .TRUE.       )
-!!$   CALL IO_Field_write(TPFILE,TZFIELD,ZW)
-!!$END IF
-!
-!
-!*       7.  STORE THE BUDGET TERMS
-!            ----------------------
-!
-if ( nbumod == kmi .and. BUCONF%lbu_enable ) then
-  if ( BUCONF%lbudget_th ) call BUDGET_STORE_END_PHY(D, TBUDGETS(NBUDGET_TH), 'CEDS', pths(:, :, :) * prhodj(:, :, :) )
-  if ( BUCONF%lbudget_rv ) call BUDGET_STORE_END_PHY(D, TBUDGETS(NBUDGET_RV), 'CEDS', prvs(:, :, :) * prhodj(:, :, :) )
-  if ( BUCONF%lbudget_rc ) call BUDGET_STORE_END_PHY(D, TBUDGETS(NBUDGET_RC), 'CEDS', prcs(:, :, :) * prhodj(:, :, :) )
-  if ( BUCONF%lbudget_ri ) call BUDGET_STORE_END_PHY(D, TBUDGETS(NBUDGET_RI), 'CEDS', pris(:, :, :) * prhodj(:, :, :) )
-  if ( BUCONF%lbudget_sv ) then
-    if ( nmom_c.ge.2) &
-      call BUDGET_STORE_END_PHY(D, TBUDGETS(NBUDGET_SV1 - 1 + nsv_lima_nc), 'CEDS', pccs(:, :, :) * prhodj(:, :, :) )
-    if ( lscav .and. laero_mass ) &
-      call BUDGET_STORE_END_PHY(D, TBUDGETS(NBUDGET_SV1 - 1 + nsv_lima_scavmass), 'CEDS', pmas(:, :, :) * prhodj(:, :, :) )
-    if ( nmom_c.ge.1 ) then
-      do jl = 1, nmod_ccn
-        idx = NBUDGET_SV1 - 1 + nsv_lima_ccn_free - 1 + jl
-        call BUDGET_STORE_END_PHY(D, TBUDGETS(idx), 'CEDS', pnfs(:, :, :, jl) * prhodj(:, :, :) )
-        idx = NBUDGET_SV1 - 1 + nsv_lima_ccn_acti - 1 + jl
-        call BUDGET_STORE_END_PHY(D, TBUDGETS(idx), 'CEDS', pnas(:, :, :, jl) * prhodj(:, :, :) )
-      end do
-    end if
-!     if ( nmom_i.ge.2 ) then
-!       call BUDGET_STORE_END_PHY(D, TBUDGETS(NBUDGET_SV1 - 1 + nsv_lima_ni), 'CEDS', pcis(:, :, :) * prhodj(:, :, :) )
-!       do jl = 1, nmod_ifn
-!         idx = NBUDGET_SV1 - 1 + nsv_lima_ifn_free - 1 + jl
-!         call BUDGET_STORE_END_PHY(D, TBUDGETS(idx), 'CEDS', pifs(:, :, :, jl) * prhodj(:, :, :) )
-!         idx = NBUDGET_SV1 - 1 + nsv_lima_ifn_nucl - 1 + jl
-!         call BUDGET_STORE_END_PHY(D, TBUDGETS(idx), 'CEDS', pins(:, :, :, jl) * prhodj(:, :, :) )
-!       end do
-!       do jl = 1, nmod_imm
-!         idx = NBUDGET_SV1 - 1 + nsv_lima_imm_nucl - 1 + jl
-!         call BUDGET_STORE_INIT_PHY(D, TBUDGETS(idx), 'CEDS', pnis(:, :, :, jl) * prhodj(:, :, :) )
-!       end do
-!     end if
+  !
+  ! budgets
+  if ( nbumod == kmi .and. BUCONF%lbu_enable ) then
+     if ( BUCONF%lbudget_th ) call BUDGET_STORE_END_PHY(D, TBUDGETS(NBUDGET_TH), 'CEDS', pths(:, :, :) * prhodj(:, :, :) )
+     if ( BUCONF%lbudget_rv ) call BUDGET_STORE_END_PHY(D, TBUDGETS(NBUDGET_RV), 'CEDS', prvs(:, :, :) * prhodj(:, :, :) )
+     if ( BUCONF%lbudget_rc ) call BUDGET_STORE_END_PHY(D, TBUDGETS(NBUDGET_RC), 'CEDS', prcs(:, :, :) * prhodj(:, :, :) )
+     if ( BUCONF%lbudget_ri ) call BUDGET_STORE_END_PHY(D, TBUDGETS(NBUDGET_RI), 'CEDS', pris(:, :, :) * prhodj(:, :, :) )
+     if ( BUCONF%lbudget_sv ) then
+        if ( nmom_c.ge.2) &
+             call BUDGET_STORE_END_PHY(D, TBUDGETS(NBUDGET_SV1 - 1 + nsv_lima_nc), 'CEDS', pccs(:, :, :) * prhodj(:, :, :) )
+        if ( lscav .and. laero_mass ) &
+             call BUDGET_STORE_END_PHY(D, TBUDGETS(NBUDGET_SV1 - 1 + nsv_lima_scavmass), 'CEDS', pmas(:, :, :) * prhodj(:, :, :) )
+        if ( nmom_c.ge.1 ) then
+           do jl = 1, nmod_ccn
+              idx = NBUDGET_SV1 - 1 + nsv_lima_ccn_free - 1 + jl
+              call BUDGET_STORE_END_PHY(D, TBUDGETS(idx), 'CEDS', pnfs(:, :, :, jl) * prhodj(:, :, :) )
+              idx = NBUDGET_SV1 - 1 + nsv_lima_ccn_acti - 1 + jl
+              call BUDGET_STORE_END_PHY(D, TBUDGETS(idx), 'CEDS', pnas(:, :, :, jl) * prhodj(:, :, :) )
+           end do
+        end if
+     end if
   end if
-end if
-!++cb++
-DEALLOCATE(ZRTMIN)
-DEALLOCATE(ZCTMIN)
-IF (ALLOCATED(PNFS)) DEALLOCATE(PNFS)
-IF (ALLOCATED(PNAS)) DEALLOCATE(PNAS)
-IF (ALLOCATED(PNFT)) DEALLOCATE(PNFT)
-IF (ALLOCATED(PNAT)) DEALLOCATE(PNAT)
-! IF (ALLOCATED(PIFS)) DEALLOCATE(PIFS)
-! IF (ALLOCATED(PINS)) DEALLOCATE(PINS)
-! IF (ALLOCATED(PNIS)) DEALLOCATE(PNIS)
-!--cb--
-!
-!------------------------------------------------------------------------------
-!
+  !
+  DEALLOCATE(ZRTMIN)
+  DEALLOCATE(ZCTMIN)
+  IF (ALLOCATED(PNFS)) DEALLOCATE(PNFS)
+  IF (ALLOCATED(PNAS)) DEALLOCATE(PNAS)
+  IF (ALLOCATED(PNFT)) DEALLOCATE(PNFT)
+  IF (ALLOCATED(PNAT)) DEALLOCATE(PNAT)
+  !
+  !------------------------------------------------------------------------------
+  !
 END SUBROUTINE LIMA_ADJUST_SPLIT