From b9be1b4e19c1f571498f302d6e07f27eb4e47e7d Mon Sep 17 00:00:00 2001
From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr>
Date: Wed, 27 Feb 2019 14:54:11 +0100
Subject: [PATCH] Philippe 27/02/2019: minor: force only in module uses +
 improve readability

---
 src/MNH/rain_ice.f90                     | 261 +++++++++++------------
 src/MNH/rain_ice_fast_rg.f90             |  30 +--
 src/MNH/rain_ice_fast_rh.f90             |  32 +--
 src/MNH/rain_ice_fast_ri.f90             |  11 +-
 src/MNH/rain_ice_fast_rs.f90             |  33 +--
 src/MNH/rain_ice_nucleation.f90          |  73 +++----
 src/MNH/rain_ice_sedimentation_split.f90 | 190 +++++++++--------
 src/MNH/rain_ice_sedimentation_stat.f90  |  35 +--
 src/MNH/rain_ice_slow.f90                |  13 +-
 src/MNH/rain_ice_warm.f90                |  12 +-
 10 files changed, 350 insertions(+), 340 deletions(-)

diff --git a/src/MNH/rain_ice.f90 b/src/MNH/rain_ice.f90
index 652541015..51f318aa2 100644
--- a/src/MNH/rain_ice.f90
+++ b/src/MNH/rain_ice.f90
@@ -60,21 +60,20 @@ REAL, DIMENSION(:,:,:),   INTENT(INOUT) :: PRRS    ! Rain water m.r. source
 REAL, DIMENSION(:,:,:),   INTENT(INOUT) :: PRIS    ! Pristine ice m.r. source
 REAL, DIMENSION(:,:,:),   INTENT(INOUT) :: PRSS    ! Snow/aggregate m.r. source
 REAL, DIMENSION(:,:,:),   INTENT(INOUT) :: PRGS    ! Graupel m.r. source
-
 !
-REAL, DIMENSION(:,:), INTENT(INOUT)     :: PINPRC! Cloud instant precip
-REAL, DIMENSION(:,:), INTENT(INOUT)     :: PINDEP  ! Cloud instant deposition
-REAL, DIMENSION(:,:), INTENT(INOUT)     :: PINPRR! Rain instant precip
-REAL, DIMENSION(:,:,:),INTENT(OUT)      :: PINPRR3D! Rain inst precip 3D
-REAL, DIMENSION(:,:,:), INTENT(INOUT)   :: PEVAP3D! Rain evap profile
-REAL, DIMENSION(:,:), INTENT(INOUT)     :: PINPRS! Snow instant precip
-REAL, DIMENSION(:,:), INTENT(INOUT)     :: PINPRG! Graupel instant precip
-REAL, DIMENSION(:,:,:), INTENT(OUT)     :: PRAINFR! Rain fraction
-REAL, DIMENSION(:,:), OPTIONAL, INTENT(IN) :: PSEA ! Sea Mask
-REAL, DIMENSION(:,:), OPTIONAL, INTENT(IN) :: PTOWN! Fraction that is town 
-REAL, DIMENSION(:,:,:), OPTIONAL,  INTENT(IN)    :: PRHT    ! Hail m.r. at t
-REAL, DIMENSION(:,:,:), OPTIONAL,  INTENT(INOUT) :: PRHS    ! Hail m.r. source
-REAL, DIMENSION(:,:), OPTIONAL, INTENT(INOUT)     :: PINPRH! Hail instant precip
+REAL, DIMENSION(:,:),     INTENT(INOUT) :: PINPRC! Cloud instant precip
+REAL, DIMENSION(:,:),     INTENT(INOUT) :: PINDEP  ! Cloud instant deposition
+REAL, DIMENSION(:,:),     INTENT(INOUT) :: PINPRR! Rain instant precip
+REAL, DIMENSION(:,:,:),   INTENT(OUT)   :: PINPRR3D! Rain inst precip 3D
+REAL, DIMENSION(:,:,:),   INTENT(INOUT) :: PEVAP3D! Rain evap profile
+REAL, DIMENSION(:,:),     INTENT(INOUT) :: PINPRS! Snow instant precip
+REAL, DIMENSION(:,:),     INTENT(INOUT) :: PINPRG! Graupel instant precip
+REAL, DIMENSION(:,:,:),   INTENT(OUT)   :: PRAINFR! Rain fraction
+REAL, DIMENSION(:,:),     OPTIONAL, INTENT(IN)    :: PSEA ! Sea Mask
+REAL, DIMENSION(:,:),     OPTIONAL, INTENT(IN)    :: PTOWN! Fraction that is town
+REAL, DIMENSION(:,:,:),   OPTIONAL, INTENT(IN)    :: PRHT    ! Hail m.r. at t
+REAL, DIMENSION(:,:,:),   OPTIONAL, INTENT(INOUT) :: PRHS    ! Hail m.r. source
+REAL, DIMENSION(:,:),     OPTIONAL, INTENT(INOUT) :: PINPRH! Hail instant precip
 REAL, DIMENSION(:,:,:,:), OPTIONAL, INTENT(OUT)   :: PFPR ! upper-air precipitation fluxes
 !
 END SUBROUTINE RAIN_ICE
@@ -245,33 +244,32 @@ END MODULE MODI_RAIN_ICE
 !*       0.    DECLARATIONS
 !              ------------
 !
-USE MODD_PARAMETERS
-USE MODD_CST
-USE MODD_CONF
-USE MODD_RAIN_ICE_DESCR
-USE MODD_RAIN_ICE_PARAM
-USE MODD_PARAM_ICE
-USE MODD_BUDGET
-USE MODD_LES
-USE MODI_BUDGET
-USE MODI_GAMMA
-USE MODE_FMWRIT
-USE MODE_ll
-USE MODE_MSG
-USE MODE_RAIN_ICE_FAST_RG,             only: RAIN_ICE_FAST_RG
-USE MODE_RAIN_ICE_FAST_RH,             only: RAIN_ICE_FAST_RH
-USE MODE_RAIN_ICE_FAST_RI,             only: RAIN_ICE_FAST_RI
-USE MODE_RAIN_ICE_FAST_RS,             only: RAIN_ICE_FAST_RS
-USE MODE_RAIN_ICE_NUCLEATION,          only: RAIN_ICE_NUCLEATION
-USE MODE_RAIN_ICE_SEDIMENTATION_SPLIT, only: RAIN_ICE_SEDIMENTATION_SPLIT
-USE MODE_RAIN_ICE_SEDIMENTATION_STAT,  only: RAIN_ICE_SEDIMENTATION_STAT
-USE MODE_RAIN_ICE_SLOW,                only: RAIN_ICE_SLOW
-USE MODE_RAIN_ICE_WARM,                only: RAIN_ICE_WARM
+use MODD_BUDGET,         only: LBU_ENABLE, LBUDGET_RC, LBUDGET_RG, LBUDGET_RH, LBUDGET_RI, &
+                               LBUDGET_RR, LBUDGET_RS, LBUDGET_RV, LBUDGET_TH
+use MODD_CST,            only: XCI, XCL, XCPD, XCPV, XLSTT, XLVTT, XTT
+use MODD_CST,            only: XALPI, XBETAI, XGAMI, XMD, XMV, XTT
+use MODD_LES,            only: LLES_CALL
+use MODD_PARAMETERS,     only: JPVEXT
+use MODD_PARAM_ICE,      only: CSUBG_PR_PDF, LDEPOSC
+use MODD_RAIN_ICE_DESCR, only: XLBEXR, XLBR, XRTMIN
+use MODD_RAIN_ICE_PARAM, only: XCRIAUTC
+!
+use MODE_MSG
+use MODE_RAIN_ICE_FAST_RG,             only: RAIN_ICE_FAST_RG
+use MODE_RAIN_ICE_FAST_RH,             only: RAIN_ICE_FAST_RH
+use MODE_RAIN_ICE_FAST_RI,             only: RAIN_ICE_FAST_RI
+use MODE_RAIN_ICE_FAST_RS,             only: RAIN_ICE_FAST_RS
+use MODE_RAIN_ICE_NUCLEATION,          only: RAIN_ICE_NUCLEATION
+use MODE_RAIN_ICE_SEDIMENTATION_SPLIT, only: RAIN_ICE_SEDIMENTATION_SPLIT
+use MODE_RAIN_ICE_SEDIMENTATION_STAT,  only: RAIN_ICE_SEDIMENTATION_STAT
+use MODE_RAIN_ICE_SLOW,                only: RAIN_ICE_SLOW
+use MODE_RAIN_ICE_WARM,                only: RAIN_ICE_WARM
 !
 #ifdef MNH_PGI
 USE MODE_PACK_PGI
 #endif
 !
+use MODI_BUDGET
 USE MODI_ICE4_RAINFR_VERT
 !
 IMPLICIT NONE
@@ -282,7 +280,7 @@ IMPLICIT NONE
 !
 LOGICAL,                  INTENT(IN)    :: OSEDIC ! Switch for droplet sedim.
 CHARACTER(LEN=4),         INTENT(IN)    :: HSEDIM ! Sedimentation scheme
-CHARACTER(LEN=4),         INTENT(IN)    :: HSUBG_AUCV
+CHARACTER(LEN=4),         INTENT(IN)    :: HSUBG_AUCV ! Switch for rc->rr Subgrid autoconversion
                                         ! Kind of Subgrid autoconversion method
 LOGICAL,                  INTENT(IN)    :: OWARM   ! .TRUE. allows raindrops to
                                                    !   form by warm processes
@@ -297,14 +295,14 @@ REAL,                     INTENT(IN)    :: PTSTEP  ! Double Time step
                                                    ! (single if cold start)
 INTEGER,                  INTENT(IN)    :: KRR     ! Number of moist variable
 !
