diff --git a/src/common/turb/mode_compute_function_thermo_mf.F90 b/src/common/turb/mode_compute_function_thermo_mf.F90
index 64cc93462a8539820657547cf78cff60ce859fb9..265a8c5cd77fd8425d3b17ce6dd0ac3b3b077120 100644
--- a/src/common/turb/mode_compute_function_thermo_mf.F90
+++ b/src/common/turb/mode_compute_function_thermo_mf.F90
@@ -8,7 +8,7 @@
 !
 IMPLICIT NONE
 CONTAINS
-      SUBROUTINE COMPUTE_FUNCTION_THERMO_MF( KRR,KRRL,KRRI,                  &
+      SUBROUTINE COMPUTE_FUNCTION_THERMO_MF(D, CST, KRR,KRRL,KRRI,                  &
                                        PTH, PR, PEXN, PFRAC_ICE, PPABS,      &
                                        PT,PAMOIST,PATHETA                    )
 !     #################################################################
@@ -50,7 +50,8 @@ CONTAINS
 !*      0. DECLARATIONS
 !          ------------
 !
-USE MODD_CST
+USE MODD_DIMPHYEX,        ONLY: DIMPHYEX_t
+USE MODD_CST,             ONLY: CST_t
 USE PARKIND1, ONLY : JPRB
 USE YOMHOOK , ONLY : LHOOK, DR_HOOK
 !
@@ -59,25 +60,27 @@ IMPLICIT NONE
 !
 !*      0.1  declarations of arguments
 !
+TYPE(DIMPHYEX_t),       INTENT(IN)   :: D
+TYPE(CST_t),            INTENT(IN)   :: CST
 INTEGER,                INTENT(IN)   :: KRR           ! number of moist var.
 INTEGER,                INTENT(IN)   :: KRRL          ! number of liquid water var.
 INTEGER,                INTENT(IN)   :: KRRI          ! number of ice water var.
 
-REAL, DIMENSION(:,:), INTENT(IN)   :: PTH      ! theta
-REAL, DIMENSION(:,:,:), INTENT(IN) :: PR       ! water species
-REAL, DIMENSION(:,:)  , INTENT(IN) :: PPABS,PEXN    ! pressure, Exner funct.
-REAL, DIMENSION(:,:)  , INTENT(IN) :: PFRAC_ICE     ! ice fraction
+REAL, DIMENSION(D%NIT,D%NKT), INTENT(IN)   :: PTH      ! theta
+REAL, DIMENSION(D%NIT,D%NKT,KRR), INTENT(IN) :: PR       ! water species
+REAL, DIMENSION(D%NIT,D%NKT)  , INTENT(IN) :: PPABS,PEXN    ! pressure, Exner funct.
+REAL, DIMENSION(D%NIT,D%NKT)  , INTENT(IN) :: PFRAC_ICE     ! ice fraction
 
-REAL, DIMENSION(:,:), INTENT(OUT)   :: PT      ! temperature
+REAL, DIMENSION(D%NIT,D%NKT), INTENT(OUT)   :: PT      ! temperature
 
-REAL, DIMENSION(:,:), INTENT(OUT)  ::  PAMOIST,PATHETA
+REAL, DIMENSION(D%NIT,D%NKT), INTENT(OUT)  ::  PAMOIST,PATHETA
 !
 !-------------------------------------------------------------------------------
 ! 
 !*       0.2   Declarations of local variables
 !
 REAL                :: ZEPS         ! XMV / XMD
-REAL, DIMENSION(SIZE(PTH,1),SIZE(PTH,2)) ::     &
+REAL, DIMENSION(D%NIT,D%NKT) ::       &
           ZCP,                        &  ! Cp 
           ZE,                         &  ! Saturation mixing ratio
           ZDEDT,                      &  ! Saturation mixing ratio derivative
@@ -94,21 +97,21 @@ REAL(KIND=JPRB) :: ZHOOK_HANDLE
 !
 IF (LHOOK) CALL DR_HOOK('COMPUTE_FUNCTION_THERMO_MF',0,ZHOOK_HANDLE)
 !
-  ZEPS = XMV / XMD
+  ZEPS = CST%XMV / CST%XMD
 
 !
 !*       Cph
 !
-ZCP=XCPD
+ZCP=CST%XCPD
 
-IF (KRR > 0) ZCP(:,:) = ZCP(:,:) + XCPV * PR(:,:,1)
+IF (KRR > 0) ZCP(:,:) = ZCP(:,:) + CST%XCPV * PR(:,:,1)
 
 DO JRR = 2,1+KRRL  ! loop on the liquid components  
-   ZCP(:,:)  = ZCP(:,:) + XCL * PR(:,:,JRR)
+   ZCP(:,:)  = ZCP(:,:) + CST%XCL * PR(:,:,JRR)
 END DO
 
 DO JRR = 2+KRRL,1+KRRL+KRRI ! loop on the solid components   
-  ZCP(:,:)  = ZCP(:,:)  + XCI * PR(:,:,JRR)
+  ZCP(:,:)  = ZCP(:,:)  + CST%XCI * PR(:,:,JRR)
 END DO
 
 !*      Temperature
@@ -122,11 +125,11 @@ IF ( KRRL >= 1 ) THEN
 !
 !*       Lv/Cph 
 !
-  ZLVOCP(:,:) = (XLVTT + (XCPV-XCL) *  (PT(:,:)-XTT) ) / ZCP(:,:)
+  ZLVOCP(:,:) = (CST%XLVTT + (CST%XCPV-CST%XCL) *  (PT(:,:)-CST%XTT) ) / ZCP(:,:)
 !
 !*      Saturation vapor pressure with respect to water
 !
-  ZE(:,:) =  EXP( XALPW - XBETAW/PT(:,:) - XGAMW*ALOG( PT(:,:) ) )
+  ZE(:,:) =  EXP( CST%XALPW - CST%XBETAW/PT(:,:) - CST%XGAMW*ALOG( PT(:,:) ) )
 !
 !*      Saturation  mixing ratio with respect to water
 !
@@ -134,7 +137,7 @@ IF ( KRRL >= 1 ) THEN
 !
 !*      Compute the saturation mixing ratio derivative (rvs')
 !
-  ZDEDT(:,:) = ( XBETAW / PT(:,:)  - XGAMW ) / PT(:,:)   &
+  ZDEDT(:,:) = ( CST%XBETAW / PT(:,:)  - CST%XGAMW ) / PT(:,:)   &
                  * ZE(:,:) * ( 1. + ZE(:,:) / ZEPS )
 !
 !*      Compute Amoist
@@ -148,9 +151,9 @@ IF ( KRRL >= 1 ) THEN
           ( 1. + ZDEDT(:,:) * ZLVOCP(:,:) )           *              &
           (                                                             &
            ZE(:,:) * (1. + ZE(:,:)/ZEPS)                                &
-                        * ( -2.*XBETAW/PT(:,:) + XGAMW ) / PT(:,:)**2   &
+                        * ( -2.*CST%XBETAW/PT(:,:) + CST%XGAMW ) / PT(:,:)**2   &
           +ZDEDT(:,:) * (1. + 2. * ZE(:,:)/ZEPS)                        &
-                        * ( XBETAW/PT(:,:) - XGAMW ) / PT(:,:)          &
+                        * ( CST%XBETAW/PT(:,:) - CST%XGAMW ) / PT(:,:)          &
           )                                                             &
          - ZDEDT(:,:)                                                   &
         )
@@ -163,11 +166,11 @@ IF ( KRRL >= 1 ) THEN
 !
 !*       Ls/Cph 
 !
-    ZLSOCP(:,:) = (XLSTT + (XCPV-XCI) *  (PT(:,:)-XTT) ) / ZCP(:,:)
+    ZLSOCP(:,:) = (CST%XLSTT + (CST%XCPV-CST%XCI) *  (PT(:,:)-CST%XTT) ) / ZCP(:,:)
 !
 !*      Saturation vapor pressure with respect to ice
 !
-    ZE(:,:) =  EXP( XALPI - XBETAI/PT(:,:) - XGAMI*ALOG( PT(:,:) ) )
+    ZE(:,:) =  EXP( CST%XALPI - CST%XBETAI/PT(:,:) - CST%XGAMI*ALOG( PT(:,:) ) )
 !
 !*      Saturation  mixing ratio with respect to ice
 !
@@ -175,7 +178,7 @@ IF ( KRRL >= 1 ) THEN
 !
 !*      Compute the saturation mixing ratio derivative (rvs')
 !
-    ZDEDT(:,:) = ( XBETAI / PT(:,:)  - XGAMI ) / PT(:,:)   &
+    ZDEDT(:,:) = ( CST%XBETAI / PT(:,:)  - CST%XGAMI ) / PT(:,:)   &
                    * ZE(:,:) * ( 1. + ZE(:,:) / ZEPS )
 !
 !*      Compute Amoist
@@ -189,9 +192,9 @@ IF ( KRRL >= 1 ) THEN
           ( 1. + ZDEDT(:,:) * ZLSOCP(:,:) )           *              &
           (                                                             &
            ZE(:,:) * (1. + ZE(:,:)/ZEPS)                                &
-                        * ( -2.*XBETAI/PT(:,:) + XGAMI ) / PT(:,:)**2   &
+                        * ( -2.*CST%XBETAI/PT(:,:) + CST%XGAMI ) / PT(:,:)**2   &
           +ZDEDT(:,:) * (1. + 2. * ZE(:,:)/ZEPS)                        &
-                        * ( XBETAI/PT(:,:) - XGAMI ) / PT(:,:)          &
+                        * ( CST%XBETAI/PT(:,:) - CST%XGAMI ) / PT(:,:)          &
           )                                                             &
          - ZDEDT(:,:)                                                   &
         )
diff --git a/src/common/turb/mode_compute_mf_cloud.F90 b/src/common/turb/mode_compute_mf_cloud.F90
index 7792adb25787829f9d597b25f55bd389ae29d32e..5ed752cb5bec17b56f9e98c53f5b2e785e346c50 100644
--- a/src/common/turb/mode_compute_mf_cloud.F90
+++ b/src/common/turb/mode_compute_mf_cloud.F90
@@ -11,7 +11,7 @@ IMPLICIT NONE
 CONTAINS
 !
 !     ######spl
-      SUBROUTINE COMPUTE_MF_CLOUD(KKA,KKB,KKE,KKU,KKL,KRR,KRRL,KRRI,HMF_CLOUD,&
+      SUBROUTINE COMPUTE_MF_CLOUD(D, CST, PARAMMF, KRR, KRRL, KRRI, HMF_CLOUD,&
                                   PFRAC_ICE,                                &
                                   PRC_UP,PRI_UP,PEMF,                       &
                                   PTHL_UP, PRT_UP, PFRAC_UP,                &
@@ -60,6 +60,10 @@ CONTAINS
 !*      0. DECLARATIONS
 !          ------------
 !
+USE MODD_DIMPHYEX,        ONLY: DIMPHYEX_t
+USE MODD_CST,             ONLY: CST_t
+USE MODD_PARAM_MFSHALL_n, ONLY: PARAM_MFSHALL_t
+!
 USE MODE_MSG
 !
 USE MODE_COMPUTE_MF_CLOUD_DIRECT, ONLY: COMPUTE_MF_CLOUD_DIRECT
@@ -75,33 +79,31 @@ IMPLICIT NONE
 !
 !
 !
-INTEGER,                INTENT(IN)   :: KKA          ! near ground array index
-INTEGER,                INTENT(IN)   :: KKB          ! near ground physical index
-INTEGER,                INTENT(IN)   :: KKE          ! uppest atmosphere physical index
-INTEGER,                INTENT(IN)   :: KKU          ! uppest atmosphere array index
-INTEGER,                INTENT(IN)   ::  KKL          ! +1 if grid goes from ground to atmosphere top, -1 otherwise
+TYPE(DIMPHYEX_t),       INTENT(IN)   :: D
+TYPE(CST_t),            INTENT(IN)   :: CST
+TYPE(PARAM_MFSHALL_t),  INTENT(IN)   :: PARAMMF
 INTEGER,                INTENT(IN)   ::  KRR          ! number of moist var.
 INTEGER,                INTENT(IN)   ::  KRRL         ! number of liquid water var.
 INTEGER,                INTENT(IN)   ::  KRRI         ! number of ice water var.
 CHARACTER (LEN=4),      INTENT(IN)   ::  HMF_CLOUD    ! Type of statistical cloud scheme
-REAL, DIMENSION(:,:),   INTENT(IN)   ::  PFRAC_ICE    ! liquid/ice fraction
-REAL, DIMENSION(:,:),   INTENT(IN)   ::  PRC_UP,PRI_UP,PEMF! updraft characteritics
-REAL, DIMENSION(:,:),   INTENT(IN)   ::  PTHL_UP, PRT_UP   ! rc,w,Mass Flux,Thetal,rt
-REAL, DIMENSION(:,:),   INTENT(IN)   ::  PFRAC_UP          ! Updraft Fraction
-REAL, DIMENSION(:,:),   INTENT(IN)   ::  PTHV_UP           ! updraft thetaV
-REAL, DIMENSION(:,:),   INTENT(IN)   ::  PFRAC_ICE_UP      ! liquid/solid fraction in updraft
-REAL, DIMENSION(:,:),   INTENT(IN)   ::  PRSAT_UP          ! Rsat in updraft
-REAL, DIMENSION(:,:),   INTENT(IN)   ::  PEXNM             ! exner function
-REAL, DIMENSION(:,:),   INTENT(IN)   ::  PTHLM, PRTM       ! cons. var. at t-dt
-REAL, DIMENSION(:,:),   INTENT(IN)   ::  PTHM, PTHVM       ! theta and thetaV
-REAL, DIMENSION(:,:,:), INTENT(IN)   ::  PRM               ! water var. at t-dt
-REAL, DIMENSION(:,:),   INTENT(IN)   ::  PDZZ, PZZ
-INTEGER, DIMENSION(:),  INTENT(IN)   ::  KKLCL             ! index of updraft condensation level
-REAL, DIMENSION(:,:),   INTENT(IN)   ::  PPABSM, PRHODREF  ! environement
-REAL, DIMENSION(:,:),   INTENT(OUT)  ::  PRC_MF, PRI_MF    ! cloud content (INPUT=environment, OUTPUT=conv. cloud)
-REAL, DIMENSION(:,:),   INTENT(OUT)  ::  PCF_MF            ! and cloud fraction for MF scheme
-REAL, DIMENSION(:,:),   INTENT(OUT)  ::  PSIGMF            ! SQRT(variance) for statistical cloud scheme
-REAL, DIMENSION(:),     INTENT(IN)   ::  PDEPTH            ! Deepness of cloud
+REAL, DIMENSION(D%NIT,D%NKT),   INTENT(IN)   ::  PFRAC_ICE    ! liquid/ice fraction
+REAL, DIMENSION(D%NIT,D%NKT),   INTENT(IN)   ::  PRC_UP,PRI_UP,PEMF! updraft characteritics
+REAL, DIMENSION(D%NIT,D%NKT),   INTENT(IN)   ::  PTHL_UP, PRT_UP   ! rc,w,Mass Flux,Thetal,rt
+REAL, DIMENSION(D%NIT,D%NKT),   INTENT(IN)   ::  PFRAC_UP          ! Updraft Fraction
+REAL, DIMENSION(D%NIT,D%NKT),   INTENT(IN)   ::  PTHV_UP           ! updraft thetaV
+REAL, DIMENSION(D%NIT,D%NKT),   INTENT(IN)   ::  PFRAC_ICE_UP      ! liquid/solid fraction in updraft
+REAL, DIMENSION(D%NIT,D%NKT),   INTENT(IN)   ::  PRSAT_UP          ! Rsat in updraft
+REAL, DIMENSION(D%NIT,D%NKT),   INTENT(IN)   ::  PEXNM             ! exner function
+REAL, DIMENSION(D%NIT,D%NKT),   INTENT(IN)   ::  PTHLM, PRTM       ! cons. var. at t-dt
+REAL, DIMENSION(D%NIT,D%NKT),   INTENT(IN)   ::  PTHM, PTHVM       ! theta and thetaV
+REAL, DIMENSION(D%NIT,D%NKT,KRR), INTENT(IN)   ::  PRM               ! water var. at t-dt
+REAL, DIMENSION(D%NIT,D%NKT),   INTENT(IN)   ::  PDZZ, PZZ
+INTEGER, DIMENSION(D%NIT),  INTENT(IN)   ::  KKLCL             ! index of updraft condensation level
+REAL, DIMENSION(D%NIT,D%NKT),   INTENT(IN)   ::  PPABSM, PRHODREF  ! environement
+REAL, DIMENSION(D%NIT,D%NKT),   INTENT(OUT)  ::  PRC_MF, PRI_MF    ! cloud content (INPUT=environment, OUTPUT=conv. cloud)
+REAL, DIMENSION(D%NIT,D%NKT),   INTENT(OUT)  ::  PCF_MF            ! and cloud fraction for MF scheme
+REAL, DIMENSION(D%NIT,D%NKT),   INTENT(OUT)  ::  PSIGMF            ! SQRT(variance) for statistical cloud scheme
+REAL, DIMENSION(D%NIT),     INTENT(IN)   ::  PDEPTH            ! Deepness of cloud
 
 !
 !                       1.2  Declaration of local variables
@@ -122,14 +124,14 @@ PSIGMF = 0.
 
 IF (HMF_CLOUD == 'DIRE') THEN
   !Direct cloud scheme
-  CALL COMPUTE_MF_CLOUD_DIRECT(KKB, KKE, KKL, &
+  CALL COMPUTE_MF_CLOUD_DIRECT(D, PARAMMF, &
                               &KKLCL(:), PFRAC_UP(:,:), PRC_UP(:,:), PRI_UP(:,:),&
                               &PRC_MF(:,:), PRI_MF(:,:), PCF_MF(:,:))
   !
 ELSEIF (HMF_CLOUD == 'STAT') THEN
   !Statistical scheme using the PDF proposed by Bougeault (81, 82) and
   !Bechtold et al (95).
-  CALL COMPUTE_MF_CLOUD_STAT(KKA, KKB, KKE, KKU, KKL, KRR, KRRL, KRRI,&
+  CALL COMPUTE_MF_CLOUD_STAT(D, CST, PARAMMF, KRR, KRRL, KRRI,&
                             &PFRAC_ICE,&
                             &PTHLM, PRTM, PPABSM, PRM,&
                             &PDZZ, PTHM, PEXNM,&
@@ -137,7 +139,7 @@ ELSEIF (HMF_CLOUD == 'STAT') THEN
                             &PSIGMF)
 ELSEIF (HMF_CLOUD == 'BIGA') THEN
   !Statistical scheme using the bi-gaussian PDF proposed by E. Perraud.
-  CALL COMPUTE_MF_CLOUD_BIGAUS(KKA, KKB, KKE, KKU, KKL,&
+  CALL COMPUTE_MF_CLOUD_BIGAUS(D, CST, PARAMMF,&
                               &PEMF, PDEPTH,&
                               &PRT_UP, PTHV_UP, PFRAC_ICE_UP, PRSAT_UP,&
                               &PRTM, PTHM, PTHVM,&
diff --git a/src/common/turb/mode_compute_mf_cloud_bigaus.F90 b/src/common/turb/mode_compute_mf_cloud_bigaus.F90
index 86d33090bb8e41b731f5e583d1ef19746f3a7d96..cc6818be72f6901dc1a9937bad5fb170d37c9959 100644
--- a/src/common/turb/mode_compute_mf_cloud_bigaus.F90
+++ b/src/common/turb/mode_compute_mf_cloud_bigaus.F90
@@ -9,7 +9,7 @@
 !
 IMPLICIT NONE
 CONTAINS
-      SUBROUTINE COMPUTE_MF_CLOUD_BIGAUS(KKA, KKB, KKE, KKU, KKL,&
+      SUBROUTINE COMPUTE_MF_CLOUD_BIGAUS(D, CST, PARAMMF,&
                                   PEMF, PDEPTH,&
                                   PRT_UP, PTHV_UP, PFRAC_ICE_UP, PRSAT_UP,&
                                   PRTM, PTHM, PTHVM,&
@@ -57,8 +57,9 @@ CONTAINS
 !
 !*      0. DECLARATIONS
 !          ------------
-USE MODD_PARAM_MFSHALL_n, ONLY : XALPHA_MF, XSIGMA_MF
-USE MODD_CST, ONLY  : XPI, XG
+USE MODD_DIMPHYEX,        ONLY: DIMPHYEX_t
+USE MODD_CST,             ONLY: CST_t
+USE MODD_PARAM_MFSHALL_n, ONLY: PARAM_MFSHALL_t
 !
 USE MODI_SHUMAN_MF, ONLY: MZF_MF, GZ_M_W_MF
 USE MODI_GAMMA_INC
@@ -72,35 +73,33 @@ IMPLICIT NONE
 !
 !*                    0.1  Declaration of Arguments
 !
-INTEGER,                INTENT(IN)   :: KKA          ! near ground array index
-INTEGER,                INTENT(IN)   :: KKB          ! near ground physical index
-INTEGER,                INTENT(IN)   :: KKE          ! uppest atmosphere physical index
-INTEGER,                INTENT(IN)   :: KKU          ! uppest atmosphere array index
-INTEGER,                INTENT(IN)   :: KKL                     ! +1 if grid goes from ground to atmosphere top, -1 otherwise
-REAL, DIMENSION(:,:),   INTENT(IN)   :: PEMF                    ! updraft characteritics
-REAL, DIMENSION(:),     INTENT(IN)   :: PDEPTH                  ! Deepness of cloud
-REAL, DIMENSION(:,:),   INTENT(IN)   :: PTHV_UP, PRSAT_UP, PRT_UP ! updraft characteritics
-REAL, DIMENSION(:,:),   INTENT(IN)   :: PFRAC_ICE_UP            ! liquid/ice fraction in updraft
-REAL, DIMENSION(:,:),   INTENT(IN)   :: PTHM, PRTM, PTHVM       ! env. var. at t-dt
-REAL, DIMENSION(:,:),   INTENT(IN)   :: PDZZ, PZZ
-REAL, DIMENSION(:,:),   INTENT(IN)   :: PRHODREF
-REAL, DIMENSION(:,:),   INTENT(OUT)  :: PRC_MF, PRI_MF          ! cloud content
-REAL, DIMENSION(:,:),   INTENT(OUT)  :: PCF_MF                  ! and cloud fraction for MF scheme
+TYPE(DIMPHYEX_t),       INTENT(IN)   :: D
+TYPE(CST_t),            INTENT(IN)   :: CST
+TYPE(PARAM_MFSHALL_t),  INTENT(IN)   :: PARAMMF
+REAL, DIMENSION(D%NIT,D%NKT),   INTENT(IN)   :: PEMF                    ! updraft characteritics
+REAL, DIMENSION(D%NIT),     INTENT(IN)   :: PDEPTH                  ! Deepness of cloud
+REAL, DIMENSION(D%NIT,D%NKT),   INTENT(IN)   :: PTHV_UP, PRSAT_UP, PRT_UP ! updraft characteritics
+REAL, DIMENSION(D%NIT,D%NKT),   INTENT(IN)   :: PFRAC_ICE_UP            ! liquid/ice fraction in updraft
+REAL, DIMENSION(D%NIT,D%NKT),   INTENT(IN)   :: PTHM, PRTM, PTHVM       ! env. var. at t-dt
+REAL, DIMENSION(D%NIT,D%NKT),   INTENT(IN)   :: PDZZ, PZZ
+REAL, DIMENSION(D%NIT,D%NKT),   INTENT(IN)   :: PRHODREF
+REAL, DIMENSION(D%NIT,D%NKT),   INTENT(OUT)  :: PRC_MF, PRI_MF          ! cloud content
+REAL, DIMENSION(D%NIT,D%NKT),   INTENT(OUT)  :: PCF_MF                  ! and cloud fraction for MF scheme
 !
 !*                    0.1  Declaration of local variables
 !
 !
-REAL, DIMENSION(SIZE(PTHM,1),SIZE(PTHM,2)) :: ZGRAD_Z_RT, &            !
+REAL, DIMENSION(D%NIT,D%NKT) :: ZGRAD_Z_RT, &            !
                                             & ZALPHA_UP_M, &           ! Variables used to compute variance
                                             & ZSIGMF                   ! and sqrt(variance)
-REAL, DIMENSION(SIZE(PTHM,1))              :: ZOMEGA_UP_M              !
-REAL, DIMENSION(SIZE(PTHM,1),SIZE(PTHM,2)) :: ZW1 ! working array
+REAL, DIMENSION(D%NIT)              :: ZOMEGA_UP_M              !
+REAL, DIMENSION(D%NIT,D%NKT) :: ZW1 ! working array
 INTEGER                                    :: JK  ! vertical loop control
-REAL, DIMENSION(SIZE(PTHM,1),SIZE(PTHM,2)) :: ZEMF_M, ZTHV_UP_M, &   !
+REAL, DIMENSION(D%NIT,D%NKT) :: ZEMF_M, ZTHV_UP_M, &   !
                                             & ZRSAT_UP_M, ZRT_UP_M,& ! Interpolation on mass points
                                             & ZFRAC_ICE_UP_M         !
-REAL, DIMENSION(SIZE(PTHM,1),SIZE(PTHM,2)) :: ZCOND ! condensate
-REAL, DIMENSION(SIZE(PTHM,1),SIZE(PTHM,2)) :: ZA, ZGAM ! used for integration
+REAL, DIMENSION(D%NIT,D%NKT) :: ZCOND ! condensate
+REAL, DIMENSION(D%NIT,D%NKT) :: ZA, ZGAM ! used for integration
 REAL(KIND=JPRB) :: ZHOOK_HANDLE
 
 IF (LHOOK) CALL DR_HOOK('COMPUTE_MF_CLOUD_BIGAUS',0,ZHOOK_HANDLE)
@@ -113,19 +112,19 @@ IF (LHOOK) CALL DR_HOOK('COMPUTE_MF_CLOUD_BIGAUS',0,ZHOOK_HANDLE)
 !
 !
 !Vertical gradient of RT, result on mass points
-ZW1(:,:)=GZ_M_W_MF(PRTM(:,:), PDZZ(:,:), KKA, KKU, KKL)
-ZGRAD_Z_RT(:,:)=MZF_MF(ZW1(:,:), KKA, KKU, KKL)
+ZW1(:,:)=GZ_M_W_MF(PRTM(:,:), PDZZ(:,:), D%NKA, D%NKU, D%NKL)
+ZGRAD_Z_RT(:,:)=MZF_MF(ZW1(:,:), D%NKA, D%NKU, D%NKL)
 
 !Interpolation on mass points
-ZTHV_UP_M(:,:) = MZF_MF(PTHV_UP(:,:), KKA, KKU, KKL)
-ZRSAT_UP_M(:,:)= MZF_MF(PRSAT_UP(:,:), KKA, KKU, KKL)
-ZRT_UP_M(:,:)  = MZF_MF(PRT_UP(:,:), KKA, KKU, KKL)
-ZEMF_M(:,:)    = MZF_MF(PEMF(:,:), KKA, KKU, KKL)
-ZFRAC_ICE_UP_M(:,:) = MZF_MF(PFRAC_ICE_UP(:,:), KKA, KKU, KKL)
+ZTHV_UP_M(:,:) = MZF_MF(PTHV_UP(:,:), D%NKA, D%NKU, D%NKL)
+ZRSAT_UP_M(:,:)= MZF_MF(PRSAT_UP(:,:), D%NKA, D%NKU, D%NKL)
+ZRT_UP_M(:,:)  = MZF_MF(PRT_UP(:,:), D%NKA, D%NKU, D%NKL)
+ZEMF_M(:,:)    = MZF_MF(PEMF(:,:), D%NKA, D%NKU, D%NKL)
+ZFRAC_ICE_UP_M(:,:) = MZF_MF(PFRAC_ICE_UP(:,:), D%NKA, D%NKU, D%NKL)
 
 !computation of omega star up
 ZOMEGA_UP_M(:)=0.
-DO JK=KKB,KKE,KKL
+DO JK=D%NKB,D%NKE,D%NKL
   !Vertical integration over the entire column but only buoyant points are used
   !ZOMEGA_UP_M(:)=ZOMEGA_UP_M(:) + &
   !                ZEMF_M(:,JK) * &
@@ -137,24 +136,24 @@ DO JK=KKB,KKE,KKL
   ZOMEGA_UP_M(:)=ZOMEGA_UP_M(:) + &
                  ZEMF_M(:,JK) * &
                  (ZTHV_UP_M(:,JK)-PTHVM(:,JK)) * &
-                 (PZZ(:,JK+KKL)-PZZ(:,JK)) / &
+                 (PZZ(:,JK+D%NKL)-PZZ(:,JK)) / &
                  (PTHM(:,JK) * PRHODREF(:,JK))
 ENDDO
 ZOMEGA_UP_M(:)=MAX(ZOMEGA_UP_M(:), 1.E-20)
-ZOMEGA_UP_M(:)=(XG*ZOMEGA_UP_M(:))**(1./3.)
+ZOMEGA_UP_M(:)=(CST%XG*ZOMEGA_UP_M(:))**(1./3.)
 
 !computation of alpha up
-DO JK=KKA,KKU,KKL
-  ZALPHA_UP_M(:,JK)=ZEMF_M(:,JK)/(XALPHA_MF*PRHODREF(:,JK)*ZOMEGA_UP_M(:))
+DO JK=D%NKA,D%NKU,D%NKL
+  ZALPHA_UP_M(:,JK)=ZEMF_M(:,JK)/(PARAMMF%XALPHA_MF*PRHODREF(:,JK)*ZOMEGA_UP_M(:))
 ENDDO
 ZALPHA_UP_M(:,:)=MAX(0., MIN(ZALPHA_UP_M(:,:), 1.))
 
 !computation of sigma of the distribution
-DO JK=KKA,KKU,KKL
+DO JK=D%NKA,D%NKU,D%NKL
   ZSIGMF(:,JK)=ZEMF_M(:,JK) * &
                (ZRT_UP_M(:,JK) - PRTM(:,JK)) * &
                PDEPTH(:) * ZGRAD_Z_RT(:,JK) / &
-               (XSIGMA_MF * ZOMEGA_UP_M(:) * PRHODREF(:,JK))
+               (PARAMMF%XSIGMA_MF * ZOMEGA_UP_M(:) * PRHODREF(:,JK))
 ENDDO
 ZSIGMF(:,:)=SQRT(MAX(ABS(ZSIGMF(:,:)), 1.E-40))
 !
@@ -166,13 +165,13 @@ ZSIGMF(:,:)=SQRT(MAX(ABS(ZSIGMF(:,:)), 1.E-40))
 ZA(:,:)=(ZRSAT_UP_M(:,:)-ZRT_UP_M(:,:))/(sqrt(2.)*ZSIGMF(:,:))
 
 !Approximation of erf function
-ZGAM(:,:)=1-SIGN(1., ZA(:,:))*SQRT(1-EXP(-4*ZA(:,:)**2/XPI))
+ZGAM(:,:)=1-SIGN(1., ZA(:,:))*SQRT(1-EXP(-4*ZA(:,:)**2/CST%XPI))
 
 !computation of cloud fraction
 PCF_MF(:,:)=MAX( 0., MIN(1.,0.5*ZGAM(:,:) * ZALPHA_UP_M(:,:)))
 
 !computation of condensate, then PRC and PRI
-ZCOND(:,:)=(EXP(-ZA(:,:)**2)-ZA(:,:)*SQRT(XPI)*ZGAM(:,:))*ZSIGMF(:,:)/SQRT(2.*XPI) * ZALPHA_UP_M(:,:)
+ZCOND(:,:)=(EXP(-ZA(:,:)**2)-ZA(:,:)*SQRT(CST%XPI)*ZGAM(:,:))*ZSIGMF(:,:)/SQRT(2.*CST%XPI) * ZALPHA_UP_M(:,:)
 ZCOND(:,:)=MAX(ZCOND(:,:), 0.) !due to approximation of ZGAM value, ZCOND could be slightly negative
 PRC_MF(:,:)=(1.-ZFRAC_ICE_UP_M(:,:)) * ZCOND(:,:)
 PRI_MF(:,:)=(   ZFRAC_ICE_UP_M(:,:)) * ZCOND(:,:)
diff --git a/src/common/turb/mode_compute_mf_cloud_direct.F90 b/src/common/turb/mode_compute_mf_cloud_direct.F90
index 8db27676d2e1d61c5d6dfd5b859699106e6756c2..748ef6eceebd94734ce7fa7804581815f47369eb 100644
--- a/src/common/turb/mode_compute_mf_cloud_direct.F90
+++ b/src/common/turb/mode_compute_mf_cloud_direct.F90
@@ -8,7 +8,7 @@
 !
 IMPLICIT NONE
 CONTAINS
-      SUBROUTINE COMPUTE_MF_CLOUD_DIRECT(KKB, KKE, KKL, &
+      SUBROUTINE COMPUTE_MF_CLOUD_DIRECT(D, PARAMMF, &
                                         &KKLCL, PFRAC_UP, PRC_UP, PRI_UP,&
                                         &PRC_MF, PRI_MF, PCF_MF)
 !     #################################################################
@@ -53,7 +53,8 @@ CONTAINS
 !
 !*      0. DECLARATIONS
 !          ------------
-USE MODD_PARAM_MFSHALL_n, ONLY : XKCF_MF
+USE MODD_DIMPHYEX,        ONLY: DIMPHYEX_t
+USE MODD_PARAM_MFSHALL_n, ONLY : PARAM_MFSHALL_t
 USE PARKIND1, ONLY : JPRB
 USE YOMHOOK , ONLY : LHOOK, DR_HOOK
 !
@@ -61,14 +62,13 @@ IMPLICIT NONE
 !
 !*                    0.1  Declaration of Arguments
 !
-INTEGER,                INTENT(IN)   :: KKB            ! near ground physical index
-INTEGER,                INTENT(IN)   :: KKE            ! uppest atmosphere physical index
-INTEGER,                INTENT(IN)   :: KKL            ! +1 if grid goes from ground to atmosphere top, -1 otherwise
-INTEGER, DIMENSION(:),  INTENT(IN)   :: KKLCL          ! index of updraft condensation level
-REAL, DIMENSION(:,:),   INTENT(IN)   :: PFRAC_UP       ! Updraft Fraction
-REAL, DIMENSION(:,:),   INTENT(IN)   :: PRC_UP,PRI_UP  ! updraft characteritics
-REAL, DIMENSION(:,:),   INTENT(OUT)  :: PRC_MF, PRI_MF ! cloud content
-REAL, DIMENSION(:,:),   INTENT(OUT)  :: PCF_MF         ! and cloud fraction for MF scheme
+TYPE(DIMPHYEX_t),       INTENT(IN)   :: D
+TYPE(PARAM_MFSHALL_t),  INTENT(IN)   :: PARAMMF
+INTEGER, DIMENSION(D%NIT),  INTENT(IN)   :: KKLCL          ! index of updraft condensation level
+REAL, DIMENSION(D%NIT,D%NKT),   INTENT(IN)   :: PFRAC_UP       ! Updraft Fraction
+REAL, DIMENSION(D%NIT,D%NKT),   INTENT(IN)   :: PRC_UP,PRI_UP  ! updraft characteritics
+REAL, DIMENSION(D%NIT,D%NKT),   INTENT(OUT)  :: PRC_MF, PRI_MF ! cloud content
+REAL, DIMENSION(D%NIT,D%NKT),   INTENT(OUT)  :: PCF_MF         ! and cloud fraction for MF scheme
 !
 !*                    0.1  Declaration of local variables
 !
@@ -89,21 +89,21 @@ PRC_MF(:,:)=0.
 PRI_MF(:,:)=0.
 PCF_MF(:,:)=0.
 
-DO JI=1,SIZE(PCF_MF,1)
+DO JI=1,D%NIT
 #ifdef REPRO48
-  JK0=KKLCL(JI)-KKL ! first mass level with cloud
-  JK0=MAX(JK0, MIN(KKB,KKE)) !protection if KKL=1
-  JK0=MIN(JK0, MAX(KKB,KKE)) !protection if KKL=-1
-  DO JK=JK0,KKE-KKL,KKL
+  JK0=KKLCL(JI)-D%NKL ! first mass level with cloud
+  JK0=MAX(JK0, MIN(D%NKB,D%NKE)) !protection if KKL=1
+  JK0=MIN(JK0, MAX(D%NKB,D%NKE)) !protection if KKL=-1
+  DO JK=JK0,D%NKE-D%NKL,D%NKL
 #else
-  DO JK=KKLCL(JI),KKE-KKL,KKL
+  DO JK=KKLCL(JI),D%NKE-D%NKL,D%NKL
 #endif
-    PCF_MF(JI,JK ) = MAX( 0., MIN(1.,XKCF_MF *0.5* (       &
-                &    PFRAC_UP(JI,JK) +  PFRAC_UP(JI,JK+KKL) ) ))
-    PRC_MF(JI,JK)  = 0.5* XKCF_MF * ( PFRAC_UP(JI,JK)*PRC_UP(JI,JK)  &
-                         + PFRAC_UP(JI,JK+KKL)*PRC_UP(JI,JK+KKL) )
-    PRI_MF(JI,JK)  = 0.5* XKCF_MF * ( PFRAC_UP(JI,JK)*PRI_UP(JI,JK)  &
-                         + PFRAC_UP(JI,JK+KKL)*PRI_UP(JI,JK+KKL) )
+    PCF_MF(JI,JK ) = MAX( 0., MIN(1.,PARAMMF%XKCF_MF *0.5* (       &
+                &    PFRAC_UP(JI,JK) +  PFRAC_UP(JI,JK+D%NKL) ) ))
+    PRC_MF(JI,JK)  = 0.5* PARAMMF%XKCF_MF * ( PFRAC_UP(JI,JK)*PRC_UP(JI,JK)  &
+                         + PFRAC_UP(JI,JK+D%NKL)*PRC_UP(JI,JK+D%NKL) )
+    PRI_MF(JI,JK)  = 0.5* PARAMMF%XKCF_MF * ( PFRAC_UP(JI,JK)*PRI_UP(JI,JK)  &
+                         + PFRAC_UP(JI,JK+D%NKL)*PRI_UP(JI,JK+D%NKL) )
   END DO
 END DO
 
diff --git a/src/common/turb/mode_compute_mf_cloud_stat.F90 b/src/common/turb/mode_compute_mf_cloud_stat.F90
index 12fcce462fef6b0eb2c4b73fec8b6058a78ada08..5a75cbd639ffd34120ead739c224419b5ff0a319 100644
--- a/src/common/turb/mode_compute_mf_cloud_stat.F90
+++ b/src/common/turb/mode_compute_mf_cloud_stat.F90
@@ -9,7 +9,7 @@
 IMPLICIT NONE
 CONTAINS
 !     ######spl
-      SUBROUTINE COMPUTE_MF_CLOUD_STAT(KKA, KKB, KKE, KKU, KKL, KRR, KRRL, KRRI,&
+      SUBROUTINE COMPUTE_MF_CLOUD_STAT(D, CST, PARAMMF, KRR, KRRL, KRRI,&
                             &PFRAC_ICE,&
                             &PTHLM, PRTM, PPABSM, PRM,&
                             &PDZZ, PTHM, PEXNM, &
@@ -52,8 +52,9 @@ CONTAINS
 !
 !*      0. DECLARATIONS
 !          ------------
-USE MODD_PARAM_MFSHALL_n, ONLY :  XTAUSIGMF
-USE MODD_PARAMETERS, ONLY : JPHEXT, JPVEXT
+USE MODD_DIMPHYEX,        ONLY: DIMPHYEX_t
+USE MODD_CST,             ONLY: CST_t
+USE MODD_PARAM_MFSHALL_n, ONLY: PARAM_MFSHALL_t
 !
 USE MODI_SHUMAN_MF, ONLY: MZF_MF, MZM_MF, GZ_M_W_MF
 USE MODE_COMPUTE_FUNCTION_THERMO_MF, ONLY: COMPUTE_FUNCTION_THERMO_MF
@@ -65,31 +66,29 @@ IMPLICIT NONE
 !
 !*                    0.1  Declaration of Arguments
 !
-INTEGER,                INTENT(IN)   :: KKA          ! near ground array index
-INTEGER,                INTENT(IN)   :: KKB          ! near ground physical index
-INTEGER,                INTENT(IN)   :: KKE          ! uppest atmosphere physical index
-INTEGER,                INTENT(IN)   :: KKU          ! uppest atmosphere array index
-INTEGER,                INTENT(IN)   :: KKL                     ! +1 if grid goes from ground to atmosphere top, -1 otherwise
+TYPE(DIMPHYEX_t),       INTENT(IN)   :: D
+TYPE(CST_t),            INTENT(IN)   :: CST
+TYPE(PARAM_MFSHALL_t),  INTENT(IN)   :: PARAMMF
 INTEGER,                INTENT(IN)   :: KRR                     ! number of moist var.
 INTEGER,                INTENT(IN)   :: KRRL                    ! number of liquid water var.
 INTEGER,                INTENT(IN)   :: KRRI                    ! number of ice water var.
-REAL, DIMENSION(:,:),   INTENT(IN)   :: PFRAC_ICE               ! liquid/ice fraction
-REAL, DIMENSION(:,:),   INTENT(IN)   :: PTHLM, PRTM             ! cons. var. at t-dt
-REAL, DIMENSION(:,:),   INTENT(IN)   :: PPABSM                  ! Pressure at time t-1
-REAL, DIMENSION(:,:,:), INTENT(IN)   :: PRM                     ! water var. at t-dt
-REAL, DIMENSION(:,:),   INTENT(IN)   :: PDZZ
-REAL, DIMENSION(:,:),   INTENT(IN)   :: PTHM                    ! environement
-REAL, DIMENSION(:,:),   INTENT(IN)   :: PEXNM
-REAL, DIMENSION(:,:),   INTENT(IN)   :: PEMF                    ! updraft characteritics
-REAL, DIMENSION(:,:),   INTENT(IN)   :: PTHL_UP, PRT_UP         ! rc,w,Mass Flux,Thetal,rt
-REAL, DIMENSION(:,:),   INTENT(OUT)  :: PSIGMF                  ! SQRT(variance) for statistical cloud scheme
+REAL, DIMENSION(D%NIT,D%NKT),   INTENT(IN)   :: PFRAC_ICE               ! liquid/ice fraction
+REAL, DIMENSION(D%NIT,D%NKT),   INTENT(IN)   :: PTHLM, PRTM             ! cons. var. at t-dt
+REAL, DIMENSION(D%NIT,D%NKT),   INTENT(IN)   :: PPABSM                  ! Pressure at time t-1
+REAL, DIMENSION(D%NIT,D%NKT,KRR), INTENT(IN)   :: PRM                     ! water var. at t-dt
+REAL, DIMENSION(D%NIT,D%NKT),   INTENT(IN)   :: PDZZ
+REAL, DIMENSION(D%NIT,D%NKT),   INTENT(IN)   :: PTHM                    ! environement
+REAL, DIMENSION(D%NIT,D%NKT),   INTENT(IN)   :: PEXNM
+REAL, DIMENSION(D%NIT,D%NKT),   INTENT(IN)   :: PEMF                    ! updraft characteritics
+REAL, DIMENSION(D%NIT,D%NKT),   INTENT(IN)   :: PTHL_UP, PRT_UP         ! rc,w,Mass Flux,Thetal,rt
+REAL, DIMENSION(D%NIT,D%NKT),   INTENT(OUT)  :: PSIGMF                  ! SQRT(variance) for statistical cloud scheme
 !
 !*                    0.1  Declaration of local variables
 !
 !
-REAL, DIMENSION(SIZE(PTHLM,1),SIZE(PTHLM,2)) :: ZFLXZ
-REAL, DIMENSION(SIZE(PTHLM,1),SIZE(PTHLM,2)) :: ZT
-REAL, DIMENSION(SIZE(PTHLM,1),SIZE(PTHLM,2)) :: ZAMOIST, ZATHETA
+REAL, DIMENSION(D%NIT,D%NKT) :: ZFLXZ
+REAL, DIMENSION(D%NIT,D%NKT) :: ZT
+REAL, DIMENSION(D%NIT,D%NKT) :: ZAMOIST, ZATHETA
 REAL(KIND=JPRB) :: ZHOOK_HANDLE
 !
 !*                    0.2 initialisation
@@ -103,7 +102,7 @@ IF (LHOOK) CALL DR_HOOK('COMPUTE_MF_CLOUD_STAT',0,ZHOOK_HANDLE)
 !          ------------------------------------------------
 !
 ! Thermodynamics functions
-CALL COMPUTE_FUNCTION_THERMO_MF( KRR,KRRL,KRRI,                   &
+CALL COMPUTE_FUNCTION_THERMO_MF( D, CST, KRR,KRRL,KRRI,                   &
                                  PTHM,PRM,PEXNM,PFRAC_ICE,PPABSM, &
                                  ZT,ZAMOIST,ZATHETA               )
 !
@@ -113,14 +112,14 @@ IF (KRRL > 0)  THEN
 !
 
 !
-    ZFLXZ(:,:) = -2 * XTAUSIGMF * PEMF(:,:)*(PTHL_UP(:,:)-MZM_MF(PTHLM(:,:), KKA, KKU, KKL)) * &
-                      GZ_M_W_MF(PTHLM(:,:),PDZZ(:,:), KKA, KKU, KKL)
+    ZFLXZ(:,:) = -2 * PARAMMF%XTAUSIGMF * PEMF(:,:)*(PTHL_UP(:,:)-MZM_MF(PTHLM(:,:), D%NKA, D%NKU, D%NKL)) * &
+                      GZ_M_W_MF(PTHLM(:,:),PDZZ(:,:), D%NKA, D%NKU, D%NKL)
 !
 !   Avoid negative values
     ZFLXZ(:,:) = MAX(0.,ZFLXZ(:,:))
 
 
-    PSIGMF(:,:) = MZF_MF(ZFLXZ(:,:), KKA, KKU, KKL) * ZATHETA(:,:)**2
+    PSIGMF(:,:) = MZF_MF(ZFLXZ(:,:), D%NKA, D%NKU, D%NKL) * ZATHETA(:,:)**2
 
 !
 !
@@ -129,14 +128,14 @@ IF (KRRL > 0)  THEN
 !
 !
 !
-    ZFLXZ(:,:) = -2 * XTAUSIGMF * PEMF(:,:)*(PRT_UP(:,:)-MZM_MF(PRTM(:,:), KKA, KKU, KKL)) * &
-                      GZ_M_W_MF(PRTM(:,:),PDZZ(:,:), KKA, KKU, KKL)
+    ZFLXZ(:,:) = -2 * PARAMMF%XTAUSIGMF * PEMF(:,:)*(PRT_UP(:,:)-MZM_MF(PRTM(:,:), D%NKA, D%NKU, D%NKL)) * &
+                      GZ_M_W_MF(PRTM(:,:),PDZZ(:,:), D%NKA, D%NKU, D%NKL)
 !
 !   Avoid negative values
     ZFLXZ(:,:) = MAX(0.,ZFLXZ(:,:))
 !
 
-    PSIGMF(:,:) = PSIGMF(:,:) + ZAMOIST(:,:) **2 * MZF_MF(ZFLXZ(:,:), KKA, KKU, KKL)
+    PSIGMF(:,:) = PSIGMF(:,:) + ZAMOIST(:,:) **2 * MZF_MF(ZFLXZ(:,:), D%NKA, D%NKU, D%NKL)
 !
 !        1.3  Vertical part of Sigma_s
 !
diff --git a/src/common/turb/mode_compute_updraft_raha.F90 b/src/common/turb/mode_compute_updraft_raha.F90
index bcfa159883e238067f854e637ce167ad3b6858d2..3cbacbc0cb32040508743aa089a2fab325bd3378 100644
--- a/src/common/turb/mode_compute_updraft_raha.F90
+++ b/src/common/turb/mode_compute_updraft_raha.F90
@@ -86,65 +86,65 @@ LOGICAL,                INTENT(IN) :: OMIXUV    ! True if mixing of momentum
 LOGICAL,                INTENT(IN)   :: ONOMIXLG  ! False if mixing of lagrangian tracer
 INTEGER,                INTENT(IN)   :: KSV_LGBEG ! first index of lag. tracer
 INTEGER,                INTENT(IN)   :: KSV_LGEND ! last  index of lag. tracer
-REAL, DIMENSION(D%NIT,D%NJT), INTENT(IN)   :: PZZ       !  Height at the flux point
-REAL, DIMENSION(D%NIT,D%NJT), INTENT(IN)   :: PDZZ      !  Metrics coefficient
+REAL, DIMENSION(D%NIT,D%NKT), INTENT(IN)   :: PZZ       !  Height at the flux point
+REAL, DIMENSION(D%NIT,D%NKT), INTENT(IN)   :: PDZZ      !  Metrics coefficient
  
 REAL, DIMENSION(D%NIT),   INTENT(IN)   ::  PSFTH,PSFRV
 ! normal surface fluxes of theta,rv,(u,v) parallel to the orography
 !
-REAL, DIMENSION(D%NIT,D%NJT),   INTENT(IN) ::  PPABSM     ! Pressure at t-dt
-REAL, DIMENSION(D%NIT,D%NJT),   INTENT(IN) ::  PRHODREF   ! dry density of the
+REAL, DIMENSION(D%NIT,D%NKT),   INTENT(IN) ::  PPABSM     ! Pressure at t-dt
+REAL, DIMENSION(D%NIT,D%NKT),   INTENT(IN) ::  PRHODREF   ! dry density of the
                                                   ! reference state
-REAL, DIMENSION(D%NIT,D%NJT),   INTENT(IN) ::  PUM        ! u mean wind
-REAL, DIMENSION(D%NIT,D%NJT),   INTENT(IN) ::  PVM        ! v mean wind
-REAL, DIMENSION(D%NIT,D%NJT),   INTENT(IN) ::  PTKEM      ! TKE at t-dt
-
-REAL, DIMENSION(D%NIT,D%NJT),   INTENT(IN)   ::  PEXNM       ! Exner function at t-dt
-REAL, DIMENSION(D%NIT,D%NJT),   INTENT(IN)   ::  PTHM           ! liquid pot. temp. at t-dt
-REAL, DIMENSION(D%NIT,D%NJT),   INTENT(IN)   ::  PRVM           ! vapor mixing ratio at t-dt
-REAL, DIMENSION(D%NIT,D%NJT),   INTENT(IN)   ::  PTHLM,PRTM     ! cons. var. at t-dt
-
-REAL, DIMENSION(D%NIT,D%NJT,KSV), INTENT(IN)   ::  PSVM           ! scalar var. at t-dt
-
-REAL, DIMENSION(D%NIT,D%NJT),   INTENT(OUT)  ::  PTHL_UP,PRT_UP   ! updraft properties
-REAL, DIMENSION(D%NIT,D%NJT),   INTENT(OUT)  ::  PU_UP, PV_UP     ! updraft wind components
-REAL, DIMENSION(D%NIT,D%NJT),   INTENT(INOUT)::  PRV_UP,PRC_UP    ! updraft rv, rc
-REAL, DIMENSION(D%NIT,D%NJT),   INTENT(INOUT)::  PRI_UP,PTHV_UP   ! updraft ri, THv
-REAL, DIMENSION(D%NIT,D%NJT),   INTENT(INOUT)::  PW_UP,PFRAC_UP   ! updraft w, fraction
-REAL, DIMENSION(D%NIT,D%NJT),   INTENT(INOUT)::  PFRAC_ICE_UP     ! liquid/solid fraction in updraft
-REAL, DIMENSION(D%NIT,D%NJT),   INTENT(INOUT)::  PRSAT_UP         ! Rsat
-
-REAL, DIMENSION(D%NIT,D%NJT,KSV), INTENT(OUT)  ::  PSV_UP           ! updraft scalar var. 
+REAL, DIMENSION(D%NIT,D%NKT),   INTENT(IN) ::  PUM        ! u mean wind
+REAL, DIMENSION(D%NIT,D%NKT),   INTENT(IN) ::  PVM        ! v mean wind
+REAL, DIMENSION(D%NIT,D%NKT),   INTENT(IN) ::  PTKEM      ! TKE at t-dt
+
+REAL, DIMENSION(D%NIT,D%NKT),   INTENT(IN)   ::  PEXNM       ! Exner function at t-dt
+REAL, DIMENSION(D%NIT,D%NKT),   INTENT(IN)   ::  PTHM           ! liquid pot. temp. at t-dt
+REAL, DIMENSION(D%NIT,D%NKT),   INTENT(IN)   ::  PRVM           ! vapor mixing ratio at t-dt
+REAL, DIMENSION(D%NIT,D%NKT),   INTENT(IN)   ::  PTHLM,PRTM     ! cons. var. at t-dt
+
+REAL, DIMENSION(D%NIT,D%NKT,KSV), INTENT(IN)   ::  PSVM           ! scalar var. at t-dt
+
+REAL, DIMENSION(D%NIT,D%NKT),   INTENT(OUT)  ::  PTHL_UP,PRT_UP   ! updraft properties
+REAL, DIMENSION(D%NIT,D%NKT),   INTENT(OUT)  ::  PU_UP, PV_UP     ! updraft wind components
+REAL, DIMENSION(D%NIT,D%NKT),   INTENT(INOUT)::  PRV_UP,PRC_UP    ! updraft rv, rc
+REAL, DIMENSION(D%NIT,D%NKT),   INTENT(INOUT)::  PRI_UP,PTHV_UP   ! updraft ri, THv
+REAL, DIMENSION(D%NIT,D%NKT),   INTENT(INOUT)::  PW_UP,PFRAC_UP   ! updraft w, fraction
+REAL, DIMENSION(D%NIT,D%NKT),   INTENT(INOUT)::  PFRAC_ICE_UP     ! liquid/solid fraction in updraft
+REAL, DIMENSION(D%NIT,D%NKT),   INTENT(INOUT)::  PRSAT_UP         ! Rsat
+
+REAL, DIMENSION(D%NIT,D%NKT,KSV), INTENT(OUT)  ::  PSV_UP           ! updraft scalar var. 
                                          
-REAL, DIMENSION(D%NIT,D%NJT),   INTENT(INOUT)::  PEMF,PDETR,PENTR ! Mass_flux,
+REAL, DIMENSION(D%NIT,D%NKT),   INTENT(INOUT)::  PEMF,PDETR,PENTR ! Mass_flux,
                                                           ! detrainment,entrainment
-REAL, DIMENSION(D%NIT,D%NJT),   INTENT(INOUT) :: PBUO_INTEG       ! Integrated Buoyancy 
+REAL, DIMENSION(D%NIT,D%NKT),   INTENT(INOUT) :: PBUO_INTEG       ! Integrated Buoyancy 
 INTEGER, DIMENSION(D%NIT),  INTENT(INOUT)::  KKLCL,KKETL,KKCTL! LCL, ETL, CTL                                     
 REAL, DIMENSION(:),     INTENT(OUT)   :: PDEPTH           ! Deepness of cloud
 !                       1.2  Declaration of local variables
 !
 !
 ! Mean environment variables at t-dt at flux point
-REAL, DIMENSION(D%NIT,D%NJT) ::    ZTHM_F,ZRVM_F,ZRCM_F    ! Theta,rv of
+REAL, DIMENSION(D%NIT,D%NKT) ::    ZTHM_F,ZRVM_F,ZRCM_F    ! Theta,rv of
                                                                   ! updraft environnement
-REAL, DIMENSION(D%NIT,D%NJT) :: ZRTM_F, ZTHLM_F, ZTKEM_F      ! rt, thetal,TKE,pressure,
-REAL, DIMENSION(D%NIT,D%NJT) :: ZUM_F,ZVM_F,ZRHO_F            ! density,momentum
-REAL, DIMENSION(D%NIT,D%NJT) :: ZPRES_F,ZTHVM_F,ZTHVM         ! interpolated at the flux point
-REAL, DIMENSION(D%NIT,D%NJT) :: ZG_O_THVREF                   ! g*ThetaV ref
-REAL, DIMENSION(D%NIT,D%NJT) :: ZW_UP2                        ! w**2  of the updraft
+REAL, DIMENSION(D%NIT,D%NKT) :: ZRTM_F, ZTHLM_F, ZTKEM_F      ! rt, thetal,TKE,pressure,
+REAL, DIMENSION(D%NIT,D%NKT) :: ZUM_F,ZVM_F,ZRHO_F            ! density,momentum
+REAL, DIMENSION(D%NIT,D%NKT) :: ZPRES_F,ZTHVM_F,ZTHVM         ! interpolated at the flux point
+REAL, DIMENSION(D%NIT,D%NKT) :: ZG_O_THVREF                   ! g*ThetaV ref
+REAL, DIMENSION(D%NIT,D%NKT) :: ZW_UP2                        ! w**2  of the updraft
 
-REAL, DIMENSION(D%NIT,D%NJT,KSV) :: ZSVM_F ! scalar variables 
+REAL, DIMENSION(D%NIT,D%NKT,KSV) :: ZSVM_F ! scalar variables 
                         
 
                         
-REAL, DIMENSION(D%NIT,D%NJT) :: ZTH_UP                        ! updraft THETA 
+REAL, DIMENSION(D%NIT,D%NKT) :: ZTH_UP                        ! updraft THETA 
 REAL, DIMENSION(D%NIT)              :: ZT_UP                         ! updraft T
 REAL, DIMENSION(D%NIT)              :: ZLVOCPEXN                     ! updraft L
 REAL, DIMENSION(D%NIT)              :: ZCP                           ! updraft cp
-REAL, DIMENSION(D%NIT,D%NJT) :: ZBUO                          ! Buoyancy 
-REAL, DIMENSION(D%NIT,D%NJT) :: ZTHS_UP,ZTHSM
+REAL, DIMENSION(D%NIT,D%NKT) :: ZBUO                          ! Buoyancy 
+REAL, DIMENSION(D%NIT,D%NKT) :: ZTHS_UP,ZTHSM
 
-REAL, DIMENSION(D%NIT,D%NJT) ::  ZCOEF  ! diminution coefficient for too high clouds 
+REAL, DIMENSION(D%NIT,D%NKT) ::  ZCOEF  ! diminution coefficient for too high clouds 
                         
 REAL, DIMENSION(D%NIT)            ::  ZWTHVSURF  ! Surface w'thetav'
 
@@ -165,7 +165,7 @@ LOGICAL, DIMENSION(D%NIT) ::  GTEST,GTESTLCL,GTESTETL
 LOGICAL                          ::  GLMIX 
                                ! To choose upward or downward mixing length
 LOGICAL, DIMENSION(D%NIT)              :: GWORK1
-LOGICAL, DIMENSION(D%NIT,D%NJT) :: GWORK2
+LOGICAL, DIMENSION(D%NIT,D%NKT) :: GWORK2
 
 
 INTEGER  :: ITEST
@@ -174,7 +174,7 @@ REAL, DIMENSION(D%NIT) :: ZRC_UP, ZRI_UP, ZRV_UP, ZWP2, ZRSATW, ZRSATI
 
 LOGICAL, DIMENSION(D%NIT) :: GTEST_FER
 REAL,    DIMENSION(D%NIT) :: ZPHI,ZALIM_STAR_TOT
-REAL,    DIMENSION(D%NIT,D%NJT) :: ZDTHETASDZ,ZALIM_STAR,ZZDZ,ZZZ
+REAL,    DIMENSION(D%NIT,D%NKT) :: ZDTHETASDZ,ZALIM_STAR,ZZDZ,ZZZ
 INTEGER, DIMENSION(D%NIT) :: IALIM
 
 REAL, DIMENSION(D%NIT)              ::  ZTEST,ZDZ,ZWUP_MEAN    ! 
diff --git a/src/common/turb/mode_compute_updraft_rhcj10.F90 b/src/common/turb/mode_compute_updraft_rhcj10.F90
index f0524b89a4d9c3e7a94fb58dc4a7c474dc591400..6de2c738f2acc7f98770534d194db36554fe7eee 100644
--- a/src/common/turb/mode_compute_updraft_rhcj10.F90
+++ b/src/common/turb/mode_compute_updraft_rhcj10.F90
@@ -94,65 +94,65 @@ LOGICAL,                INTENT(IN) :: OMIXUV    ! True if mixing of momentum
 LOGICAL,                INTENT(IN)   :: ONOMIXLG  ! False if mixing of lagrangian tracer
 INTEGER,                INTENT(IN)   :: KSV_LGBEG ! first index of lag. tracer
 INTEGER,                INTENT(IN)   :: KSV_LGEND ! last  index of lag. tracer
-REAL, DIMENSION(D%NIT,D%NJT), INTENT(IN)   :: PZZ       !  Height at the flux point
-REAL, DIMENSION(D%NIT,D%NJT), INTENT(IN)   :: PDZZ      !  Metrics coefficient
+REAL, DIMENSION(D%NIT,D%NKT), INTENT(IN)   :: PZZ       !  Height at the flux point
+REAL, DIMENSION(D%NIT,D%NKT), INTENT(IN)   :: PDZZ      !  Metrics coefficient
  
 REAL, DIMENSION(D%NIT),   INTENT(IN)   ::  PSFTH,PSFRV
 ! normal surface fluxes of theta,rv,(u,v) parallel to the orography
 
-REAL, DIMENSION(D%NIT,D%NJT),   INTENT(IN) ::  PPABSM     ! Pressure at t-dt
-REAL, DIMENSION(D%NIT,D%NJT),   INTENT(IN) ::  PRHODREF   ! dry density of the
+REAL, DIMENSION(D%NIT,D%NKT),   INTENT(IN) ::  PPABSM     ! Pressure at t-dt
+REAL, DIMENSION(D%NIT,D%NKT),   INTENT(IN) ::  PRHODREF   ! dry density of the
                                                   ! reference state
-REAL, DIMENSION(D%NIT,D%NJT),   INTENT(IN) ::  PUM        ! u mean wind
-REAL, DIMENSION(D%NIT,D%NJT),   INTENT(IN) ::  PVM        ! v mean wind
-REAL, DIMENSION(D%NIT,D%NJT),   INTENT(IN) ::  PTKEM      ! TKE at t-dt
+REAL, DIMENSION(D%NIT,D%NKT),   INTENT(IN) ::  PUM        ! u mean wind
+REAL, DIMENSION(D%NIT,D%NKT),   INTENT(IN) ::  PVM        ! v mean wind
+REAL, DIMENSION(D%NIT,D%NKT),   INTENT(IN) ::  PTKEM      ! TKE at t-dt
 !
 !REAL, DIMENSION(:,:),   INTENT(IN)   ::  PEXNM       ! Exner function at t-dt
-REAL, DIMENSION(D%NIT,D%NJT),   INTENT(IN)   ::  PTHM           ! pot. temp. at t-dt
-REAL, DIMENSION(D%NIT,D%NJT),   INTENT(IN)   ::  PRVM           ! vapor mixing ratio at t-dt
-REAL, DIMENSION(D%NIT,D%NJT),   INTENT(IN)   ::  PTHLM,PRTM     ! cons. var. at t-dt
-
-REAL, DIMENSION(D%NIT,D%NJT,KSV), INTENT(IN)   ::  PSVM           ! scalar var. at t-dt
-
-REAL, DIMENSION(D%NIT,D%NJT),   INTENT(OUT)  ::  PTHL_UP,PRT_UP   ! updraft properties
-REAL, DIMENSION(D%NIT,D%NJT),   INTENT(OUT)  ::  PU_UP, PV_UP     ! updraft wind components
-REAL, DIMENSION(D%NIT,D%NJT),   INTENT(INOUT)::  PRV_UP,PRC_UP    ! updraft rv, rc
-REAL, DIMENSION(D%NIT,D%NJT),   INTENT(INOUT)::  PRI_UP           ! updraft ri
-REAL, DIMENSION(D%NIT,D%NJT),   INTENT(INOUT)::  PTHV_UP          ! updraft THv
-REAL, DIMENSION(D%NIT,D%NJT),   INTENT(INOUT)::  PW_UP,PFRAC_UP   ! updraft w, fraction
-REAL, DIMENSION(D%NIT,D%NJT),   INTENT(INOUT)::  PFRAC_ICE_UP     ! liquid/solid fraction in updraft
-REAL, DIMENSION(D%NIT,D%NJT),   INTENT(INOUT)::  PRSAT_UP         ! Rsat
-
-REAL, DIMENSION(D%NIT,D%NJT,KSV), INTENT(OUT)  ::  PSV_UP           ! updraft scalar var. 
+REAL, DIMENSION(D%NIT,D%NKT),   INTENT(IN)   ::  PTHM           ! pot. temp. at t-dt
+REAL, DIMENSION(D%NIT,D%NKT),   INTENT(IN)   ::  PRVM           ! vapor mixing ratio at t-dt
+REAL, DIMENSION(D%NIT,D%NKT),   INTENT(IN)   ::  PTHLM,PRTM     ! cons. var. at t-dt
+
+REAL, DIMENSION(D%NIT,D%NKT,KSV), INTENT(IN)   ::  PSVM           ! scalar var. at t-dt
+
+REAL, DIMENSION(D%NIT,D%NKT),   INTENT(OUT)  ::  PTHL_UP,PRT_UP   ! updraft properties
+REAL, DIMENSION(D%NIT,D%NKT),   INTENT(OUT)  ::  PU_UP, PV_UP     ! updraft wind components
+REAL, DIMENSION(D%NIT,D%NKT),   INTENT(INOUT)::  PRV_UP,PRC_UP    ! updraft rv, rc
+REAL, DIMENSION(D%NIT,D%NKT),   INTENT(INOUT)::  PRI_UP           ! updraft ri
+REAL, DIMENSION(D%NIT,D%NKT),   INTENT(INOUT)::  PTHV_UP          ! updraft THv
+REAL, DIMENSION(D%NIT,D%NKT),   INTENT(INOUT)::  PW_UP,PFRAC_UP   ! updraft w, fraction
+REAL, DIMENSION(D%NIT,D%NKT),   INTENT(INOUT)::  PFRAC_ICE_UP     ! liquid/solid fraction in updraft
+REAL, DIMENSION(D%NIT,D%NKT),   INTENT(INOUT)::  PRSAT_UP         ! Rsat
+
+REAL, DIMENSION(D%NIT,D%NKT,KSV), INTENT(OUT)  ::  PSV_UP           ! updraft scalar var. 
                                          
-REAL, DIMENSION(D%NIT,D%NJT),   INTENT(INOUT)::  PEMF,PDETR,PENTR ! Mass_flux,
+REAL, DIMENSION(D%NIT,D%NKT),   INTENT(INOUT)::  PEMF,PDETR,PENTR ! Mass_flux,
                                                           ! detrainment,entrainment
-REAL, DIMENSION(D%NIT,D%NJT),   INTENT(INOUT) :: PBUO_INTEG       ! Integrated Buoyancy 
+REAL, DIMENSION(D%NIT,D%NKT),   INTENT(INOUT) :: PBUO_INTEG       ! Integrated Buoyancy 
 INTEGER, DIMENSION(D%NIT),  INTENT(INOUT)::  KKLCL,KKETL,KKCTL! LCL, ETL, CTL                                     
 REAL, DIMENSION(D%NIT),     INTENT(OUT)   :: PDEPTH           ! Deepness of cloud
 !                       1.2  Declaration of local variables
 !
 ! Mean environment variables at t-dt at flux point
-REAL, DIMENSION(D%NIT,D%NJT) ::    ZTHM_F,ZRVM_F    ! Theta,rv of
+REAL, DIMENSION(D%NIT,D%NKT) ::    ZTHM_F,ZRVM_F    ! Theta,rv of
                                                                   ! updraft environnement
-REAL, DIMENSION(D%NIT,D%NJT) :: ZRTM_F, ZTHLM_F, ZTKEM_F      ! rt, thetal,TKE,pressure,
-REAL, DIMENSION(D%NIT,D%NJT) :: ZUM_F,ZVM_F,ZRHO_F            ! density,momentum
-REAL, DIMENSION(D%NIT,D%NJT) :: ZPRES_F,ZTHVM_F               ! interpolated at the flux point
-REAL, DIMENSION(D%NIT,D%NJT) :: ZG_O_THVREF                   ! g*ThetaV ref
-REAL, DIMENSION(D%NIT,D%NJT) :: ZW_UP2                        ! w**2  of the updraft
+REAL, DIMENSION(D%NIT,D%NKT) :: ZRTM_F, ZTHLM_F, ZTKEM_F      ! rt, thetal,TKE,pressure,
+REAL, DIMENSION(D%NIT,D%NKT) :: ZUM_F,ZVM_F,ZRHO_F            ! density,momentum
+REAL, DIMENSION(D%NIT,D%NKT) :: ZPRES_F,ZTHVM_F               ! interpolated at the flux point
+REAL, DIMENSION(D%NIT,D%NKT) :: ZG_O_THVREF                   ! g*ThetaV ref
+REAL, DIMENSION(D%NIT,D%NKT) :: ZW_UP2                        ! w**2  of the updraft
 
-REAL, DIMENSION(D%NIT,D%NJT,KSV) :: ZSVM_F ! scalar variables 
+REAL, DIMENSION(D%NIT,D%NKT,KSV) :: ZSVM_F ! scalar variables 
                         
 
                         
-REAL, DIMENSION(D%NIT,D%NJT) :: ZTH_UP                        ! updraft THETA 
+REAL, DIMENSION(D%NIT,D%NKT) :: ZTH_UP                        ! updraft THETA 
 !REAL, DIMENSION(SIZE(PTHM,1))              :: ZT_UP                         ! updraft T
 !REAL, DIMENSION(SIZE(PTHM,1))              :: ZLVOCPEXN                     ! updraft L
 !REAL, DIMENSION(SIZE(PTHM,1))              :: ZCP                           ! updraft cp
-REAL, DIMENSION(D%NIT,D%NJT) :: ZBUO                          ! Buoyancy 
+REAL, DIMENSION(D%NIT,D%NKT) :: ZBUO                          ! Buoyancy 
 !REAL, DIMENSION(SIZE(PTHM,1),SIZE(PTHM,2)) :: ZTHS_UP,ZTHSM
 
-REAL, DIMENSION(D%NIT,D%NJT) ::  ZCOEF  ! diminution coefficient for too high clouds 
+REAL, DIMENSION(D%NIT,D%NKT) ::  ZCOEF  ! diminution coefficient for too high clouds 
                         
 REAL                                       ::  ZWTHVSURF  ! Surface w'thetav'
 
@@ -170,13 +170,13 @@ LOGICAL, DIMENSION(D%NIT) ::  GTEST,GTESTLCL
 LOGICAL                          ::  GLMIX 
                                ! To choose upward or downward mixing length
 LOGICAL, DIMENSION(D%NIT)              :: GWORK1
-LOGICAL, DIMENSION(D%NIT,D%NJT) :: GWORK2
+LOGICAL, DIMENSION(D%NIT,D%NKT) :: GWORK2
 
 INTEGER  :: ITEST
 
 REAL, DIMENSION(D%NIT) :: ZRC_UP, ZRI_UP, ZRV_UP, ZRSATW, ZRSATI
 
-REAL,    DIMENSION(D%NIT,D%NJT) :: ZZDZ
+REAL,    DIMENSION(D%NIT,D%NKT) :: ZZDZ
 
 REAL, DIMENSION(D%NIT)              ::  ZTEST,ZDZ,ZWUP_MEAN    ! 
 REAL, DIMENSION(D%NIT)              ::  ZCOE,ZWCOE,ZBUCOE
@@ -189,7 +189,7 @@ REAL  :: ZDEPTH_MAX1, ZDEPTH_MAX2 ! control auto-extinction process
 
 REAL  :: ZTMAX,ZRMAX, ZEPS  ! control value
 
-REAL, DIMENSION(D%NIT,D%NJT) :: ZSHEAR,ZDUDZ,ZDVDZ ! vertical wind shear
+REAL, DIMENSION(D%NIT,D%NKT) :: ZSHEAR,ZDUDZ,ZDVDZ ! vertical wind shear
 REAL(KIND=JPRB) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('COMPUTE_UPDRAFT_RHCJ10',0,ZHOOK_HANDLE)
 
diff --git a/src/common/turb/modi_shallow_mf.F90 b/src/common/turb/modi_shallow_mf.F90
index e0fa4465041d2032768d3c683f6d2c25f6993b96..7271a8b0864437564fa5b5704a89603d5921dec9 100644
--- a/src/common/turb/modi_shallow_mf.F90
+++ b/src/common/turb/modi_shallow_mf.F90
@@ -56,48 +56,48 @@ INTEGER,                INTENT(IN)   :: KSV_LGEND ! last  index of lag. tracer
 REAL,                   INTENT(IN)   :: PIMPL_MF     ! degre of implicitness
 REAL,                   INTENT(IN)   :: PTSTEP    ! Dynamical timestep 
 
-REAL, DIMENSION(D%NIT*D%NJT,D%NKT),   INTENT(IN) ::  PZZ         ! Height of flux point
-REAL, DIMENSION(D%NIT*D%NJT,D%NKT),   INTENT(IN) ::  PDZZ        ! Metric coefficients
-REAL, DIMENSION(D%NIT*D%NJT,D%NKT),   INTENT(IN) ::  PRHODJ      ! dry density * Grid size
-REAL, DIMENSION(D%NIT*D%NJT,D%NKT),   INTENT(IN) ::  PRHODREF    ! dry density of the
+REAL, DIMENSION(D%NIT,D%NKT),   INTENT(IN) ::  PZZ         ! Height of flux point
+REAL, DIMENSION(D%NIT,D%NKT),   INTENT(IN) ::  PDZZ        ! Metric coefficients
+REAL, DIMENSION(D%NIT,D%NKT),   INTENT(IN) ::  PRHODJ      ! dry density * Grid size
+REAL, DIMENSION(D%NIT,D%NKT),   INTENT(IN) ::  PRHODREF    ! dry density of the
                                                      ! reference state
-REAL, DIMENSION(D%NIT*D%NJT,D%NKT),   INTENT(IN) ::  PPABSM      ! Pressure at time t-1
-REAL, DIMENSION(D%NIT*D%NJT,D%NKT),   INTENT(IN) ::  PEXNM       ! Exner function at t-dt
+REAL, DIMENSION(D%NIT,D%NKT),   INTENT(IN) ::  PPABSM      ! Pressure at time t-1
+REAL, DIMENSION(D%NIT,D%NKT),   INTENT(IN) ::  PEXNM       ! Exner function at t-dt
 
-REAL, DIMENSION(D%NIT*D%NJT),         INTENT(IN) ::  PSFTH,PSFRV ! normal surface fluxes of theta and Rv 
-REAL, DIMENSION(D%NIT*D%NJT,D%NKT),   INTENT(IN) ::  PTHM        ! Theta at t-dt
-REAL, DIMENSION(D%NIT*D%NJT,KRR),     INTENT(IN) ::  PRM         ! water var. at t-dt
-REAL, DIMENSION(D%NIT*D%NJT,D%NKT),   INTENT(IN) ::  PUM,PVM     ! wind components at t-dt
-REAL, DIMENSION(D%NIT*D%NJT,D%NKT),   INTENT(IN) ::  PTKEM       ! tke at t-dt
+REAL, DIMENSION(D%NIT),         INTENT(IN) ::  PSFTH,PSFRV ! normal surface fluxes of theta and Rv 
+REAL, DIMENSION(D%NIT,D%NKT),   INTENT(IN) ::  PTHM        ! Theta at t-dt
+REAL, DIMENSION(D%NIT,KRR),     INTENT(IN) ::  PRM         ! water var. at t-dt
+REAL, DIMENSION(D%NIT,D%NKT),   INTENT(IN) ::  PUM,PVM     ! wind components at t-dt
+REAL, DIMENSION(D%NIT,D%NKT),   INTENT(IN) ::  PTKEM       ! tke at t-dt
 
-REAL, DIMENSION(D%NIT*D%NJT,D%NKT,KSV), INTENT(IN) ::  PSVM        ! scalar variable a t-dt
+REAL, DIMENSION(D%NIT,D%NKT,KSV), INTENT(IN) ::  PSVM        ! scalar variable a t-dt
 
-REAL, DIMENSION(D%NIT*D%NJT,D%NKT),   INTENT(OUT)::  PDUDT_MF     ! tendency of U   by massflux scheme
-REAL, DIMENSION(D%NIT*D%NJT,D%NKT),   INTENT(OUT)::  PDVDT_MF     ! tendency of V   by massflux scheme
-REAL, DIMENSION(D%NIT*D%NJT,D%NKT),   INTENT(OUT)::  PDTHLDT_MF   ! tendency of thl by massflux scheme
-REAL, DIMENSION(D%NIT*D%NJT,D%NKT),   INTENT(OUT)::  PDRTDT_MF    ! tendency of rt  by massflux scheme
-REAL, DIMENSION(D%NIT*D%NJT,D%NKT,KSV), INTENT(OUT)::  PDSVDT_MF    ! tendency of Sv  by massflux scheme
+REAL, DIMENSION(D%NIT,D%NKT),   INTENT(OUT)::  PDUDT_MF     ! tendency of U   by massflux scheme
+REAL, DIMENSION(D%NIT,D%NKT),   INTENT(OUT)::  PDVDT_MF     ! tendency of V   by massflux scheme
+REAL, DIMENSION(D%NIT,D%NKT),   INTENT(OUT)::  PDTHLDT_MF   ! tendency of thl by massflux scheme
+REAL, DIMENSION(D%NIT,D%NKT),   INTENT(OUT)::  PDRTDT_MF    ! tendency of rt  by massflux scheme
+REAL, DIMENSION(D%NIT,D%NKT,KSV), INTENT(OUT)::  PDSVDT_MF    ! tendency of Sv  by massflux scheme
 
-REAL, DIMENSION(D%NIT*D%NJT,D%NKT),   INTENT(OUT)   ::  PSIGMF,PRC_MF,PRI_MF,PCF_MF ! cloud info for the cloud scheme
-REAL, DIMENSION(D%NIT*D%NJT,D%NKT), INTENT(OUT)     ::  PFLXZTHVMF           ! Thermal production for TKE scheme
-REAL, DIMENSION(D%NIT*D%NJT,D%NKT), INTENT(OUT)     ::  PFLXZTHMF
-REAL, DIMENSION(D%NIT*D%NJT,D%NKT), INTENT(OUT)     ::  PFLXZRMF
-REAL, DIMENSION(D%NIT*D%NJT,D%NKT), INTENT(OUT)     ::  PFLXZUMF
-REAL, DIMENSION(D%NIT*D%NJT,D%NKT), INTENT(OUT)     ::  PFLXZVMF
-REAL, DIMENSION(D%NIT*D%NJT,D%NKT), INTENT(INOUT) ::  PTHL_UP   ! Thl updraft characteristics
-REAL, DIMENSION(D%NIT*D%NJT,D%NKT), INTENT(INOUT) ::  PRT_UP    ! Rt  updraft characteristics
-REAL, DIMENSION(D%NIT*D%NJT,D%NKT), INTENT(OUT) ::  PRV_UP    ! Vapor updraft characteristics
-REAL, DIMENSION(D%NIT*D%NJT,D%NKT), INTENT(INOUT) ::  PU_UP     ! U wind updraft characteristics
-REAL, DIMENSION(D%NIT*D%NJT,D%NKT), INTENT(INOUT) ::  PV_UP     ! V wind updraft characteristics
-REAL, DIMENSION(D%NIT*D%NJT,D%NKT), INTENT(INOUT) ::  PRC_UP    ! cloud content updraft characteristics
-REAL, DIMENSION(D%NIT*D%NJT,D%NKT), INTENT(INOUT) ::  PRI_UP    ! ice content   updraft characteristics
-REAL, DIMENSION(D%NIT*D%NJT,D%NKT), INTENT(INOUT) ::  PTHV_UP   ! Thv   updraft characteristics
-REAL, DIMENSION(D%NIT*D%NJT,D%NKT), INTENT(INOUT) ::  PW_UP     ! vertical speed updraft characteristics
-REAL, DIMENSION(D%NIT*D%NJT,D%NKT), INTENT(INOUT) ::  PFRAC_UP  ! updraft fraction
-REAL, DIMENSION(D%NIT*D%NJT,D%NKT), INTENT(INOUT) ::  PEMF      ! updraft mass flux
-REAL, DIMENSION(D%NIT*D%NJT,D%NKT), INTENT(OUT) ::  PDETR     ! updraft detrainment
-REAL, DIMENSION(D%NIT*D%NJT,D%NKT), INTENT(OUT) ::  PENTR     ! updraft entrainment
-INTEGER,DIMENSION(D%NIT*D%NJT),     INTENT(OUT) :: KKLCL,KKETL,KKCTL ! level of LCL,ETL and CTL
+REAL, DIMENSION(D%NIT,D%NKT),   INTENT(OUT)   ::  PSIGMF,PRC_MF,PRI_MF,PCF_MF ! cloud info for the cloud scheme
+REAL, DIMENSION(D%NIT,D%NKT), INTENT(OUT)     ::  PFLXZTHVMF           ! Thermal production for TKE scheme
+REAL, DIMENSION(D%NIT,D%NKT), INTENT(OUT)     ::  PFLXZTHMF
+REAL, DIMENSION(D%NIT,D%NKT), INTENT(OUT)     ::  PFLXZRMF
+REAL, DIMENSION(D%NIT,D%NKT), INTENT(OUT)     ::  PFLXZUMF
+REAL, DIMENSION(D%NIT,D%NKT), INTENT(OUT)     ::  PFLXZVMF
+REAL, DIMENSION(D%NIT,D%NKT), INTENT(INOUT) ::  PTHL_UP   ! Thl updraft characteristics
+REAL, DIMENSION(D%NIT,D%NKT), INTENT(INOUT) ::  PRT_UP    ! Rt  updraft characteristics
+REAL, DIMENSION(D%NIT,D%NKT), INTENT(OUT) ::  PRV_UP    ! Vapor updraft characteristics
+REAL, DIMENSION(D%NIT,D%NKT), INTENT(INOUT) ::  PU_UP     ! U wind updraft characteristics
+REAL, DIMENSION(D%NIT,D%NKT), INTENT(INOUT) ::  PV_UP     ! V wind updraft characteristics
+REAL, DIMENSION(D%NIT,D%NKT), INTENT(INOUT) ::  PRC_UP    ! cloud content updraft characteristics
+REAL, DIMENSION(D%NIT,D%NKT), INTENT(INOUT) ::  PRI_UP    ! ice content   updraft characteristics
+REAL, DIMENSION(D%NIT,D%NKT), INTENT(INOUT) ::  PTHV_UP   ! Thv   updraft characteristics
+REAL, DIMENSION(D%NIT,D%NKT), INTENT(INOUT) ::  PW_UP     ! vertical speed updraft characteristics
+REAL, DIMENSION(D%NIT,D%NKT), INTENT(INOUT) ::  PFRAC_UP  ! updraft fraction
+REAL, DIMENSION(D%NIT,D%NKT), INTENT(INOUT) ::  PEMF      ! updraft mass flux
+REAL, DIMENSION(D%NIT,D%NKT), INTENT(OUT) ::  PDETR     ! updraft detrainment
+REAL, DIMENSION(D%NIT,D%NKT), INTENT(OUT) ::  PENTR     ! updraft entrainment
+INTEGER,DIMENSION(D%NIT),     INTENT(OUT) :: KKLCL,KKETL,KKCTL ! level of LCL,ETL and CTL
 REAL,                               INTENT(IN)  :: PDX, PDY
 
 
diff --git a/src/common/turb/shallow_mf.F90 b/src/common/turb/shallow_mf.F90
index b95f3e9d4f1392ac9ead0c2587b607dc388e12a6..d210176b1a60619586daf01ac489462ee113f17f 100644
--- a/src/common/turb/shallow_mf.F90
+++ b/src/common/turb/shallow_mf.F90
@@ -268,7 +268,7 @@ ENDIF
 !!! 5. Compute diagnostic convective cloud fraction and content
 !!!    --------------------------------------------------------
 !
-CALL COMPUTE_MF_CLOUD(D%NKA,D%NKB,D%NKE,D%NKU,D%NKL,KRR,KRRL,KRRI,&
+CALL COMPUTE_MF_CLOUD(D, CST, PARAMMF, KRR, KRRL, KRRI, &
                       HMF_CLOUD,ZFRAC_ICE,              &
                       PRC_UP,PRI_UP,PEMF,               &
                       PTHL_UP,PRT_UP,PFRAC_UP,          &