-REAL, DIMENSION(:,:,:),   INTENT(IN)    :: PDZZ    ! Layer thikness (m)
+REAL, DIMENSION(:,:,:),   INTENT(IN)    :: PDZZ     ! Layer thikness (m)
 REAL, DIMENSION(:,:,:),   INTENT(IN)    :: PRHODJ  ! Dry density * Jacobian
 REAL, DIMENSION(:,:,:),   INTENT(IN)    :: PRHODREF! Reference density
 REAL, DIMENSION(:,:,:),   INTENT(IN)    :: PEXNREF ! Reference Exner function
 REAL, DIMENSION(:,:,:),   INTENT(IN)    :: PPABST  ! absolute pressure at t
 !
 REAL, DIMENSION(:,:,:),   INTENT(INOUT) :: PCIT    ! Pristine ice n.c. at t
-REAL, DIMENSION(:,:,:),     INTENT(IN)  :: PCLDFR! Convective Mass Flux Cloud fraction
+REAL, DIMENSION(:,:,:),   INTENT(IN)    :: PCLDFR  ! Cloud fraction
 !
 REAL, DIMENSION(:,:,:),   INTENT(IN)    :: PTHT    ! Theta at time t
 REAL, DIMENSION(:,:,:),   INTENT(IN)    :: PRVT    ! Water vapor m.r. at t
@@ -313,6 +311,7 @@ REAL, DIMENSION(:,:,:),   INTENT(IN)    :: PRRT    ! Rain water m.r. at t
 REAL, DIMENSION(:,:,:),   INTENT(IN)    :: PRIT    ! Pristine ice m.r. at t
 REAL, DIMENSION(:,:,:),   INTENT(IN)    :: PRST    ! Snow/aggregate m.r. at t
 REAL, DIMENSION(:,:,:),   INTENT(IN)    :: PRGT    ! Graupel/hail m.r. at t
+!
 REAL, DIMENSION(:,:,:),   INTENT(IN)    :: PSIGS   ! Sigma_s at t
 !
 REAL, DIMENSION(:,:,:),   INTENT(INOUT) :: PTHS    ! Theta source
@@ -323,105 +322,101 @@ REAL, DIMENSION(:,:,:),   INTENT(INOUT) :: PRIS    ! Pristine ice m.r. source
 REAL, DIMENSION(:,:,:),   INTENT(INOUT) :: PRSS    ! Snow/aggregate m.r. source
 REAL, DIMENSION(:,:,:),   INTENT(INOUT) :: PRGS    ! Graupel m.r. source
 !
-REAL, DIMENSION(:,:), INTENT(INOUT)     :: PINPRC! Cloud instant precip
-REAL, DIMENSION(:,:), INTENT(INOUT)     :: PINDEP  ! Cloud instant deposition
-REAL, DIMENSION(:,:), INTENT(INOUT)     :: PINPRR! Rain instant precip
-REAL, DIMENSION(:,:,:),INTENT(OUT)      :: PINPRR3D! Rain inst precip 3D
-REAL, DIMENSION(:,:,:), INTENT(INOUT)   :: PEVAP3D! Rain evap profile
-REAL, DIMENSION(:,:), INTENT(INOUT)     :: PINPRS! Snow instant precip
-REAL, DIMENSION(:,:), INTENT(INOUT)     :: PINPRG! Graupel instant precip
-REAL, DIMENSION(:,:,:), INTENT(OUT)     :: PRAINFR! Rain fraction            
-REAL, DIMENSION(:,:), OPTIONAL, INTENT(IN) :: PSEA ! Sea Mask
-REAL, DIMENSION(:,:), OPTIONAL, INTENT(IN) :: PTOWN! Fraction that is town
-REAL, DIMENSION(:,:,:), OPTIONAL,  INTENT(IN)    :: PRHT    ! Hail m.r. at t
-REAL, DIMENSION(:,:,:), OPTIONAL,  INTENT(INOUT) :: PRHS    ! Hail m.r. source
-REAL, DIMENSION(:,:), OPTIONAL, INTENT(INOUT)     :: PINPRH! Hail instant precip
+REAL, DIMENSION(:,:),     INTENT(INOUT) :: PINPRC! Cloud instant precip
+REAL, DIMENSION(:,:),     INTENT(INOUT) :: PINDEP  ! Cloud instant deposition
+REAL, DIMENSION(:,:),     INTENT(INOUT) :: PINPRR! Rain instant precip
+REAL, DIMENSION(:,:,:),   INTENT(OUT)   :: PINPRR3D! Rain inst precip 3D
+REAL, DIMENSION(:,:,:),   INTENT(INOUT) :: PEVAP3D! Rain evap profile
+REAL, DIMENSION(:,:),     INTENT(INOUT) :: PINPRS! Snow instant precip
+REAL, DIMENSION(:,:),     INTENT(INOUT) :: PINPRG! Graupel instant precip
+REAL, DIMENSION(:,:,:),   INTENT(OUT)   :: PRAINFR! Rain fraction
+REAL, DIMENSION(:,:),     OPTIONAL, INTENT(IN)    :: PSEA ! Sea Mask
+REAL, DIMENSION(:,:),     OPTIONAL, INTENT(IN)    :: PTOWN! Fraction that is town
+REAL, DIMENSION(:,:,:),   OPTIONAL, INTENT(IN)    :: PRHT    ! Hail m.r. at t
+REAL, DIMENSION(:,:,:),   OPTIONAL, INTENT(INOUT) :: PRHS    ! Hail m.r. source
+REAL, DIMENSION(:,:),     OPTIONAL, INTENT(INOUT) :: PINPRH! Hail instant precip
 REAL, DIMENSION(:,:,:,:), OPTIONAL, INTENT(OUT)   :: PFPR ! upper-air precipitation fluxes
 !
 !*       0.2   Declarations of local variables :
 !
-INTEGER :: IIB           !  Define the domain where is
-INTEGER :: IIE           !  the microphysical sources have to be computed
-INTEGER :: IIT           !
-INTEGER :: IJB           !
-INTEGER :: IJE           !
-INTEGER :: IJT           !
-INTEGER :: IKB,IKTB,IKT  !
-INTEGER :: IKE,IKTE      !
-!
-!
-!
-INTEGER :: IMICRO
+INTEGER                           :: IIB           !  Define the domain where is
+INTEGER                           :: IIE           !  the microphysical sources have to be computed
+INTEGER                           :: IIT           !
+INTEGER                           :: IJB           !
+INTEGER                           :: IJE           !
+INTEGER                           :: IJT           !
+INTEGER                           :: IKB,IKTB,IKT  !
+INTEGER                           :: IKE,IKTE      !
+!
+INTEGER                           :: IMICRO
+INTEGER, DIMENSION(SIZE(PEXNREF)) :: I1,I2,I3 ! Used to replace the COUNT
+INTEGER                           :: JL       ! and PACK intrinsics
 LOGICAL, DIMENSION(SIZE(PEXNREF,1),SIZE(PEXNREF,2),SIZE(PEXNREF,3)) &
-                     :: GMICRO ! Test where to compute all processes
-REAL,    DIMENSION(SIZE(PEXNREF,1),SIZE(PEXNREF,2),SIZE(PEXNREF,3))   &
+                                  :: GMICRO ! Test where to compute all processes
+REAL                              :: ZINVTSTEP
+REAL                              :: ZCOEFFRCM
+REAL, DIMENSION(:), ALLOCATABLE   :: ZRVT    ! Water vapor m.r. at t
+REAL, DIMENSION(:), ALLOCATABLE   :: ZRCT    ! Cloud water m.r. at t
+REAL, DIMENSION(:), ALLOCATABLE   :: ZRRT    ! Rain water m.r. at t
+REAL, DIMENSION(:), ALLOCATABLE   :: ZRIT    ! Pristine ice m.r. at t
+REAL, DIMENSION(:), ALLOCATABLE   :: ZRST    ! Snow/aggregate m.r. at t
+REAL, DIMENSION(:), ALLOCATABLE   :: ZRGT    ! Graupel m.r. at t
+REAL, DIMENSION(:), ALLOCATABLE   :: ZRHT    ! Hail m.r. at t
+REAL, DIMENSION(:), ALLOCATABLE   :: ZCIT    ! Pristine ice conc. at t
+!
+REAL, DIMENSION(:), ALLOCATABLE   :: ZRVS    ! Water vapor m.r. source
+REAL, DIMENSION(:), ALLOCATABLE   :: ZRCS    ! Cloud water m.r. source
+REAL, DIMENSION(:), ALLOCATABLE   :: ZRRS    ! Rain water m.r. source
+REAL, DIMENSION(:), ALLOCATABLE   :: ZRIS    ! Pristine ice m.r. source
+REAL, DIMENSION(:), ALLOCATABLE   :: ZRSS    ! Snow/aggregate m.r. source
+REAL, DIMENSION(:), ALLOCATABLE   :: ZRGS    ! Graupel m.r. source
+REAL, DIMENSION(:), ALLOCATABLE   :: ZRHS    ! Hail m.r. source
+REAL, DIMENSION(:), ALLOCATABLE   :: ZTHS    ! Theta source
+REAL, DIMENSION(:), ALLOCATABLE   :: ZTHT    ! Potential temperature
+REAL, DIMENSION(:), ALLOCATABLE   :: ZTHLT   ! Liquid potential temperature
+!
+REAL, DIMENSION(:), ALLOCATABLE   :: ZRHODREF, &      ! RHO Dry REFerence
+                                     ZRHODJ,   &      ! RHO times Jacobian
+                                     ZZT,      &      ! Temperature
+                                     ZPRES,    &      ! Pressure
+                                     ZEXNREF,  &      ! EXNer Pressure REFerence
+                                     ZZW,      &      ! Work array
+                                     ZLSFACT,  &      ! L_s/(Pi_ref*C_ph)
+                                     ZLVFACT,  &      ! L_v/(Pi_ref*C_ph)
+                                     ZUSW,     &      ! Undersaturation over water
+                                     ZSSI,     &      ! Supersaturation over ice
+                                     ZLBDAR,   &      ! Slope parameter of the raindrop  distribution
+                                     ZLBDAR_RF,&      ! Slope parameter of the raindrop  distribution
+                                                      ! for the Rain Fraction part
+                                     ZLBDAS,   &      ! Slope parameter of the aggregate distribution
+                                     ZLBDAG,   &      ! Slope parameter of the graupel   distribution
+                                     ZLBDAH,   &      ! Slope parameter of the hail      distribution
+                                     ZRDRYG,   &      ! Dry growth rate of the graupeln
+                                     ZRWETG,   &      ! Wet growth rate of the graupeln
+                                     ZAI,      &      ! Thermodynamical function
+                                     ZCJ,      &      ! Function to compute the ventilation coefficient
+                                     ZKA,      &      ! Thermal conductivity of the air
+                                     ZDV,      &      ! Diffusivity of water vapor in the air
+                                     ZSIGMA_RC,&      ! Standard deviation of rc at time t
+                                     ZCF,      &      ! Cloud fraction
+                                     ZRF,      &      ! Rain fraction
+                                     ZHLC_HCF, &      ! HLCLOUDS : fraction of High Cloud Fraction in grid
+                                     ZHLC_LCF, &      ! HLCLOUDS : fraction of Low  Cloud Fraction in grid
+                                                      !    note that ZCF = ZHLC_HCF + ZHLC_LCF
+                                     ZHLC_HRC, &      ! HLCLOUDS : LWC that is High LWC in grid
+                                     ZHLC_LRC, &      ! HLCLOUDS : LWC that is Low  LWC in grid
+                                                      !    note that ZRC = ZHLC_HRC + ZHLC_LRC
+                                     ZHLC_RCMAX, &    ! HLCLOUDS : maximum value for RC in distribution
+                                     ZRCRAUTC, &      ! RC value to begin rain formation =XCRIAUTC/RHODREF
+                                     ZHLC_HRCLOCAL, & ! HLCLOUDS : LWC that is High LWC local in HCF
+                                     ZHLC_LRCLOCAL    ! HLCLOUDS : LWC that is Low  LWC local in LCF
+                                                      !    note that ZRC/CF = ZHLC_HRCLOCAL+ ZHLC_LRCLOCAL
+                                                      !                     = ZHLC_HRC/HCF+ ZHLC_LRC/LCF
+REAL, DIMENSION(:,:), ALLOCATABLE :: ZZW1 ! Work arrays
+REAL, DIMENSION(SIZE(PEXNREF,1),SIZE(PEXNREF,2),SIZE(PEXNREF,3))   &
                                   :: ZW ! work array
-REAL,    DIMENSION(SIZE(PEXNREF,1),SIZE(PEXNREF,2),SIZE(PEXNREF,3))   &
+REAL, DIMENSION(SIZE(PEXNREF,1),SIZE(PEXNREF,2),SIZE(PEXNREF,3))   &
                                   :: ZT ! Temperature
-REAL, DIMENSION(:), ALLOCATABLE :: ZRVT    ! Water vapor m.r. at t
-REAL, DIMENSION(:), ALLOCATABLE :: ZRCT    ! Cloud water m.r. at t
-REAL, DIMENSION(:), ALLOCATABLE :: ZRRT    ! Rain water m.r. at t
-REAL, DIMENSION(:), ALLOCATABLE :: ZRIT    ! Pristine ice m.r. at t
-REAL, DIMENSION(:), ALLOCATABLE :: ZRST    ! Snow/aggregate m.r. at t
-REAL, DIMENSION(:), ALLOCATABLE :: ZRGT    ! Graupel m.r. at t
-REAL, DIMENSION(:), ALLOCATABLE :: ZRHT    ! Hail m.r. at t
-REAL, DIMENSION(:), ALLOCATABLE :: ZCIT    ! Pristine ice conc. at t
-!
-REAL, DIMENSION(:), ALLOCATABLE :: ZRVS    ! Water vapor m.r. source
-REAL, DIMENSION(:), ALLOCATABLE :: ZRCS    ! Cloud water m.r. source
-REAL, DIMENSION(:), ALLOCATABLE :: ZRRS    ! Rain water m.r. source
-REAL, DIMENSION(:), ALLOCATABLE :: ZRIS    ! Pristine ice m.r. source
-REAL, DIMENSION(:), ALLOCATABLE :: ZRSS    ! Snow/aggregate m.r. source
-REAL, DIMENSION(:), ALLOCATABLE :: ZRGS    ! Graupel m.r. source
-REAL, DIMENSION(:), ALLOCATABLE :: ZRHS    ! Hail m.r. source
-REAL, DIMENSION(:), ALLOCATABLE :: ZTHS    ! Theta source
-REAL, DIMENSION(:), ALLOCATABLE :: ZTHT    ! Potential temperature
-REAL, DIMENSION(:), ALLOCATABLE :: ZTHLT   ! Liquid potential temperature
-!
-REAL, DIMENSION(:), ALLOCATABLE &
-               :: ZRHODREF, & ! RHO Dry REFerence
-                  ZRHODJ,   & ! RHO times Jacobian
-                  ZZT,      & ! Temperature
-                  ZPRES,    & ! Pressure
-                  ZEXNREF,  & ! EXNer Pressure REFerence
-                  ZZW,      & ! Work array
-                  ZLSFACT,  & ! L_s/(Pi_ref*C_ph)
-                  ZLVFACT,  & ! L_v/(Pi_ref*C_ph)
-                  ZUSW,     & ! Undersaturation over water
-                  ZSSI,     & ! Supersaturation over ice
-                  ZLBDAR,   & ! Slope parameter of the raindrop  distribution
-                  ZLBDAR_RF,& ! Slope parameter of the raindrop  distribution
-                                 ! for the Rain Fraction part
-                  ZLBDAS,   & ! Slope parameter of the aggregate distribution
-                  ZLBDAG,   & ! Slope parameter of the graupel   distribution
-                  ZLBDAH,   & ! Slope parameter of the hail      distribution
-                  ZRDRYG,   & ! Dry growth rate of the graupeln
-                  ZRWETG,   & ! Wet growth rate of the graupeln
-                  ZAI,      & ! Thermodynamical function
-                  ZCJ,      & ! Function to compute the ventilation coefficient
-                  ZKA,      & ! Thermal conductivity of the air
-                  ZDV,      & ! Diffusivity of water vapor in the air
-                  ZSIGMA_RC,& ! Standard deviation of rc at time t
-                  ZCF,      & ! Cloud fraction
-                  ZRF,      & ! Rain fraction
-                  ZHLC_HCF, & ! HLCLOUDS : fraction of High Cloud Fraction in grid
-                  ZHLC_LCF, & ! HLCLOUDS : fraction of Low  Cloud Fraction in grid
-                              !    note that ZCF = ZHLC_HCF + ZHLC_LCF
-                  ZHLC_HRC, & ! HLCLOUDS : LWC that is High LWC in grid
-                  ZHLC_LRC, & ! HLCLOUDS : LWC that is Low  LWC in grid
-                              !    note that ZRC = ZHLC_HRC + ZHLC_LRC
-                ZHLC_RCMAX, & ! HLCLOUDS : maximum value for RC in distribution
-                  ZRCRAUTC, & ! RC value to begin rain formation =XCRIAUTC/RHODREF
-             ZHLC_HRCLOCAL, & ! HLCLOUDS : LWC that is High LWC local in HCF
-             ZHLC_LRCLOCAL    ! HLCLOUDS : LWC that is Low  LWC local in LCF
-                              !    note that ZRC/CF = ZHLC_HRCLOCAL+ ZHLC_LRCLOCAL
-                              !                     = ZHLC_HRC/HCF+ ZHLC_LRC/LCF
-REAL, DIMENSION(:,:), ALLOCATABLE :: ZZW1 ! Work arrays
-REAL            :: ZINVTSTEP
-!
-INTEGER , DIMENSION(SIZE(GMICRO)) :: I1,I2,I3 ! Used to replace the COUNT
-INTEGER                           :: JL       ! and PACK intrinsics
-REAL :: ZCOEFFRCM
 !
 !-------------------------------------------------------------------------------
 !
@@ -444,13 +439,9 @@ ZINVTSTEP=1./PTSTEP
 !*       2.     COMPUTES THE SLOW COLD PROCESS SOURCES
 !               --------------------------------------
 !
-#ifdef RAIN_OLD
-CALL RAIN_ICE_NUCLEATION_OLD
-#else
 CALL RAIN_ICE_NUCLEATION(IIB, IIE, IJB, IJE, IKTB, IKTE,KRR,PTSTEP,&
      PTHT,PPABST,PRHODJ,PRHODREF,PRVT,PRCT,PRRT,PRIT,PRST,PRGT,&
      PCIT,PEXNREF,PTHS,PRVS,PRIS,ZT,PRHT)
-#endif
 !
 !
 !  optimization by looking for locations where
diff --git a/src/MNH/rain_ice_fast_rg.f90 b/src/MNH/rain_ice_fast_rg.f90
index b83d8f3b7..1829f8ca0 100644
--- a/src/MNH/rain_ice_fast_rg.f90
+++ b/src/MNH/rain_ice_fast_rg.f90
@@ -25,11 +25,15 @@ SUBROUTINE RAIN_ICE_FAST_RG(KRR, OMICRO, PRHODREF, PRVT, PRCT, PRRT, PRIT, PRST,
 !*      0. DECLARATIONS
 !          ------------
 !
-use MODD_BUDGET
-use MODD_CST
-use MODD_PARAM_ICE
-USE MODD_RAIN_ICE_DESCR
-USE MODD_RAIN_ICE_PARAM
+use MODD_BUDGET,         only: LBUDGET_RC, LBUDGET_RG, LBUDGET_RH, LBUDGET_RI, LBUDGET_RR, LBUDGET_RS, LBUDGET_TH
+use MODD_CST,            only: XCI, XCL, XCPV, XESTT, XLMTT, XLVTT, XMD, XMV, XRV, XTT
+use MODD_RAIN_ICE_DESCR, only: XBS, XCEXVT, XCXG, XCXS, XDG, XRTMIN
+use MODD_RAIN_ICE_PARAM, only: NDRYLBDAG, NDRYLBDAR, NDRYLBDAS, X0DEPG, X1DEPG, XCOLEXIG, XCOLEXSG, XCOLIG, XCOLSG, XDRYINTP1G, &
+                               XDRYINTP1R, XDRYINTP1S, XDRYINTP2G, XDRYINTP2R, XDRYINTP2S, XEX0DEPG, XEX1DEPG, XEXICFRR,        &
+                               XEXRCFRI, XFCDRYG, XFIDRYG, XFRDRYG, XFSDRYG, XICFRR, XKER_RDRYG, XKER_SDRYG, XLBRDRYG1,         &
+                               XLBRDRYG2, XLBRDRYG3, XLBSDRYG1, XLBSDRYG2, XLBSDRYG3, XRCFRI
+!
+use MODI_BUDGET
 !
 IMPLICIT NONE
 !
@@ -71,15 +75,13 @@ REAL,     DIMENSION(:),     intent(out)   :: PRWETG   ! Wet growth rate of the g
 !
 !*       0.2  declaration of local variables
 !
-INTEGER :: IGDRY
-INTEGER :: JJ
-LOGICAL, DIMENSION(size(PRHODREF)) :: GDRY ! Test where to compute dry growth
-INTEGER, DIMENSION(:), ALLOCATABLE :: IVEC1, IVEC2       ! Vectors of indices for
-                                ! interpolations
-REAL, DIMENSION(size(PRHODREF)) :: ZZW  ! Work array
-REAL,    DIMENSION(:), ALLOCATABLE :: ZVEC1,ZVEC2,ZVEC3 ! Work vectors for
-                                ! interpolations
-REAL,     DIMENSION(size(PRHODREF),7) :: ZZW1     ! Work arrays
+INTEGER                              :: IGDRY
+INTEGER                              :: JJ
+INTEGER, DIMENSION(:), ALLOCATABLE   :: IVEC1, IVEC2      ! Vectors of indices for interpolations
+LOGICAL, DIMENSION(size(PRHODREF))   :: GDRY              ! Test where to compute dry growth
+REAL,    DIMENSION(size(PRHODREF))   :: ZZW               ! Work array
+REAL,    DIMENSION(:), ALLOCATABLE   :: ZVEC1,ZVEC2,ZVEC3 ! Work vectors for interpolations
+REAL,    DIMENSION(size(PRHODREF),7) :: ZZW1              ! Work arrays
 !
 !-------------------------------------------------------------------------------
 !
diff --git a/src/MNH/rain_ice_fast_rh.f90 b/src/MNH/rain_ice_fast_rh.f90
index e45423c09..4691df965 100644
--- a/src/MNH/rain_ice_fast_rh.f90
+++ b/src/MNH/rain_ice_fast_rh.f90
@@ -23,11 +23,15 @@ SUBROUTINE RAIN_ICE_FAST_RH(OMICRO, PRHODREF, PRVT, PRCT, PRIT, PRST, PRGT, PRHT
 !*      0. DECLARATIONS
 !          ------------
 !
-use MODD_BUDGET
-use MODD_CST
-use MODD_PARAM_ICE
-USE MODD_RAIN_ICE_DESCR
-USE MODD_RAIN_ICE_PARAM
+use MODD_BUDGET,         only: LBUDGET_RC, LBUDGET_RG, LBUDGET_RH, LBUDGET_RI, LBUDGET_RR, LBUDGET_RS, LBUDGET_TH
+use MODD_CST,            only: XCI, XCL, XCPV, XESTT, XLMTT, XLVTT, XMD, XMV, XRV, XTT
+use MODD_RAIN_ICE_DESCR, only: XBG, XBS, XCEXVT, XCXG, XCXH, XCXS, XDH, XLBEXH, XLBH, XRTMIN
+use MODD_RAIN_ICE_PARAM, only: NWETLBDAG, NWETLBDAH, NWETLBDAS, X0DEPH, X1DEPH, &
+                               XEX0DEPH, XEX1DEPH, XFGWETH, XFSWETH, XFWETH, XKER_GWETH, XKER_SWETH, &
+                               XLBGWETH1, XLBGWETH2, XLBGWETH3, XLBSWETH1, XLBSWETH2, XLBSWETH3,     &
+                               XWETINTP1G, XWETINTP1H, XWETINTP1S, XWETINTP2G, XWETINTP2H, XWETINTP2S
+!
+use MODI_BUDGET
 !
 IMPLICIT NONE
 !
@@ -65,16 +69,14 @@ REAL,     DIMENSION(:),     intent(inout) :: PUSW     ! Undersaturation over wat
 !
 !*       0.2  declaration of local variables
 !
-INTEGER :: IHAIL, IGWET
-INTEGER :: JJ
-LOGICAL, DIMENSION(size(PRHODREF)) :: GWET  ! Test where to compute wet growth
-LOGICAL, DIMENSION(size(PRHODREF)) :: GHAIL ! Test where to compute hail growth
-INTEGER, DIMENSION(:), ALLOCATABLE :: IVEC1, IVEC2       ! Vectors of indices for
-                                ! interpolations
-REAL, DIMENSION(size(PRHODREF)) :: ZZW  ! Work array
-REAL,    DIMENSION(:), ALLOCATABLE :: ZVEC1,ZVEC2,ZVEC3 ! Work vectors for
-                                ! interpolations
-REAL,     DIMENSION(size(PRHODREF),6) :: ZZW1     ! Work arrays
+INTEGER                              :: IHAIL, IGWET
+INTEGER                              :: JJ
+INTEGER, DIMENSION(:), ALLOCATABLE   :: IVEC1, IVEC2      ! Vectors of indices for interpolations
+LOGICAL, DIMENSION(size(PRHODREF))   :: GWET              ! Test where to compute wet growth
+LOGICAL, DIMENSION(size(PRHODREF))   :: GHAIL             ! Test where to compute hail growth
+REAL,    DIMENSION(:), ALLOCATABLE   :: ZVEC1,ZVEC2,ZVEC3 ! Work vectors for interpolations
+REAL,    DIMENSION(size(PRHODREF))   :: ZZW               ! Work array
+REAL,    DIMENSION(size(PRHODREF),6) :: ZZW1              ! Work arrays
 !
 !-------------------------------------------------------------------------------
 !
diff --git a/src/MNH/rain_ice_fast_ri.f90 b/src/MNH/rain_ice_fast_ri.f90
index 90092fff9..2ed51c7ff 100644
--- a/src/MNH/rain_ice_fast_ri.f90
+++ b/src/MNH/rain_ice_fast_ri.f90
@@ -22,11 +22,12 @@ SUBROUTINE RAIN_ICE_FAST_RI(OMICRO, PRHODREF, PRIT, PRHODJ, PZT, PSSI, PLSFACT,
 !*      0. DECLARATIONS
 !          ------------
 !
-use MODD_BUDGET
-use MODD_CST
-use MODD_PARAM_ICE
-USE MODD_RAIN_ICE_DESCR
-USE MODD_RAIN_ICE_PARAM
+use MODD_BUDGET,         only: LBUDGET_RC, LBUDGET_RI, LBUDGET_TH
+use MODD_CST,            only: XTT
+use MODD_RAIN_ICE_DESCR, only: XDI, XLBEXI, XLBI, XRTMIN
+use MODD_RAIN_ICE_PARAM, only: X0DEPI, X2DEPI
+!
+use MODI_BUDGET
 !
 IMPLICIT NONE
 !
diff --git a/src/MNH/rain_ice_fast_rs.f90 b/src/MNH/rain_ice_fast_rs.f90
index ae822783d..3a3749cfa 100644
--- a/src/MNH/rain_ice_fast_rs.f90
+++ b/src/MNH/rain_ice_fast_rs.f90
@@ -23,11 +23,16 @@ SUBROUTINE RAIN_ICE_FAST_RS(PTSTEP, OMICRO, PRHODREF, PRVT, PRCT, PRRT, PRST, PR
 !*      0. DECLARATIONS
 !          ------------
 !
-use MODD_BUDGET
-use MODD_CST
-use MODD_PARAM_ICE
-USE MODD_RAIN_ICE_DESCR
-USE MODD_RAIN_ICE_PARAM
+use MODD_BUDGET,         only: LBUDGET_RC, LBUDGET_RG, LBUDGET_RR, LBUDGET_RS, LBUDGET_TH
+use MODD_CST,            only: XCL, XCPV, XESTT, XLMTT, XLVTT, XMD, XMV, XRV, XTT
+use MODD_RAIN_ICE_DESCR, only: XBS, XCEXVT, XCXS, XRTMIN
+use MODD_RAIN_ICE_PARAM, only: NACCLBDAR, NACCLBDAS, NGAMINC, X0DEPS, X1DEPS, XACCINTP1R, XACCINTP1S, XACCINTP2R, XACCINTP2S, &
+                               XCRIMSG, XCRIMSS, XEX0DEPS, XEX1DEPS, XEXCRIMSG, XEXCRIMSS, XEXSRIMCG, XFRACCSS,               &
+                               XFSACCRG, XFSCVMG, XGAMINC_RIM1, XGAMINC_RIM1, XGAMINC_RIM2, XKER_RACCS,                       &
+                               XKER_RACCSS, XKER_SACCRG, XLBRACCS1, XLBRACCS2, XLBRACCS3, XLBSACCR1, XLBSACCR2, XLBSACCR3,    &
+                               XRIMINTP1, XRIMINTP2, XSRIMCG
+!
+use MODI_BUDGET
 !
 IMPLICIT NONE
 !
@@ -61,16 +66,14 @@ REAL,     DIMENSION(:),     INTENT(INOUT) :: PTHS     ! Theta source
 !
 !*       0.2  declaration of local variables
 !
-INTEGER :: IGRIM, IGACC
-INTEGER :: JJ
-LOGICAL, DIMENSION(size(PRHODREF)) :: GRIM ! Test where to compute riming
-LOGICAL, DIMENSION(size(PRHODREF)) :: GACC ! Test where to compute accretion
-INTEGER, DIMENSION(:), ALLOCATABLE :: IVEC1, IVEC2       ! Vectors of indices for
-                                ! interpolations
-REAL, DIMENSION(size(PRHODREF)) :: ZZW  ! Work array
-REAL,     DIMENSION(size(PRHODREF),4) :: ZZW1     ! Work arrays
-REAL,    DIMENSION(:), ALLOCATABLE :: ZVEC1,ZVEC2,ZVEC3 ! Work vectors for
-                                ! interpolations
+INTEGER                              :: IGRIM, IGACC
+INTEGER                              :: JJ
+INTEGER, DIMENSION(:), ALLOCATABLE   :: IVEC1, IVEC2      ! Vectors of indices for interpolations
+LOGICAL, DIMENSION(size(PRHODREF))   :: GRIM              ! Test where to compute riming
+LOGICAL, DIMENSION(size(PRHODREF))   :: GACC              ! Test where to compute accretion
+REAL,    DIMENSION(size(PRHODREF))   :: ZZW               ! Work array
+REAL,    DIMENSION(:), ALLOCATABLE   :: ZVEC1,ZVEC2,ZVEC3 ! Work vectors for interpolations
+REAL,    DIMENSION(size(PRHODREF),4) :: ZZW1              ! Work arrays
 !-------------------------------------------------------------------------------
 !
 !*       5.1    cloud droplet riming of the aggregates
diff --git a/src/MNH/rain_ice_nucleation.f90 b/src/MNH/rain_ice_nucleation.f90
index faa2574bf..4fd4b2625 100644
--- a/src/MNH/rain_ice_nucleation.f90
+++ b/src/MNH/rain_ice_nucleation.f90
@@ -23,54 +23,55 @@ SUBROUTINE RAIN_ICE_NUCLEATION(KIB, KIE, KJB, KJE, KKTB, KKTE,KRR,PTSTEP,&
 !*      0. DECLARATIONS
 !          ------------
 !
-USE MODD_BUDGET
-USE MODD_CST
-USE MODD_RAIN_ICE_PARAM
-USE MODD_RAIN_ICE_DESCR, ONLY : XRTMIN
-USE MODD_PARAM_ICE, ONLY : LFEEDBACKT
+use MODD_BUDGET,         only: LBUDGET_RI, LBUDGET_RV, LBUDGET_TH
+use MODD_CST,            only: XALPI, XALPW, XBETAI, XBETAW, XCI, XCL, XCPD, XCPV, XGAMI, XGAMW, &
+                               XLSTT, XMD, XMV, XP00, XRD, XTT
+use MODD_RAIN_ICE_PARAM, only: XALPHA1, XALPHA2, XBETA1, XBETA2, XMNU0, XNU10, XNU20
+!
+use MODI_BUDGET
 !
 IMPLICIT NONE
 !
 !*       0.1   Declarations of dummy arguments :
 !
 INTEGER, INTENT(IN) :: KIB, KIE, KJB, KJE, KKTB, KKTE
-INTEGER,                      INTENT(IN)              :: KRR     ! Number of moist variable
-REAL,                     INTENT(IN)    :: PTSTEP  ! Double Time step
-                                                   ! (single if cold start)
-REAL, DIMENSION(:,:,:),   INTENT(IN)    :: PTHT    ! Theta at t
-REAL, DIMENSION(:,:,:),   INTENT(IN)    :: PPABST  ! absolute pressure at t
-REAL, DIMENSION(:,:,:),   INTENT(IN)    :: PRHODJ  ! Dry density * Jacobian
-REAL, DIMENSION(:,:,:),   INTENT(IN)    :: PRHODREF! Reference density
-REAL, DIMENSION(:,:,:),   INTENT(IN)    :: PRVT    ! Water vapor m.r. at t
-REAL, DIMENSION(:,:,:),   INTENT(IN)    :: PRCT    ! Cloud water m.r. at t
-REAL, DIMENSION(:,:,:),   INTENT(IN)    :: PRRT    ! Rain water m.r. at t
-REAL, DIMENSION(:,:,:),   INTENT(IN)    :: PRIT    ! Pristine ice m.r. at t
-REAL, DIMENSION(:,:,:),   INTENT(IN)    :: PRST    ! Snow/aggregate m.r. at t
-REAL, DIMENSION(:,:,:),   INTENT(IN)    :: PRGT    ! Graupel/hail m.r. at t
-REAL, DIMENSION(:,:,:),   INTENT(INOUT) :: PCIT    ! Pristine ice n.c. at t
-REAL, DIMENSION(:,:,:),   INTENT(IN)    :: PEXNREF ! Reference Exner function
-REAL, DIMENSION(:,:,:),   INTENT(INOUT) :: PTHS    ! Theta source
-REAL, DIMENSION(:,:,:),   INTENT(INOUT) :: PRVS    ! Water vapor m.r. source
-REAL, DIMENSION(:,:,:),   INTENT(INOUT) :: PRIS    ! Pristine ice m.r. source
-REAL, DIMENSION(:,:,:),   INTENT(OUT)   :: PT      ! Temperature
+INTEGER,                          INTENT(IN)    :: KRR     ! Number of moist variable
+REAL,                             INTENT(IN)    :: PTSTEP  ! Double Time step
+                                                           ! (single if cold start)
+REAL, DIMENSION(:,:,:),           INTENT(IN)    :: PTHT    ! Theta at t
+REAL, DIMENSION(:,:,:),           INTENT(IN)    :: PPABST  ! absolute pressure at t
+REAL, DIMENSION(:,:,:),           INTENT(IN)    :: PRHODJ  ! Dry density * Jacobian
+REAL, DIMENSION(:,:,:),           INTENT(IN)    :: PRHODREF! Reference density
+REAL, DIMENSION(:,:,:),           INTENT(IN)    :: PRVT    ! Water vapor m.r. at t
+REAL, DIMENSION(:,:,:),           INTENT(IN)    :: PRCT    ! Cloud water m.r. at t
+REAL, DIMENSION(:,:,:),           INTENT(IN)    :: PRRT    ! Rain water m.r. at t
+REAL, DIMENSION(:,:,:),           INTENT(IN)    :: PRIT    ! Pristine ice m.r. at t
+REAL, DIMENSION(:,:,:),           INTENT(IN)    :: PRST    ! Snow/aggregate m.r. at t
+REAL, DIMENSION(:,:,:),           INTENT(IN)    :: PRGT    ! Graupel/hail m.r. at t
+REAL, DIMENSION(:,:,:),           INTENT(INOUT) :: PCIT    ! Pristine ice n.c. at t
+REAL, DIMENSION(:,:,:),           INTENT(IN)    :: PEXNREF ! Reference Exner function
+REAL, DIMENSION(:,:,:),           INTENT(INOUT) :: PTHS    ! Theta source
+REAL, DIMENSION(:,:,:),           INTENT(INOUT) :: PRVS    ! Water vapor m.r. source
+REAL, DIMENSION(:,:,:),           INTENT(INOUT) :: PRIS    ! Pristine ice m.r. source
+REAL, DIMENSION(:,:,:),           INTENT(OUT)   :: PT      ! Temperature
 REAL, DIMENSION(:,:,:), OPTIONAL, INTENT(IN)    :: PRHT    ! Hail m.r. at t
 !
 !*       0.2  declaration of local variables
 !
-INTEGER :: INEGT
-INTEGER                           :: JL       ! and PACK intrinsics
-INTEGER , DIMENSION(SIZE(PEXNREF))  :: I1,I2,I3 ! Used to replace the COUNT
+INTEGER                            :: INEGT
+INTEGER                            :: JL       ! and PACK intrinsics
+INTEGER, DIMENSION(SIZE(PEXNREF))  :: I1,I2,I3 ! Used to replace the COUNT
 LOGICAL, DIMENSION(SIZE(PEXNREF,1),SIZE(PEXNREF,2),SIZE(PEXNREF,3)) &
-                     :: GNEGT  ! Test where to compute the HEN process
-REAL, DIMENSION(:), ALLOCATABLE :: ZRVT    ! Water vapor m.r. at t
-REAL, DIMENSION(:), ALLOCATABLE :: ZCIT    ! Pristine ice conc. at t
-REAL, DIMENSION(:), ALLOCATABLE ::                   ZZT,      & ! Temperature
-                  ZPRES,    & ! Pressure
-                  ZZW,      & ! Work array
-                  ZUSW,     & ! Undersaturation over water
-                  ZSSI        ! Supersaturation over ice
+                                   :: GNEGT    ! Test where to compute the HEN process
+REAL,    DIMENSION(:), ALLOCATABLE :: ZRVT     ! Water vapor m.r. at t
+REAL,    DIMENSION(:), ALLOCATABLE :: ZCIT     ! Pristine ice conc. at t
+REAL,    DIMENSION(:), ALLOCATABLE :: ZZT,   & ! Temperature
+                                      ZPRES, & ! Pressure
+                                      ZZW,   & ! Work array
+                                      ZUSW,  & ! Undersaturation over water
+                                      ZSSI     ! Supersaturation over ice
 REAL,    DIMENSION(SIZE(PEXNREF,1),SIZE(PEXNREF,2),SIZE(PEXNREF,3))   &
-                                  :: ZW ! work array
+                                    :: ZW      ! work array
 !
 !-------------------------------------------------------------------------------
 !
diff --git a/src/MNH/rain_ice_sedimentation_split.f90 b/src/MNH/rain_ice_sedimentation_split.f90
index f8441d3a9..d7637345e 100644
--- a/src/MNH/rain_ice_sedimentation_split.f90
+++ b/src/MNH/rain_ice_sedimentation_split.f90
@@ -24,120 +24,122 @@ SUBROUTINE RAIN_ICE_SEDIMENTATION_SPLIT(KIB, KIE, KJB, KJE, KKB, KKE, KKTB, KKTE
 !*      0. DECLARATIONS
 !          ------------
 !
-USE MODD_BUDGET, only: LBUDGET_RC, LBUDGET_RG, LBUDGET_RH, LBUDGET_RI, LBUDGET_RR, LBUDGET_RS
-USE MODD_CST, only: XCPD, XP00, XRD, XRHOLW
-USE MODD_PARAM_ICE, only: XVDEPOSC
-USE MODD_RAIN_ICE_DESCR, only: XCC,XCONC_LAND,xconc_sea,xconc_urban,XDC,XCEXVT,XALPHAC,XNUC,XALPHAC2,XNUC2, XLBEXC,XRTMIN,&
-              XLBEXC, XLBC
-USE MODD_RAIN_ICE_PARAM, only: xexsedg,xexsedh,XEXCSEDI,xexsedr,xexseds,xfsedg,xfsedh,xfsedi,xfsedr,xfseds,XFSEDC
+use MODD_BUDGET,         only: LBUDGET_RC, LBUDGET_RG, LBUDGET_RH, LBUDGET_RI, LBUDGET_RR, LBUDGET_RS
+use MODD_CST,            only: XCPD, XP00, XRD, XRHOLW
+use MODD_PARAM_ICE,      only: XVDEPOSC
+use MODD_RAIN_ICE_DESCR, only: XCC, XCONC_LAND, xconc_sea, xconc_urban, XDC, XCEXVT, &
+                               XALPHAC, XNUC, XALPHAC2, XNUC2, XLBEXC, XRTMIN, XLBEXC, XLBC
+use MODD_RAIN_ICE_PARAM, only: XEXSEDG, XEXSEDH, XEXCSEDI, XEXSEDR, XEXSEDS, &
+                               XFSEDG, XFSEDH, XFSEDI, XFSEDR, XFSEDS, XFSEDC
+!
+use MODI_BUDGET
 !
 IMPLICIT NONE
 !
 !*       0.1   Declarations of dummy arguments :
 !
-INTEGER, INTENT(IN) :: KIB, KIE, KJB, KJE, KKB, KKE, KKTB, KKTE, KKT
-INTEGER,                  INTENT(IN)    :: KKL   !vert. levels type 1=MNH -1=ARO
-INTEGER,                  INTENT(IN)    :: KSPLITR ! Number of small time step
-                                      ! integration for  rain sedimendation
-REAL,                     INTENT(IN)    :: PTSTEP  ! Double Time step
-                                                   ! (single if cold start)
-INTEGER,                      INTENT(IN)              :: KRR     ! Number of moist variable
-LOGICAL,                      INTENT(IN)              :: OSEDIC  ! Switch for droplet sedim.
-LOGICAL,                      INTENT(IN)              :: ODEPOSC ! Switch for droplet depos.
-REAL, DIMENSION(:,:),         INTENT(INOUT)           :: PINPRC  ! Cloud instant precip
-REAL, DIMENSION(:,:),         INTENT(INOUT)           :: PINDEP  ! Cloud instant deposition
-REAL, DIMENSION(:,:),     INTENT(OUT)             :: PINPRR  ! Rain instant precip
-REAL, DIMENSION(:,:),     INTENT(OUT)             :: PINPRS  ! Snow instant precip
-REAL, DIMENSION(:,:),     INTENT(OUT)             :: PINPRG  ! Graupel instant precip
-REAL, DIMENSION(:,:,:), INTENT(IN)              :: PDZZ    ! Layer thikness (m)
-REAL, DIMENSION(:,:,:), INTENT(IN)              :: PRHODREF! Reference density
-REAL, DIMENSION(:,:,:), INTENT(IN)              :: PPABST  ! absolute pressure at t
-REAL, DIMENSION(:,:,:), INTENT(IN)              :: PTHT    ! Theta at time t
-REAL, DIMENSION(:,:,:), INTENT(IN)              :: PRHODJ  ! Dry density * Jacobian
-REAL, DIMENSION(:,:,:),INTENT(OUT)      :: PINPRR3D! Rain inst precip 3D
-REAL, DIMENSION(:,:,:), INTENT(INOUT)           :: PRCS    ! Cloud water m.r. source
-REAL, DIMENSION(:,:,:), INTENT(IN)              :: PRCT    ! Cloud water m.r. at t
-REAL, DIMENSION(:,:,:), INTENT(INOUT)           :: PRRS    ! Rain water m.r. source
-REAL, DIMENSION(:,:,:), INTENT(IN)              :: PRRT    ! Rain water m.r. at t
-REAL, DIMENSION(:,:,:), INTENT(INOUT)           :: PRIS    ! Pristine ice m.r. source
-REAL, DIMENSION(:,:,:), INTENT(IN)              :: PRIT    ! Pristine ice m.r. at t
-REAL, DIMENSION(:,:,:), INTENT(INOUT)           :: PRSS    ! Snow/aggregate m.r. source
-REAL, DIMENSION(:,:,:), INTENT(IN)              :: PRST    ! Snow/aggregate m.r. at t
-REAL, DIMENSION(:,:,:), INTENT(INOUT)           :: PRGS    ! Graupel m.r. source
-REAL, DIMENSION(:,:,:), INTENT(IN)              :: PRGT    ! Graupel/hail m.r. at t
-REAL, DIMENSION(:,:), OPTIONAL,INTENT(IN)         :: PSEA    ! Sea Mask
-REAL, DIMENSION(:,:), OPTIONAL,INTENT(IN)         :: PTOWN   ! Fraction that is town
-REAL, DIMENSION(:,:),         OPTIONAL, INTENT(OUT)   :: PINPRH  ! Hail instant precip
-REAL, DIMENSION(:,:,:),     OPTIONAL, INTENT(INOUT) :: PRHS    ! Hail m.r. source
-REAL, DIMENSION(:,:,:),     OPTIONAL, INTENT(IN)    :: PRHT    ! Hail m.r. at t
+INTEGER,                            INTENT(IN)    :: KIB, KIE, KJB, KJE, KKB, KKE, KKTB, KKTE, KKT
+INTEGER,                            INTENT(IN)    :: KKL   !vert. levels type 1=MNH -1=ARO
+INTEGER,                            INTENT(IN)    :: KSPLITR ! Number of small time step
+                                                             ! integration for  rain sedimendation
+REAL,                               INTENT(IN)    :: PTSTEP  ! Double Time step
+                                                            ! (single if cold start)
+INTEGER,                            INTENT(IN)    :: KRR     ! Number of moist variable
+LOGICAL,                            INTENT(IN)    :: OSEDIC  ! Switch for droplet sedim.
+LOGICAL,                            INTENT(IN)    :: ODEPOSC ! Switch for droplet depos.
+REAL, DIMENSION(:,:),               INTENT(INOUT) :: PINPRC  ! Cloud instant precip
+REAL, DIMENSION(:,:),               INTENT(INOUT) :: PINDEP  ! Cloud instant deposition
+REAL, DIMENSION(:,:),               INTENT(OUT)   :: PINPRR  ! Rain instant precip
+REAL, DIMENSION(:,:),               INTENT(OUT)   :: PINPRS  ! Snow instant precip
+REAL, DIMENSION(:,:),               INTENT(OUT)   :: PINPRG  ! Graupel instant precip
+REAL, DIMENSION(:,:,:),             INTENT(IN)    :: PDZZ    ! Layer thikness (m)
+REAL, DIMENSION(:,:,:),             INTENT(IN)    :: PRHODREF! Reference density
+REAL, DIMENSION(:,:,:),             INTENT(IN)    :: PPABST  ! absolute pressure at t
+REAL, DIMENSION(:,:,:),             INTENT(IN)    :: PTHT    ! Theta at time t
+REAL, DIMENSION(:,:,:),             INTENT(IN)    :: PRHODJ  ! Dry density * Jacobian
+REAL, DIMENSION(:,:,:),             INTENT(OUT)   :: PINPRR3D! Rain inst precip 3D
+REAL, DIMENSION(:,:,:),             INTENT(INOUT) :: PRCS    ! Cloud water m.r. source
+REAL, DIMENSION(:,:,:),             INTENT(IN)    :: PRCT    ! Cloud water m.r. at t
+REAL, DIMENSION(:,:,:),             INTENT(INOUT) :: PRRS    ! Rain water m.r. source
+REAL, DIMENSION(:,:,:),             INTENT(IN)    :: PRRT    ! Rain water m.r. at t
+REAL, DIMENSION(:,:,:),             INTENT(INOUT) :: PRIS    ! Pristine ice m.r. source
+REAL, DIMENSION(:,:,:),             INTENT(IN)    :: PRIT    ! Pristine ice m.r. at t
+REAL, DIMENSION(:,:,:),             INTENT(INOUT) :: PRSS    ! Snow/aggregate m.r. source
+REAL, DIMENSION(:,:,:),             INTENT(IN)    :: PRST    ! Snow/aggregate m.r. at t
+REAL, DIMENSION(:,:,:),             INTENT(INOUT) :: PRGS    ! Graupel m.r. source
+REAL, DIMENSION(:,:,:),             INTENT(IN)    :: PRGT    ! Graupel/hail m.r. at t
+REAL, DIMENSION(:,:),     OPTIONAL, INTENT(IN)    :: PSEA    ! Sea Mask
+REAL, DIMENSION(:,:),     OPTIONAL, INTENT(IN)    :: PTOWN   ! Fraction that is town
+REAL, DIMENSION(:,:),     OPTIONAL, INTENT(OUT)   :: PINPRH  ! Hail instant precip
+REAL, DIMENSION(:,:,:),   OPTIONAL, INTENT(INOUT) :: PRHS    ! Hail m.r. source
+REAL, DIMENSION(:,:,:),   OPTIONAL, INTENT(IN)    :: PRHT    ! Hail m.r. at t
 REAL, DIMENSION(:,:,:,:), OPTIONAL, INTENT(OUT)   :: PFPR    ! upper-air precipitation fluxes
 !
 !*       0.2  declaration of local variables
 !
 !
-INTEGER, SAVE :: IOLDALLOCC = 6000
-INTEGER, SAVE :: IOLDALLOCR = 6000
-INTEGER, SAVE :: IOLDALLOCI = 6000
-INTEGER, SAVE :: IOLDALLOCS = 6000
-INTEGER, SAVE :: IOLDALLOCG = 6000
-INTEGER, SAVE :: IOLDALLOCH = 6000
-INTEGER   :: ILENALLOCC,ILENALLOCR,ILENALLOCI,ILENALLOCS,ILENALLOCG,ILENALLOCH
-INTEGER   :: ILISTLENC,ILISTLENR,ILISTLENI,ILISTLENS,ILISTLENG,ILISTLENH
-INTEGER :: ISEDIMR,ISEDIMC, ISEDIMI, ISEDIMS, ISEDIMG, ISEDIMH
-INTEGER :: JK            ! Vertical loop index for the rain sedimentation
-INTEGER :: JN            ! Temporal loop index for the rain sedimentation
-INTEGER :: JJ            ! Loop index for the interpolation
-INTEGER :: JL
-INTEGER , DIMENSION(SIZE(PRCS)) :: IC1,IC2,IC3 ! Used to replace the COUNT
-INTEGER , DIMENSION(SIZE(PRCS)) :: IR1,IR2,IR3 ! Used to replace the COUNT
-INTEGER , DIMENSION(SIZE(PRCS)) :: IS1,IS2,IS3 ! Used to replace the COUNT
-INTEGER , DIMENSION(SIZE(PRCS)) :: II1,II2,II3 ! Used to replace the COUNT
-INTEGER , DIMENSION(SIZE(PRCS)) :: IG1,IG2,IG3 ! Used to replace the COUNT
-INTEGER , DIMENSION(SIZE(PRCS)) :: IH1,IH2,IH3 ! Used to replace the COUNT
+INTEGER, SAVE                      :: IOLDALLOCC = 6000
+INTEGER, SAVE                      :: IOLDALLOCR = 6000
+INTEGER, SAVE                      :: IOLDALLOCI = 6000
+INTEGER, SAVE                      :: IOLDALLOCS = 6000
+INTEGER, SAVE                      :: IOLDALLOCG = 6000
+INTEGER, SAVE                      :: IOLDALLOCH = 6000
+INTEGER                            :: ILENALLOCC,ILENALLOCR,ILENALLOCI,ILENALLOCS,ILENALLOCG,ILENALLOCH
+INTEGER                            :: ILISTLENC,ILISTLENR,ILISTLENI,ILISTLENS,ILISTLENG,ILISTLENH
+INTEGER                            :: ISEDIMR,ISEDIMC, ISEDIMI, ISEDIMS, ISEDIMG, ISEDIMH
+INTEGER                            :: JK            ! Vertical loop index for the rain sedimentation
+INTEGER                            :: JN            ! Temporal loop index for the rain sedimentation
+INTEGER                            :: JJ            ! Loop index for the interpolation
+INTEGER                            :: JL
+INTEGER, DIMENSION(SIZE(PRCS))     :: IC1,IC2,IC3 ! Used to replace the COUNT
+INTEGER, DIMENSION(SIZE(PRCS))     :: IR1,IR2,IR3 ! Used to replace the COUNT
+INTEGER, DIMENSION(SIZE(PRCS))     :: IS1,IS2,IS3 ! Used to replace the COUNT
+INTEGER, DIMENSION(SIZE(PRCS))     :: II1,II2,II3 ! Used to replace the COUNT
+INTEGER, DIMENSION(SIZE(PRCS))     :: IG1,IG2,IG3 ! Used to replace the COUNT
+INTEGER, DIMENSION(SIZE(PRCS))     :: IH1,IH2,IH3 ! Used to replace the COUNT
 INTEGER, DIMENSION(:), ALLOCATABLE :: ILISTR,ILISTC,ILISTI,ILISTS,ILISTG,ILISTH
 LOGICAL, DIMENSION(SIZE(PRCS,1),SIZE(PRCS,2)):: GDEP
 LOGICAL, DIMENSION(SIZE(PRCS,1),SIZE(PRCS,2),SIZE(PRCS,3)) &
-    :: GSEDIMR,GSEDIMC, GSEDIMI, GSEDIMS, GSEDIMG, GSEDIMH ! Test where to compute the SED processes
-REAL            :: ZINVTSTEP
-REAL    :: ZTSPLITR      ! Small time step for rain sedimentation
-REAL, DIMENSION(SIZE(XRTMIN))     :: ZRTMIN
+                                   :: GSEDIMR,GSEDIMC, GSEDIMI, GSEDIMS, GSEDIMG, GSEDIMH ! Test where to compute the SED processes
+REAL                               :: ZINVTSTEP
+REAL                               :: ZTSPLITR ! Small time step for rain sedimentation
+REAL,    DIMENSION(SIZE(XRTMIN))   :: ZRTMIN
 ! XRTMIN = Minimum value for the mixing ratio
 ! ZRTMIN = Minimum value for the source (tendency)
-REAL, DIMENSION(:), ALLOCATABLE :: ZRCS    ! Cloud water m.r. source
-REAL, DIMENSION(:), ALLOCATABLE :: ZRRS    ! Rain water m.r. source
-REAL, DIMENSION(:), ALLOCATABLE :: ZRIS    ! Pristine ice m.r. source
-REAL, DIMENSION(:), ALLOCATABLE :: ZRSS    ! Snow/aggregate m.r. source
-REAL, DIMENSION(:), ALLOCATABLE :: ZRGS    ! Graupel m.r. source
-REAL, DIMENSION(:), ALLOCATABLE :: ZRHS    ! Hail m.r. source
-REAL, DIMENSION(:), ALLOCATABLE :: ZRCT    ! Cloud water m.r. at t
-REAL, DIMENSION(:), ALLOCATABLE :: &
-                  ZRHODREFC,& ! RHO Dry REFerence
-                  ZRHODREFR,& ! RHO Dry REFerence
-                  ZRHODREFI,& ! RHO Dry REFerence
-                  ZRHODREFS,& ! RHO Dry REFerence
-                  ZRHODREFG,& ! RHO Dry REFerence
-                  ZRHODREFH,& ! RHO Dry REFerence
-                  ZCC,      & ! terminal velocity
-                  ZFSEDC1D, & ! For cloud sedimentation
-                  ZWLBDC,   & ! Slope parameter of the droplet  distribution
-                  ZCONC,    & ! Concentration des aerosols
-                  ZRAY1D,   & ! Mean radius
-                  ZWLBDA,   & ! Libre parcours moyen
-                  ZZT,      & ! Temperature
-                  ZPRES       ! Pressure
+REAL,    DIMENSION(:), ALLOCATABLE :: ZRCS    ! Cloud water m.r. source
+REAL,    DIMENSION(:), ALLOCATABLE :: ZRRS    ! Rain water m.r. source
+REAL,    DIMENSION(:), ALLOCATABLE :: ZRIS    ! Pristine ice m.r. source
+REAL,    DIMENSION(:), ALLOCATABLE :: ZRSS    ! Snow/aggregate m.r. source
+REAL,    DIMENSION(:), ALLOCATABLE :: ZRGS    ! Graupel m.r. source
+REAL,    DIMENSION(:), ALLOCATABLE :: ZRHS    ! Hail m.r. source
+REAL,    DIMENSION(:), ALLOCATABLE :: ZRCT    ! Cloud water m.r. at t
+REAL,    DIMENSION(:), ALLOCATABLE :: ZRHODREFC,& ! RHO Dry REFerence
+                                      ZRHODREFR,& ! RHO Dry REFerence
+                                      ZRHODREFI,& ! RHO Dry REFerence
+                                      ZRHODREFS,& ! RHO Dry REFerence
+                                      ZRHODREFG,& ! RHO Dry REFerence
+                                      ZRHODREFH,& ! RHO Dry REFerence
+                                      ZCC,      & ! terminal velocity
+                                      ZFSEDC1D, & ! For cloud sedimentation
+                                      ZWLBDC,   & ! Slope parameter of the droplet  distribution
+                                      ZCONC,    & ! Concentration des aerosols
+                                      ZRAY1D,   & ! Mean radius
+                                      ZWLBDA,   & ! Libre parcours moyen
+                                      ZZT,      & ! Temperature
+                                      ZPRES       ! Pressure
 REAL,    DIMENSION(SIZE(PRCS,1),SIZE(PRCS,2))                   &
-                                  :: ZCONC_TMP    ! Weighted concentration
-REAL, DIMENSION(SIZE(PRCS,1),SIZE(PRCS,2),SIZE(PRCS,3)) :: ZCONC3D !  droplet condensation
+                                   :: ZCONC_TMP    ! Weighted concentration
+REAL,    DIMENSION(SIZE(PRCS,1),SIZE(PRCS,2),SIZE(PRCS,3)) :: ZCONC3D !  droplet condensation
 REAL,    DIMENSION(SIZE(PRCS,1),SIZE(PRCS,2),SIZE(PRCS,3)) ::  &
-                                     ZRAY,   & ! Cloud Mean radius
-                                     ZLBC,   & ! XLBC weighted by sea fraction
-                                     ZFSEDC
+                                      ZRAY,   & ! Cloud Mean radius
+                                      ZLBC,   & ! XLBC weighted by sea fraction
+                                      ZFSEDC
 REAL,    DIMENSION(SIZE(PRCS,1),SIZE(PRCS,2),SIZE(PRCS,3))   &
-      :: ZPRCS,ZPRRS,ZPRSS,ZPRGS,ZPRHS   ! Mixing ratios created during the time step
+                                   :: ZPRCS,ZPRRS,ZPRSS,ZPRGS,ZPRHS   ! Mixing ratios created during the time step
 REAL,    DIMENSION(SIZE(PRCS,1),SIZE(PRCS,2),SIZE(PRCS,3))   &
-                                  :: ZW ! work array
+                                   :: ZW ! work array
 REAL,    DIMENSION(SIZE(PRCS,1),SIZE(PRCS,2),0:SIZE(PRCS,3)+1)   &
-                                  :: ZWSED        ! sedimentation fluxes
+                                   :: ZWSED        ! sedimentation fluxes
 !-------------------------------------------------------------------------------
 !
 !
diff --git a/src/MNH/rain_ice_sedimentation_stat.f90 b/src/MNH/rain_ice_sedimentation_stat.f90
index 111ecf1bc..e8d07221c 100644
--- a/src/MNH/rain_ice_sedimentation_stat.f90
+++ b/src/MNH/rain_ice_sedimentation_stat.f90
@@ -25,11 +25,15 @@ SUBROUTINE RAIN_ICE_SEDIMENTATION_STAT( KIB, KIE, KJB, KJE, KKB, KKE, KKTB, KKTE
 !*      0. DECLARATIONS
 !          ------------
 !
-USE MODD_BUDGET
-USE MODD_CST
-USE MODD_PARAM_ICE
-USE MODD_RAIN_ICE_DESCR
-USE MODD_RAIN_ICE_PARAM
+use MODD_BUDGET,         only: LBUDGET_RC, LBUDGET_RG, LBUDGET_RH, LBUDGET_RI, LBUDGET_RR, LBUDGET_RS
+use MODD_CST,            only: XRHOLW
+use MODD_PARAM_ICE,      only: LDEPOSC, XVDEPOSC
+use MODD_RAIN_ICE_PARAM, only: XEXSEDG, XEXSEDH, XEXCSEDI, XEXSEDR, XEXSEDS, &
+                               XFSEDC, XFSEDG, XFSEDH, XFSEDI, XFSEDR, XFSEDS
+use MODD_RAIN_ICE_DESCR, only: XALPHAC, XALPHAC2, XCC, XCEXVT, XCONC_LAND, XCONC_SEA, XCONC_URBAN, &
+                               XDC, XLBC, XLBEXC, XNUC, XNUC2, XRTMIN
+!
+use MODI_BUDGET
 !
 IMPLICIT NONE
 !
@@ -70,22 +74,21 @@ REAL, DIMENSION(:,:,:,:), OPTIONAL, INTENT(OUT)   :: PFPR    ! upper-air precipi
 !
 !*       0.2  declaration of local variables
 !
-REAL :: ZINVTSTEP
-REAL :: ZP1,ZP2,ZH,ZZWLBDA,ZZWLBDC,ZZCC
-REAL, DIMENSION(SIZE(PRHODREF,1),SIZE(PRHODREF,2)) :: ZQP
-INTEGER :: JI,JJ,JK
-INTEGER :: JCOUNT, JL
+INTEGER                           :: JI,JJ,JK
+INTEGER                           :: JCOUNT, JL
 INTEGER, DIMENSION(SIZE(PRHODREF,1)*SIZE(PRHODREF,2)) :: I1, I2
-!
-LOGICAL, DIMENSION(SIZE(PRHODREF,1),SIZE(PRHODREF,2)):: GDEP
-REAL, DIMENSION(SIZE(XRTMIN))     :: ZRTMIN
+LOGICAL, DIMENSION(SIZE(PRHODREF,1),SIZE(PRHODREF,2)) :: GDEP
+REAL                              :: ZINVTSTEP
+REAL                              :: ZP1,ZP2,ZH,ZZWLBDA,ZZWLBDC,ZZCC
+REAL,    DIMENSION(SIZE(XRTMIN))     :: ZRTMIN
 ! XRTMIN = Minimum value for the mixing ratio
 ! ZRTMIN = Minimum value for the source (tendency)
-REAL,    DIMENSION(SIZE(PRHODREF,1),SIZE(PRHODREF,2),SIZE(PRHODREF,3))   &
-      :: ZPRCS,ZPRRS,ZPRSS,ZPRGS,ZPRHS   ! Mixing ratios created during the time step
+REAL,    DIMENSION(SIZE(PRHODREF,1),SIZE(PRHODREF,2)) :: ZQP
 REAL,    DIMENSION(SIZE(PRHODREF,1),SIZE(PRHODREF,2))                   &
                                   :: ZCONC_TMP    ! Weighted concentration
-REAL, DIMENSION(SIZE(PRHODREF,1),SIZE(PRHODREF,2),SIZE(PRHODREF,3)) :: ZCONC3D !  droplet condensation
+REAL,    DIMENSION(SIZE(PRHODREF,1),SIZE(PRHODREF,2),SIZE(PRHODREF,3))   &
+                                  :: ZPRCS,ZPRRS,ZPRSS,ZPRGS,ZPRHS   ! Mixing ratios created during the time step
+REAL,    DIMENSION(SIZE(PRHODREF,1),SIZE(PRHODREF,2),SIZE(PRHODREF,3)) :: ZCONC3D !  droplet condensation
 REAL,    DIMENSION(SIZE(PRHODREF,1),SIZE(PRHODREF,2),SIZE(PRHODREF,3)) ::  &
                                      ZRAY,   & ! Cloud Mean radius
                                      ZLBC,   & ! XLBC weighted by sea fraction
diff --git a/src/MNH/rain_ice_slow.f90 b/src/MNH/rain_ice_slow.f90
index 663309b1c..eb46ad531 100644
--- a/src/MNH/rain_ice_slow.f90
+++ b/src/MNH/rain_ice_slow.f90
@@ -26,10 +26,13 @@ SUBROUTINE RAIN_ICE_SLOW(OMICRO, PINVTSTEP, PRHODREF,                      &
 !*      0. DECLARATIONS
 !          ------------
 !
-USE MODD_BUDGET
-USE MODD_CST
-USE MODD_RAIN_ICE_DESCR
-USE MODD_RAIN_ICE_PARAM
+use MODD_BUDGET,         only: LBUDGET_RC, LBUDGET_RG, LBUDGET_RI, LBUDGET_RR, LBUDGET_RS, LBUDGET_RV, LBUDGET_TH
+use MODD_CST,            only: XALPI, XBETAI, XCI, XCPV, XGAMI, XLSTT, XMNH_HUGE_12_LOG, XP00, XRV, XTT
+use MODD_RAIN_ICE_DESCR, only: XCEXVT, XLBDAS_MAX, XLBEXG, XLBEXS, XLBG, XLBS, XRTMIN
+use MODD_RAIN_ICE_PARAM, only: X0DEPG, X0DEPS, X1DEPG, X1DEPS, XACRIAUTI, XALPHA3, XBCRIAUTI, XBETA3, XCOLEXIS, XCRIAUTI, &
+                               XEX0DEPG, XEX0DEPS, XEX1DEPG, XEX1DEPS, XEXIAGGS, XFIAGGS, XHON, XSCFAC, XTEXAUTI, XTIMAUTI
+!
+use MODI_BUDGET
 !
 IMPLICIT NONE
 !
@@ -68,7 +71,7 @@ REAL,     DIMENSION(:),     intent(OUT)   :: PLBDAG   ! Slope parameter of the g
 !
 !*       0.2  declaration of local variables
 !
-REAL, DIMENSION(size(PRHODREF)) :: ZZW ! Work array
+REAL, DIMENSION(size(PRHODREF)) :: ZZW      ! Work array
 REAL, DIMENSION(size(PRHODREF)) :: ZCRIAUTI ! Snow-to-ice autoconversion thres.
 !
 !-------------------------------------------------------------------------------
diff --git a/src/MNH/rain_ice_warm.f90 b/src/MNH/rain_ice_warm.f90
index 69b48ed6e..d83fad363 100644
--- a/src/MNH/rain_ice_warm.f90
+++ b/src/MNH/rain_ice_warm.f90
@@ -23,14 +23,16 @@ SUBROUTINE RAIN_ICE_WARM(OMICRO, PRHODREF, PRVT, PRCT, PRRT, PHLC_HCF, PHLC_LCF,
 !*      0. DECLARATIONS
 !          ------------
 !
-use MODD_BUDGET
-use MODD_CST
-use MODD_PARAM_ICE
-USE MODD_RAIN_ICE_DESCR
-USE MODD_RAIN_ICE_PARAM
+use MODD_BUDGET,         only: LBUDGET_RC, LBUDGET_RR, LBUDGET_RV, LBUDGET_TH
+use MODD_CST,            only: XALPW, XBETAW, XCL, XCPV, XGAMW, XLVTT, XMD, XMV, XRV, XTT
+use MODD_PARAM_ICE,      only: CSUBG_RC_RR_ACCR, CSUBG_RR_EVAP
+use MODD_RAIN_ICE_DESCR, only: XCEXVT, XRTMIN
+use MODD_RAIN_ICE_PARAM, only: X0EVAR, X1EVAR, XCRIAUTC, XEX0EVAR, XEX1EVAR, XEXCACCR, XFCACCR, XTIMAUTC
 !
 use MODE_MSG
 !
+use MODI_BUDGET
+!
 IMPLICIT NONE
 !
 !*       0.1   Declarations of dummy arguments :
-- 
GitLab