diff --git a/docs/TODO b/docs/TODO
index 3a497a2c80faa9eca027e5bafb50b398f14e7d41..a0fc5122a0890ef580290cadf4c11a12d98a1d72 100644
--- a/docs/TODO
+++ b/docs/TODO
@@ -89,4 +89,4 @@ rain_ice:
   - séparer l'avance temporelle du découpage en sous-blocs en créant une couche driver supplémentaire. Cette couche pourrait avoir différentes implémentations (filtre LLMICRO seul, filtre LLMICRO + découpage en sous-blocs, filtre LLMICRO + découpage en sous-blocs en respectant les colonnes, en passant tous les points)
   - mettre le code des interpolations linéaires et bi-linéaires dans des routines avec deux implémentations: avec et sans packing
 
-Dans shallow_mf (et toutes les routines appelées en-dessous) il faut remplacer l'utilisation des D%NIB, D%NIE, D%NIT par ce qui sera utilisé dans la turbulence
+shallow_mf_pack devrait être récrit pour appeler directement shallow_mf sans recopier les tableaux pour les changer de forme
diff --git a/src/arome/aux/mode_fill_dimphyexn.F90 b/src/arome/aux/mode_fill_dimphyexn.F90
index 433d98a0b3ea7bc00e75b1874c119619074ed546..713626623be77fd4c66933c2acb987075744999c 100644
--- a/src/arome/aux/mode_fill_dimphyexn.F90
+++ b/src/arome/aux/mode_fill_dimphyexn.F90
@@ -64,6 +64,10 @@ YDDIMPHYEX%NJT=KJT
 YDDIMPHYEX%NJB=1
 YDDIMPHYEX%NJE=KJT
 !
+YDDIMPHYEX%NIJT=KIT*KJT
+YDDIMPHYEX%NIJB=1
+YDDIMPHYEX%NIJE=KIE
+!
 YDDIMPHYEX%NKL=-1
 YDDIMPHYEX%NKT=KKT
 YDDIMPHYEX%NKA=KKT
diff --git a/src/common/aux/modd_dimphyexn.F90 b/src/common/aux/modd_dimphyexn.F90
index d7493616a103843aaa48c917a9abab65b8d2f587..ecdcdc9853eb08f74b92e313313176dfd1d826d4 100644
--- a/src/common/aux/modd_dimphyexn.F90
+++ b/src/common/aux/modd_dimphyexn.F90
@@ -70,6 +70,10 @@ TYPE DIMPHYEX_t
   INTEGER :: NJBC  ! = NIB/NJC/NIE/NJE in all schemes
   INTEGER :: NIEC  ! except in turbulence where external HALO points must be
   INTEGER :: NJEC  ! included so NIBC=NJBC=1 and NIEC/NJEC=NIT/NJT
+  !
+  INTEGER :: NIJT  ! NIT*NJT for horizontal packing
+  INTEGER :: NIJB  ! First horizontal inner mass point index
+  INTEGER :: NIJE  ! Last horizontal inner mass point index
 !
 END TYPE DIMPHYEX_t
 !
diff --git a/src/common/turb/mode_compute_bl89_ml.F90 b/src/common/turb/mode_compute_bl89_ml.F90
index 8a8449608426da7b4f40f19053268cde75d8d0f6..78fce621f169d4d6d32bbf976d28c99f346232fb 100644
--- a/src/common/turb/mode_compute_bl89_ml.F90
+++ b/src/common/turb/mode_compute_bl89_ml.F90
@@ -55,25 +55,25 @@ IMPLICIT NONE
 TYPE(DIMPHYEX_t),       INTENT(IN)   :: D
 TYPE(CST_t),            INTENT(IN)   :: CST
 TYPE(CSTURB_t),         INTENT(IN)   :: CSTURB
-REAL, DIMENSION(D%NIT,D%NKT),   INTENT(IN)  :: PDZZ2D        ! height difference between two mass levels
-REAL, DIMENSION(D%NIT),     INTENT(IN)  :: PTKEM_DEP     ! TKE to consume
-REAL, DIMENSION(D%NIT),     INTENT(IN)  :: PG_O_THVREF   ! g/ThetaVRef at the departure point
-REAL, DIMENSION(D%NIT,D%NKT),   INTENT(IN)  :: PVPT          ! ThetaV on mass levels
+REAL, DIMENSION(D%NIJT,D%NKT),   INTENT(IN)  :: PDZZ2D        ! height difference between two mass levels
+REAL, DIMENSION(D%NIJT),     INTENT(IN)  :: PTKEM_DEP     ! TKE to consume
+REAL, DIMENSION(D%NIJT),     INTENT(IN)  :: PG_O_THVREF   ! g/ThetaVRef at the departure point
+REAL, DIMENSION(D%NIJT,D%NKT),   INTENT(IN)  :: PVPT          ! ThetaV on mass levels
 INTEGER,                INTENT(IN)  :: KK            ! index of departure level
 LOGICAL,                INTENT(IN)  :: OUPORDN       ! switch to compute upward (true) or
                                                      !   downward (false) mixing length
 LOGICAL,                INTENT(IN)  :: OFLUX         ! Computation must be done from flux level
-REAL, DIMENSION(D%NIT),     INTENT(OUT) :: PLWORK        ! Resulting mixing length
-REAL, DIMENSION(D%NIT,D%NKT),   INTENT(IN)  :: PSHEAR        ! vertical wind shear for RM17 mixing length
+REAL, DIMENSION(D%NIJT),     INTENT(OUT) :: PLWORK        ! Resulting mixing length
+REAL, DIMENSION(D%NIJT,D%NKT),   INTENT(IN)  :: PSHEAR        ! vertical wind shear for RM17 mixing length
 
 !          0.2 Local variable
 !
-REAL, DIMENSION(D%NIT) :: ZLWORK1,ZLWORK2 ! Temporary mixing length
-REAL, DIMENSION(D%NIT) :: ZINTE,ZPOTE     ! TKE and potential energy
+REAL, DIMENSION(D%NIJT) :: ZLWORK1,ZLWORK2 ! Temporary mixing length
+REAL, DIMENSION(D%NIJT) :: ZINTE,ZPOTE     ! TKE and potential energy
                                                  !   between 2 levels
-REAL, DIMENSION(D%NIT) :: ZVPT_DEP        ! Thetav on departure point
+REAL, DIMENSION(D%NIJT) :: ZVPT_DEP        ! Thetav on departure point
 !
-REAL, DIMENSION(D%NIT,D%NKT) :: ZDELTVPT,ZHLVPT                                
+REAL, DIMENSION(D%NIJT,D%NKT) :: ZDELTVPT,ZHLVPT                                
                       !Virtual Potential Temp at Half level and DeltaThv between
                       !2 mass levels
 
@@ -113,7 +113,7 @@ IF (OUPORDN.EQV..TRUE.) THEN
  IF(OFLUX)THEN
    ZVPT_DEP(:)=ZHLVPT(:,KK) ! departure point is on flux level
    !We must compute what happens between flux level KK and mass level KK
-   DO J1D=1,D%NIT
+   DO J1D=D%NIJB,D%NIJE
      ZTEST0=0.5+SIGN(0.5,ZINTE(J1D)) ! test if there's energy to consume
      ! Energy consumed if parcel cross the entire layer
      ZPOTE(J1D) = ZTEST0*(PG_O_THVREF(J1D)      *      &
@@ -147,7 +147,7 @@ IF (OUPORDN.EQV..TRUE.) THEN
  DO JKK=KK+D%NKL,D%NKE,D%NKL
     IF(ZTESTM > 0.) THEN
       ZTESTM=0
-      DO J1D=1,D%NIT
+      DO J1D=D%NIJB,D%NIJE
         ZTEST0=0.5+SIGN(0.5,ZINTE(J1D))
         ZPOTE(J1D) = ZTEST0*(PG_O_THVREF(J1D)      *      &
             (ZHLVPT(J1D,JKK) - ZVPT_DEP(J1D))   &
@@ -186,7 +186,7 @@ IF (OUPORDN.EQV..FALSE.) THEN
  DO JKK=KK,D%NKB,-D%NKL
     IF(ZTESTM > 0.) THEN
       ZTESTM=0
-      DO J1D=1,D%NIT
+      DO J1D=D%NIJB,D%NIJE
         ZTEST0=0.5+SIGN(0.5,ZINTE(J1D))
          ZPOTE(J1D) = ZTEST0*(-PG_O_THVREF(J1D)      *      &
             (ZHLVPT(J1D,JKK) - PVPT(J1D,KK)) &
diff --git a/src/common/turb/mode_compute_function_thermo_mf.F90 b/src/common/turb/mode_compute_function_thermo_mf.F90
index 265a8c5cd77fd8425d3b17ce6dd0ac3b3b077120..4538f7191f2c275db007112529df99210e72498a 100644
--- a/src/common/turb/mode_compute_function_thermo_mf.F90
+++ b/src/common/turb/mode_compute_function_thermo_mf.F90
@@ -66,21 +66,21 @@ 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(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(D%NIJT,D%NKT), INTENT(IN)   :: PTH      ! theta
+REAL, DIMENSION(D%NIJT,D%NKT,KRR), INTENT(IN) :: PR       ! water species
+REAL, DIMENSION(D%NIJT,D%NKT)  , INTENT(IN) :: PPABS,PEXN    ! pressure, Exner funct.
+REAL, DIMENSION(D%NIJT,D%NKT)  , INTENT(IN) :: PFRAC_ICE     ! ice fraction
 
-REAL, DIMENSION(D%NIT,D%NKT), INTENT(OUT)   :: PT      ! temperature
+REAL, DIMENSION(D%NIJT,D%NKT), INTENT(OUT)   :: PT      ! temperature
 
-REAL, DIMENSION(D%NIT,D%NKT), INTENT(OUT)  ::  PAMOIST,PATHETA
+REAL, DIMENSION(D%NIJT,D%NKT), INTENT(OUT)  ::  PAMOIST,PATHETA
 !
 !-------------------------------------------------------------------------------
 ! 
 !*       0.2   Declarations of local variables
 !
 REAL                :: ZEPS         ! XMV / XMD
-REAL, DIMENSION(D%NIT,D%NKT) ::       &
+REAL, DIMENSION(D%NIJT,D%NKT) ::       &
           ZCP,                        &  ! Cp 
           ZE,                         &  ! Saturation mixing ratio
           ZDEDT,                      &  ! Saturation mixing ratio derivative
@@ -90,7 +90,7 @@ REAL, DIMENSION(D%NIT,D%NKT) ::       &
           ZATHETA_I,                  &  !
           ZLVOCP,ZLSOCP
 
-INTEGER             :: JRR
+INTEGER             :: JRR, JI, JK
 REAL(KIND=JPRB) :: ZHOOK_HANDLE
 !
 !-------------------------------------------------------------------------------
@@ -104,115 +104,133 @@ IF (LHOOK) CALL DR_HOOK('COMPUTE_FUNCTION_THERMO_MF',0,ZHOOK_HANDLE)
 !
 ZCP=CST%XCPD
 
-IF (KRR > 0) ZCP(:,:) = ZCP(:,:) + CST%XCPV * PR(:,:,1)
+IF (KRR > 0) THEN
+  !$mnh_expand_array(JI=D%NIJB:D%NIJE,JK=D%NKTB:D%NKTE)
+  ZCP(D%NIJB:D%NIJE,D%NKTB:D%NKTE) = ZCP(D%NIJB:D%NIJE,D%NKTB:D%NKTE) + CST%XCPV * PR(D%NIJB:D%NIJE,D%NKTB:D%NKTE,1)
+  !$mnh_end_expand_array(JI=D%NIJB:D%NIJE,JK=D%NKTB:D%NKTE)
+ENDIF
 
 DO JRR = 2,1+KRRL  ! loop on the liquid components  
-   ZCP(:,:)  = ZCP(:,:) + CST%XCL * PR(:,:,JRR)
+   !$mnh_expand_array(JI=D%NIJB:D%NIJE,JK=D%NKTB:D%NKTE)
+   ZCP(D%NIJB:D%NIJE,D%NKTB:D%NKTE)  = ZCP(D%NIJB:D%NIJE,D%NKTB:D%NKTE) + CST%XCL * PR(D%NIJB:D%NIJE,D%NKTB:D%NKTE,JRR)
+   !$mnh_end_expand_array(JI=D%NIJB:D%NIJE,JK=D%NKTB:D%NKTE)
 END DO
 
-DO JRR = 2+KRRL,1+KRRL+KRRI ! loop on the solid components   
-  ZCP(:,:)  = ZCP(:,:)  + CST%XCI * PR(:,:,JRR)
+DO JRR = 2+KRRL,1+KRRL+KRRI ! loop on the solid components
+  !$mnh_expand_array(JI=D%NIJB:D%NIJE,JK=D%NKTB:D%NKTE)
+  ZCP(D%NIJB:D%NIJE,D%NKTB:D%NKTE)  = ZCP(D%NIJB:D%NIJE,D%NKTB:D%NKTE)  + CST%XCI * PR(D%NIJB:D%NIJE,D%NKTB:D%NKTE,JRR)
+  !$mnh_end_expand_array(JI=D%NIJB:D%NIJE,JK=D%NKTB:D%NKTE)
 END DO
 
 !*      Temperature
 !
-PT(:,:) =  PTH(:,:) * PEXN(:,:)
+!$mnh_expand_array(JI=D%NIJB:D%NIJE,JK=D%NKTB:D%NKTE)
+PT(D%NIJB:D%NIJE,D%NKTB:D%NKTE) =  PTH(D%NIJB:D%NIJE,D%NKTB:D%NKTE) * PEXN(D%NIJB:D%NIJE,D%NKTB:D%NKTE)
+!$mnh_end_expand_array(JI=D%NIJB:D%NIJE,JK=D%NKTB:D%NKTE)
 !
 !
 !! Liquid water
 !
 IF ( KRRL >= 1 ) THEN 
-!
-!*       Lv/Cph 
-!
-  ZLVOCP(:,:) = (CST%XLVTT + (CST%XCPV-CST%XCL) *  (PT(:,:)-CST%XTT) ) / ZCP(:,:)
-!
-!*      Saturation vapor pressure with respect to water
-!
-  ZE(:,:) =  EXP( CST%XALPW - CST%XBETAW/PT(:,:) - CST%XGAMW*ALOG( PT(:,:) ) )
-!
-!*      Saturation  mixing ratio with respect to water
-!
-  ZE(:,:) =  ZE(:,:) * ZEPS / ( PPABS(:,:) - ZE(:,:) )
-!
-!*      Compute the saturation mixing ratio derivative (rvs')
-!
-  ZDEDT(:,:) = ( CST%XBETAW / PT(:,:)  - CST%XGAMW ) / PT(:,:)   &
-                 * ZE(:,:) * ( 1. + ZE(:,:) / ZEPS )
-!
-!*      Compute Amoist
-!
-  ZAMOIST_W(:,:)=  0.5 / ( 1.0 + ZDEDT(:,:) * ZLVOCP(:,:) )
-!
-!*      Compute Atheta
-!
-  ZATHETA_W(:,:)= ZAMOIST_W(:,:) * PEXN(:,:) *                          &
-        ( ( ZE(:,:) - PR(:,:,1) ) * ZLVOCP(:,:) /                    &
-          ( 1. + ZDEDT(:,:) * ZLVOCP(:,:) )           *              &
+  !$mnh_expand_array(JI=D%NIJB:D%NIJE,JK=D%NKTB:D%NKTE)
+  !
+  !*       Lv/Cph 
+  !
+  ZLVOCP(D%NIJB:D%NIJE,D%NKTB:D%NKTE) = (CST%XLVTT + (CST%XCPV-CST%XCL) *  (PT(D%NIJB:D%NIJE,D%NKTB:D%NKTE)-CST%XTT) ) / &
+                                      & ZCP(D%NIJB:D%NIJE,D%NKTB:D%NKTE)
+  !
+  !*      Saturation vapor pressure with respect to water
+  !
+  ZE(D%NIJB:D%NIJE,D%NKTB:D%NKTE) =  EXP(CST%XALPW - CST%XBETAW/PT(D%NIJB:D%NIJE,D%NKTB:D%NKTE) - &
+                                        &CST%XGAMW*ALOG( PT(D%NIJB:D%NIJE,D%NKTB:D%NKTE) ) )
+  !
+  !*      Saturation  mixing ratio with respect to water
+  !
+  ZE(D%NIJB:D%NIJE,D%NKTB:D%NKTE) =  ZE(D%NIJB:D%NIJE,D%NKTB:D%NKTE) * ZEPS / &
+                                  & ( PPABS(D%NIJB:D%NIJE,D%NKTB:D%NKTE) - ZE(D%NIJB:D%NIJE,D%NKTB:D%NKTE) )
+  !
+  !*      Compute the saturation mixing ratio derivative (rvs')
+  !
+  ZDEDT(D%NIJB:D%NIJE,D%NKTB:D%NKTE) = (CST%XBETAW/PT(D%NIJB:D%NIJE,D%NKTB:D%NKTE)  - CST%XGAMW) / PT(D%NIJB:D%NIJE,D%NKTB:D%NKTE)&
+                 * ZE(D%NIJB:D%NIJE,D%NKTB:D%NKTE) * ( 1. + ZE(D%NIJB:D%NIJE,D%NKTB:D%NKTE) / ZEPS )
+  !
+  !*      Compute Amoist
+  !
+  ZAMOIST_W(D%NIJB:D%NIJE,D%NKTB:D%NKTE)=  0.5 / ( 1.0 + ZDEDT(D%NIJB:D%NIJE,D%NKTB:D%NKTE) * ZLVOCP(D%NIJB:D%NIJE,D%NKTB:D%NKTE) )
+  !
+  !*      Compute Atheta
+  !
+  ZATHETA_W(D%NIJB:D%NIJE,D%NKTB:D%NKTE)= ZAMOIST_W(D%NIJB:D%NIJE,D%NKTB:D%NKTE) * PEXN(D%NIJB:D%NIJE,D%NKTB:D%NKTE) *         &
+        ( ( ZE(D%NIJB:D%NIJE,D%NKTB:D%NKTE) - PR(D%NIJB:D%NIJE,D%NKTB:D%NKTE,1) ) * ZLVOCP(D%NIJB:D%NIJE,D%NKTB:D%NKTE) /      &
+          ( 1. + ZDEDT(D%NIJB:D%NIJE,D%NKTB:D%NKTE) * ZLVOCP(D%NIJB:D%NIJE,D%NKTB:D%NKTE) )           *              &
           (                                                             &
-           ZE(:,:) * (1. + ZE(:,:)/ZEPS)                                &
-                        * ( -2.*CST%XBETAW/PT(:,:) + CST%XGAMW ) / PT(:,:)**2   &
-          +ZDEDT(:,:) * (1. + 2. * ZE(:,:)/ZEPS)                        &
-                        * ( CST%XBETAW/PT(:,:) - CST%XGAMW ) / PT(:,:)          &
+           ZE(D%NIJB:D%NIJE,D%NKTB:D%NKTE) * (1. + ZE(D%NIJB:D%NIJE,D%NKTB:D%NKTE)/ZEPS)                                &
+                        * ( -2.*CST%XBETAW/PT(D%NIJB:D%NIJE,D%NKTB:D%NKTE) + CST%XGAMW ) / PT(D%NIJB:D%NIJE,D%NKTB:D%NKTE)**2   &
+          +ZDEDT(D%NIJB:D%NIJE,D%NKTB:D%NKTE) * (1. + 2. * ZE(D%NIJB:D%NIJE,D%NKTB:D%NKTE)/ZEPS)                        &
+                        * ( CST%XBETAW/PT(D%NIJB:D%NIJE,D%NKTB:D%NKTE) - CST%XGAMW ) / PT(D%NIJB:D%NIJE,D%NKTB:D%NKTE)          &
           )                                                             &
-         - ZDEDT(:,:)                                                   &
+         - ZDEDT(D%NIJB:D%NIJE,D%NKTB:D%NKTE)                                                   &
         )
-
-!
-!! Solid water
-!
+  !$mnh_end_expand_array(JI=D%NIJB:D%NIJE,JK=D%NKTB:D%NKTE)
+  !
+  !! Solid water
+  !
   IF ( KRRI >= 1 ) THEN 
-
-!
-!*       Ls/Cph 
-!
-    ZLSOCP(:,:) = (CST%XLSTT + (CST%XCPV-CST%XCI) *  (PT(:,:)-CST%XTT) ) / ZCP(:,:)
-!
-!*      Saturation vapor pressure with respect to ice
-!
-    ZE(:,:) =  EXP( CST%XALPI - CST%XBETAI/PT(:,:) - CST%XGAMI*ALOG( PT(:,:) ) )
-!
-!*      Saturation  mixing ratio with respect to ice
-!
-    ZE(:,:) =  ZE(:,:) * ZEPS / ( PPABS(:,:) - ZE(:,:) )
-!
-!*      Compute the saturation mixing ratio derivative (rvs')
-!
-    ZDEDT(:,:) = ( CST%XBETAI / PT(:,:)  - CST%XGAMI ) / PT(:,:)   &
-                   * ZE(:,:) * ( 1. + ZE(:,:) / ZEPS )
-!
-!*      Compute Amoist
-!
-    ZAMOIST_I(:,:)=  0.5 / ( 1.0 + ZDEDT(:,:) * ZLSOCP(:,:) )
-!
-!*      Compute Atheta
-!
-    ZATHETA_I(:,:)= ZAMOIST_I(:,:) * PEXN(:,:) *                        &
-        ( ( ZE(:,:) - PR(:,:,1) ) * ZLSOCP(:,:) /                    &
-          ( 1. + ZDEDT(:,:) * ZLSOCP(:,:) )           *              &
+    !$mnh_expand_array(JI=D%NIJB:D%NIJE,JK=D%NKTB:D%NKTE)
+    !
+    !*       Ls/Cph 
+    !
+    ZLSOCP(D%NIJB:D%NIJE,D%NKTB:D%NKTE) = (CST%XLSTT + (CST%XCPV-CST%XCI) *  (PT(D%NIJB:D%NIJE,D%NKTB:D%NKTE)-CST%XTT) ) / &
+                                        & ZCP(D%NIJB:D%NIJE,D%NKTB:D%NKTE)
+    !
+    !*      Saturation vapor pressure with respect to ice
+    !
+    ZE(D%NIJB:D%NIJE,D%NKTB:D%NKTE) =  EXP(CST%XALPI - CST%XBETAI/PT(D%NIJB:D%NIJE,D%NKTB:D%NKTE) - &
+                                          &CST%XGAMI*ALOG( PT(D%NIJB:D%NIJE,D%NKTB:D%NKTE) ) )
+    !
+    !*      Saturation  mixing ratio with respect to ice
+    !
+    ZE(D%NIJB:D%NIJE,D%NKTB:D%NKTE) =  ZE(D%NIJB:D%NIJE,D%NKTB:D%NKTE) * ZEPS / &
+                                    & ( PPABS(D%NIJB:D%NIJE,D%NKTB:D%NKTE) - ZE(D%NIJB:D%NIJE,D%NKTB:D%NKTE) )
+    !
+    !*      Compute the saturation mixing ratio derivative (rvs')
+    !
+    ZDEDT(D%NIJB:D%NIJE,D%NKTB:D%NKTE) = (CST%XBETAI/PT(D%NIJB:D%NIJE,D%NKTB:D%NKTE) - CST%XGAMI) /PT(D%NIJB:D%NIJE,D%NKTB:D%NKTE)&
+                   * ZE(D%NIJB:D%NIJE,D%NKTB:D%NKTE) * ( 1. + ZE(D%NIJB:D%NIJE,D%NKTB:D%NKTE) / ZEPS )
+    !
+    !*      Compute Amoist
+    !
+    ZAMOIST_I(D%NIJB:D%NIJE,D%NKTB:D%NKTE)=  0.5/(1.0 + ZDEDT(D%NIJB:D%NIJE,D%NKTB:D%NKTE) * ZLSOCP(D%NIJB:D%NIJE,D%NKTB:D%NKTE))
+    !
+    !*      Compute Atheta
+    !
+    ZATHETA_I(D%NIJB:D%NIJE,D%NKTB:D%NKTE)= ZAMOIST_I(D%NIJB:D%NIJE,D%NKTB:D%NKTE) * PEXN(D%NIJB:D%NIJE,D%NKTB:D%NKTE) *        &
+        ( ( ZE(D%NIJB:D%NIJE,D%NKTB:D%NKTE) - PR(D%NIJB:D%NIJE,D%NKTB:D%NKTE,1) ) * ZLSOCP(D%NIJB:D%NIJE,D%NKTB:D%NKTE) /       &
+          ( 1. + ZDEDT(D%NIJB:D%NIJE,D%NKTB:D%NKTE) * ZLSOCP(D%NIJB:D%NIJE,D%NKTB:D%NKTE) )           *              &
           (                                                             &
-           ZE(:,:) * (1. + ZE(:,:)/ZEPS)                                &
-                        * ( -2.*CST%XBETAI/PT(:,:) + CST%XGAMI ) / PT(:,:)**2   &
-          +ZDEDT(:,:) * (1. + 2. * ZE(:,:)/ZEPS)                        &
-                        * ( CST%XBETAI/PT(:,:) - CST%XGAMI ) / PT(:,:)          &
+           ZE(D%NIJB:D%NIJE,D%NKTB:D%NKTE) * (1. + ZE(D%NIJB:D%NIJE,D%NKTB:D%NKTE)/ZEPS)                                &
+                        * ( -2.*CST%XBETAI/PT(D%NIJB:D%NIJE,D%NKTB:D%NKTE) + CST%XGAMI ) / PT(D%NIJB:D%NIJE,D%NKTB:D%NKTE)**2   &
+          +ZDEDT(D%NIJB:D%NIJE,D%NKTB:D%NKTE) * (1. + 2. * ZE(D%NIJB:D%NIJE,D%NKTB:D%NKTE)/ZEPS)                        &
+                        * ( CST%XBETAI/PT(D%NIJB:D%NIJE,D%NKTB:D%NKTE) - CST%XGAMI ) / PT(D%NIJB:D%NIJE,D%NKTB:D%NKTE)          &
           )                                                             &
-         - ZDEDT(:,:)                                                   &
+         - ZDEDT(D%NIJB:D%NIJE,D%NKTB:D%NKTE)                                                   &
         )
-
+    !$mnh_end_expand_array(JI=D%NIJB:D%NIJE,JK=D%NKTB:D%NKTE)
   ELSE
-    ZAMOIST_I(:,:)=0.
-    ZATHETA_I(:,:)=0.
+    ZAMOIST_I(D%NIJB:D%NIJE,D%NKTB:D%NKTE)=0.
+    ZATHETA_I(D%NIJB:D%NIJE,D%NKTB:D%NKTE)=0.
   ENDIF
 
-  PAMOIST(:,:) = (1.0-PFRAC_ICE(:,:))*ZAMOIST_W(:,:) &
-                         +PFRAC_ICE(:,:) *ZAMOIST_I(:,:)
-  PATHETA(:,:) = (1.0-PFRAC_ICE(:,:))*ZATHETA_W(:,:) &
-                         +PFRAC_ICE(:,:) *ZATHETA_I(:,:)
-
-!
+  !$mnh_expand_array(JI=D%NIJB:D%NIJE,JK=D%NKTB:D%NKTE)
+  PAMOIST(D%NIJB:D%NIJE,D%NKTB:D%NKTE) = (1.0-PFRAC_ICE(D%NIJB:D%NIJE,D%NKTB:D%NKTE))*ZAMOIST_W(D%NIJB:D%NIJE,D%NKTB:D%NKTE) &
+                         +PFRAC_ICE(D%NIJB:D%NIJE,D%NKTB:D%NKTE) *ZAMOIST_I(D%NIJB:D%NIJE,D%NKTB:D%NKTE)
+  PATHETA(D%NIJB:D%NIJE,D%NKTB:D%NKTE) = (1.0-PFRAC_ICE(D%NIJB:D%NIJE,D%NKTB:D%NKTE))*ZATHETA_W(D%NIJB:D%NIJE,D%NKTB:D%NKTE) &
+                         +PFRAC_ICE(D%NIJB:D%NIJE,D%NKTB:D%NKTE) *ZATHETA_I(D%NIJB:D%NIJE,D%NKTB:D%NKTE)
+  !$mnh_end_expand_array(JI=D%NIJB:D%NIJE,JK=D%NKTB:D%NKTE)
+  !
 ELSE
-  PAMOIST(:,:) = 0.
-  PATHETA(:,:) = 0.
+  PAMOIST(D%NIJB:D%NIJE,D%NKTB:D%NKTE) = 0.
+  PATHETA(D%NIJB:D%NIJE,D%NKTB:D%NKTE) = 0.
 ENDIF
 IF (LHOOK) CALL DR_HOOK('COMPUTE_FUNCTION_THERMO_MF',1,ZHOOK_HANDLE)
 END SUBROUTINE COMPUTE_FUNCTION_THERMO_MF
diff --git a/src/common/turb/mode_compute_mf_cloud.F90 b/src/common/turb/mode_compute_mf_cloud.F90
index 5ed752cb5bec17b56f9e98c53f5b2e785e346c50..926d415523c54fb2bc08b1b080c8a46b1e8d4b8d 100644
--- a/src/common/turb/mode_compute_mf_cloud.F90
+++ b/src/common/turb/mode_compute_mf_cloud.F90
@@ -86,24 +86,24 @@ 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(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
+REAL, DIMENSION(D%NIJT,D%NKT),   INTENT(IN)   ::  PFRAC_ICE    ! liquid/ice fraction
+REAL, DIMENSION(D%NIJT,D%NKT),   INTENT(IN)   ::  PRC_UP,PRI_UP,PEMF! updraft characteritics
+REAL, DIMENSION(D%NIJT,D%NKT),   INTENT(IN)   ::  PTHL_UP, PRT_UP   ! rc,w,Mass Flux,Thetal,rt
+REAL, DIMENSION(D%NIJT,D%NKT),   INTENT(IN)   ::  PFRAC_UP          ! Updraft Fraction
+REAL, DIMENSION(D%NIJT,D%NKT),   INTENT(IN)   ::  PTHV_UP           ! updraft thetaV
+REAL, DIMENSION(D%NIJT,D%NKT),   INTENT(IN)   ::  PFRAC_ICE_UP      ! liquid/solid fraction in updraft
+REAL, DIMENSION(D%NIJT,D%NKT),   INTENT(IN)   ::  PRSAT_UP          ! Rsat in updraft
+REAL, DIMENSION(D%NIJT,D%NKT),   INTENT(IN)   ::  PEXNM             ! exner function
+REAL, DIMENSION(D%NIJT,D%NKT),   INTENT(IN)   ::  PTHLM, PRTM       ! cons. var. at t-dt
+REAL, DIMENSION(D%NIJT,D%NKT),   INTENT(IN)   ::  PTHM, PTHVM       ! theta and thetaV
+REAL, DIMENSION(D%NIJT,D%NKT,KRR), INTENT(IN)   ::  PRM               ! water var. at t-dt
+REAL, DIMENSION(D%NIJT,D%NKT),   INTENT(IN)   ::  PDZZ, PZZ
+INTEGER, DIMENSION(D%NIJT),  INTENT(IN)   ::  KKLCL             ! index of updraft condensation level
+REAL, DIMENSION(D%NIJT,D%NKT),   INTENT(IN)   ::  PPABSM, PRHODREF  ! environement
+REAL, DIMENSION(D%NIJT,D%NKT),   INTENT(OUT)  ::  PRC_MF, PRI_MF    ! cloud content (INPUT=environment, OUTPUT=conv. cloud)
+REAL, DIMENSION(D%NIJT,D%NKT),   INTENT(OUT)  ::  PCF_MF            ! and cloud fraction for MF scheme
+REAL, DIMENSION(D%NIJT,D%NKT),   INTENT(OUT)  ::  PSIGMF            ! SQRT(variance) for statistical cloud scheme
+REAL, DIMENSION(D%NIJT),     INTENT(IN)   ::  PDEPTH            ! Deepness of cloud
 
 !
 !                       1.2  Declaration of local variables
diff --git a/src/common/turb/mode_compute_mf_cloud_bigaus.F90 b/src/common/turb/mode_compute_mf_cloud_bigaus.F90
index 180532c20cab2bf81bc79b47634932894c890f6f..b4153303b6e97173d96266d934d47dcacc7389b1 100644
--- a/src/common/turb/mode_compute_mf_cloud_bigaus.F90
+++ b/src/common/turb/mode_compute_mf_cloud_bigaus.F90
@@ -73,30 +73,30 @@ IMPLICIT NONE
 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
+REAL, DIMENSION(D%NIJT,D%NKT),   INTENT(IN)   :: PEMF                    ! updraft characteritics
+REAL, DIMENSION(D%NIJT),     INTENT(IN)   :: PDEPTH                  ! Deepness of cloud
+REAL, DIMENSION(D%NIJT,D%NKT),   INTENT(IN)   :: PTHV_UP, PRSAT_UP, PRT_UP ! updraft characteritics
+REAL, DIMENSION(D%NIJT,D%NKT),   INTENT(IN)   :: PFRAC_ICE_UP            ! liquid/ice fraction in updraft
+REAL, DIMENSION(D%NIJT,D%NKT),   INTENT(IN)   :: PTHM, PRTM, PTHVM       ! env. var. at t-dt
+REAL, DIMENSION(D%NIJT,D%NKT),   INTENT(IN)   :: PDZZ, PZZ
+REAL, DIMENSION(D%NIJT,D%NKT),   INTENT(IN)   :: PRHODREF
+REAL, DIMENSION(D%NIJT,D%NKT),   INTENT(OUT)  :: PRC_MF, PRI_MF          ! cloud content
+REAL, DIMENSION(D%NIJT,D%NKT),   INTENT(OUT)  :: PCF_MF                  ! and cloud fraction for MF scheme
 !
 !*                    0.1  Declaration of local variables
 !
 !
-REAL, DIMENSION(D%NIT,D%NKT) :: ZGRAD_Z_RT, &            !
+REAL, DIMENSION(D%NIJT,D%NKT) :: ZGRAD_Z_RT, &            !
                                             & ZALPHA_UP_M, &           ! Variables used to compute variance
                                             & ZSIGMF                   ! and sqrt(variance)
-REAL, DIMENSION(D%NIT)              :: ZOMEGA_UP_M              !
-REAL, DIMENSION(D%NIT,D%NKT) :: ZW1 ! working array
+REAL, DIMENSION(D%NIJT)              :: ZOMEGA_UP_M              !
+REAL, DIMENSION(D%NIJT,D%NKT) :: ZW1 ! working array
 INTEGER                                    :: JI, JK  ! loop control
-REAL, DIMENSION(D%NIT,D%NKT) :: ZEMF_M, ZTHV_UP_M, &   !
+REAL, DIMENSION(D%NIJT,D%NKT) :: ZEMF_M, ZTHV_UP_M, &   !
                                             & ZRSAT_UP_M, ZRT_UP_M,& ! Interpolation on mass points
                                             & ZFRAC_ICE_UP_M         !
-REAL, DIMENSION(D%NIT,D%NKT) :: ZCOND ! condensate
-REAL, DIMENSION(D%NIT,D%NKT) :: ZA, ZGAM ! used for integration
+REAL, DIMENSION(D%NIJT,D%NKT) :: ZCOND ! condensate
+REAL, DIMENSION(D%NIJT,D%NKT) :: ZA, ZGAM ! used for integration
 REAL(KIND=JPRB) :: ZHOOK_HANDLE
 
 IF (LHOOK) CALL DR_HOOK('COMPUTE_MF_CLOUD_BIGAUS',0,ZHOOK_HANDLE)
@@ -122,69 +122,69 @@ CALL MZF_MF(D, PFRAC_ICE_UP(:,:), ZFRAC_ICE_UP_M(:,:))
 !computation of omega star up
 ZOMEGA_UP_M(:)=0.
 DO JK=D%NKB,D%NKE-D%NKL,D%NKL
-  !$mnh_expand_array(JI=D%NIB:D%NIE)
+  !$mnh_expand_array(JI=D%NIJB:D%NIJE)
   !Vertical integration over the entire column but only buoyant points are used
-  !ZOMEGA_UP_M(D%NIB:D%NIE)=ZOMEGA_UP_M(D%NIB:D%NIE) + &
-  !                ZEMF_M(D%NIB:D%NIE,JK) * &
-  !                MAX(0.,(ZTHV_UP_M(D%NIB:D%NIE,JK)-PTHVM(D%NIB:D%NIE,JK))) * &
-  !                (PZZ(D%NIB:D%NIE,JK+KKL)-PZZ(D%NIB:D%NIE,JK)) / &
-  !                (PTHM(D%NIB:D%NIE,JK) * PRHODREF(D%NIB:D%NIE,JK))
+  !ZOMEGA_UP_M(D%NIJB:D%NIJE)=ZOMEGA_UP_M(D%NIJB:D%NIJE) + &
+  !                ZEMF_M(D%NIJB:D%NIJE,JK) * &
+  !                MAX(0.,(ZTHV_UP_M(D%NIJB:D%NIJE,JK)-PTHVM(D%NIJB:D%NIJE,JK))) * &
+  !                (PZZ(D%NIJB:D%NIJE,JK+KKL)-PZZ(D%NIJB:D%NIJE,JK)) / &
+  !                (PTHM(D%NIJB:D%NIJE,JK) * PRHODREF(D%NIJB:D%NIJE,JK))
 
   !Vertical integration over the entire column
-  ZOMEGA_UP_M(D%NIB:D%NIE)=ZOMEGA_UP_M(D%NIB:D%NIE) + &
-                 ZEMF_M(D%NIB:D%NIE,JK) * &
-                 (ZTHV_UP_M(D%NIB:D%NIE,JK)-PTHVM(D%NIB:D%NIE,JK)) * &
-                 (PZZ(D%NIB:D%NIE,JK+D%NKL)-PZZ(D%NIB:D%NIE,JK)) / &
-                 (PTHM(D%NIB:D%NIE,JK) * PRHODREF(D%NIB:D%NIE,JK))
-  !$mnh_end_expand_array(JI=D%NIB:D%NIE)
+  ZOMEGA_UP_M(D%NIJB:D%NIJE)=ZOMEGA_UP_M(D%NIJB:D%NIJE) + &
+                 ZEMF_M(D%NIJB:D%NIJE,JK) * &
+                 (ZTHV_UP_M(D%NIJB:D%NIJE,JK)-PTHVM(D%NIJB:D%NIJE,JK)) * &
+                 (PZZ(D%NIJB:D%NIJE,JK+D%NKL)-PZZ(D%NIJB:D%NIJE,JK)) / &
+                 (PTHM(D%NIJB:D%NIJE,JK) * PRHODREF(D%NIJB:D%NIJE,JK))
+  !$mnh_end_expand_array(JI=D%NIJB:D%NIJE)
 ENDDO
-!$mnh_expand_array(JI=D%NIB:D%NIE)
-ZOMEGA_UP_M(D%NIB:D%NIE)=MAX(ZOMEGA_UP_M(D%NIB:D%NIE), 1.E-20)
-ZOMEGA_UP_M(D%NIB:D%NIE)=(CST%XG*ZOMEGA_UP_M(D%NIB:D%NIE))**(1./3.)
-!$mnh_end_expand_array(JI=D%NIB:D%NIE)
+!$mnh_expand_array(JI=D%NIJB:D%NIJE)
+ZOMEGA_UP_M(D%NIJB:D%NIJE)=MAX(ZOMEGA_UP_M(D%NIJB:D%NIJE), 1.E-20)
+ZOMEGA_UP_M(D%NIJB:D%NIJE)=(CST%XG*ZOMEGA_UP_M(D%NIJB:D%NIJE))**(1./3.)
+!$mnh_end_expand_array(JI=D%NIJB:D%NIJE)
 
 !computation of alpha up
 DO JK=D%NKA,D%NKU,D%NKL
-  !$mnh_expand_array(JI=D%NIB:D%NIE)
-  ZALPHA_UP_M(D%NIB:D%NIE,JK)=ZEMF_M(D%NIB:D%NIE,JK)/(PARAMMF%XALPHA_MF*PRHODREF(D%NIB:D%NIE,JK)*ZOMEGA_UP_M(D%NIB:D%NIE))
-  ZALPHA_UP_M(D%NIB:D%NIE,JK)=MAX(0., MIN(ZALPHA_UP_M(D%NIB:D%NIE,JK), 1.))
-  !$mnh_end_expand_array(JI=D%NIB:D%NIE)
+  !$mnh_expand_array(JI=D%NIJB:D%NIJE)
+  ZALPHA_UP_M(D%NIJB:D%NIJE,JK)=ZEMF_M(D%NIJB:D%NIJE,JK)/(PARAMMF%XALPHA_MF*PRHODREF(D%NIJB:D%NIJE,JK)*ZOMEGA_UP_M(D%NIJB:D%NIJE))
+  ZALPHA_UP_M(D%NIJB:D%NIJE,JK)=MAX(0., MIN(ZALPHA_UP_M(D%NIJB:D%NIJE,JK), 1.))
+  !$mnh_end_expand_array(JI=D%NIJB:D%NIJE)
 ENDDO
 
 !computation of sigma of the distribution
 DO JK=D%NKA,D%NKU,D%NKL
-  !$mnh_expand_array(JI=D%NIB:D%NIE)
-  ZSIGMF(D%NIB:D%NIE,JK)=ZEMF_M(D%NIB:D%NIE,JK) * &
-               (ZRT_UP_M(D%NIB:D%NIE,JK) - PRTM(D%NIB:D%NIE,JK)) * &
-               PDEPTH(D%NIB:D%NIE) * ZGRAD_Z_RT(D%NIB:D%NIE,JK) / &
-               (PARAMMF%XSIGMA_MF * ZOMEGA_UP_M(D%NIB:D%NIE) * PRHODREF(D%NIB:D%NIE,JK))
-  !$mnh_end_expand_array(JI=D%NIB:D%NIE)
+  !$mnh_expand_array(JI=D%NIJB:D%NIJE)
+  ZSIGMF(D%NIJB:D%NIJE,JK)=ZEMF_M(D%NIJB:D%NIJE,JK) * &
+               (ZRT_UP_M(D%NIJB:D%NIJE,JK) - PRTM(D%NIJB:D%NIJE,JK)) * &
+               PDEPTH(D%NIJB:D%NIJE) * ZGRAD_Z_RT(D%NIJB:D%NIJE,JK) / &
+               (PARAMMF%XSIGMA_MF * ZOMEGA_UP_M(D%NIJB:D%NIJE) * PRHODREF(D%NIJB:D%NIJE,JK))
+  !$mnh_end_expand_array(JI=D%NIJB:D%NIJE)
 ENDDO
-!$mnh_expand_array(JI=D%NIB:D%NIE,JK=D%NKTB:D%NKTE)
-ZSIGMF(D%NIB:D%NIE,:)=SQRT(MAX(ABS(ZSIGMF(D%NIB:D%NIE,:)), 1.E-40))
-!$mnh_end_expand_array(JI=D%NIB:D%NIE,JK=D%NKTB:D%NKTE)
+!$mnh_expand_array(JI=D%NIJB:D%NIJE,JK=D%NKTB:D%NKTE)
+ZSIGMF(D%NIJB:D%NIJE,:)=SQRT(MAX(ABS(ZSIGMF(D%NIJB:D%NIJE,:)), 1.E-40))
+!$mnh_end_expand_array(JI=D%NIJB:D%NIJE,JK=D%NKTB:D%NKTE)
 !
 !*      2. PDF integration
 !          ------------------------------------------------
 !
-!$mnh_expand_array(JI=D%NIB:D%NIE,JK=D%NKTB:D%NKTE)
+!$mnh_expand_array(JI=D%NIJB:D%NIJE,JK=D%NKTB:D%NKTE)
 !The mean of the distribution is ZRT_UP
 !Computation of ZA and ZGAM (=efrc(ZA)) coefficient
-ZA(D%NIB:D%NIE,:)=(ZRSAT_UP_M(D%NIB:D%NIE,:)-ZRT_UP_M(D%NIB:D%NIE,:))/(sqrt(2.)*ZSIGMF(D%NIB:D%NIE,:))
+ZA(D%NIJB:D%NIJE,:)=(ZRSAT_UP_M(D%NIJB:D%NIJE,:)-ZRT_UP_M(D%NIJB:D%NIJE,:))/(sqrt(2.)*ZSIGMF(D%NIJB:D%NIJE,:))
 
 !Approximation of erf function
-ZGAM(D%NIB:D%NIE,:)=1-SIGN(1., ZA(D%NIB:D%NIE,:))*SQRT(1-EXP(-4*ZA(D%NIB:D%NIE,:)**2/CST%XPI))
+ZGAM(D%NIJB:D%NIJE,:)=1-SIGN(1., ZA(D%NIJB:D%NIJE,:))*SQRT(1-EXP(-4*ZA(D%NIJB:D%NIJE,:)**2/CST%XPI))
 
 !computation of cloud fraction
-PCF_MF(D%NIB:D%NIE,:)=MAX( 0., MIN(1.,0.5*ZGAM(D%NIB:D%NIE,:) * ZALPHA_UP_M(D%NIB:D%NIE,:)))
+PCF_MF(D%NIJB:D%NIJE,:)=MAX( 0., MIN(1.,0.5*ZGAM(D%NIJB:D%NIJE,:) * ZALPHA_UP_M(D%NIJB:D%NIJE,:)))
 
 !computation of condensate, then PRC and PRI
-ZCOND(D%NIB:D%NIE,:)=(EXP(-ZA(D%NIB:D%NIE,:)**2)-ZA(D%NIB:D%NIE,:)*SQRT(CST%XPI)*ZGAM(D%NIB:D%NIE,:))* &
-                    &ZSIGMF(D%NIB:D%NIE,:)/SQRT(2.*CST%XPI) * ZALPHA_UP_M(D%NIB:D%NIE,:)
-ZCOND(D%NIB:D%NIE,:)=MAX(ZCOND(D%NIB:D%NIE,:), 0.) !due to approximation of ZGAM value, ZCOND could be slightly negative
-PRC_MF(D%NIB:D%NIE,:)=(1.-ZFRAC_ICE_UP_M(D%NIB:D%NIE,:)) * ZCOND(D%NIB:D%NIE,:)
-PRI_MF(D%NIB:D%NIE,:)=(   ZFRAC_ICE_UP_M(D%NIB:D%NIE,:)) * ZCOND(D%NIB:D%NIE,:)
-!$mnh_end_expand_array(JI=D%NIB:D%NIE,JK=D%NKTB:D%NKTE)
+ZCOND(D%NIJB:D%NIJE,:)=(EXP(-ZA(D%NIJB:D%NIJE,:)**2)-ZA(D%NIJB:D%NIJE,:)*SQRT(CST%XPI)*ZGAM(D%NIJB:D%NIJE,:))* &
+                    &ZSIGMF(D%NIJB:D%NIJE,:)/SQRT(2.*CST%XPI) * ZALPHA_UP_M(D%NIJB:D%NIJE,:)
+ZCOND(D%NIJB:D%NIJE,:)=MAX(ZCOND(D%NIJB:D%NIJE,:), 0.) !due to approximation of ZGAM value, ZCOND could be slightly negative
+PRC_MF(D%NIJB:D%NIJE,:)=(1.-ZFRAC_ICE_UP_M(D%NIJB:D%NIJE,:)) * ZCOND(D%NIJB:D%NIJE,:)
+PRI_MF(D%NIJB:D%NIJE,:)=(   ZFRAC_ICE_UP_M(D%NIJB:D%NIJE,:)) * ZCOND(D%NIJB:D%NIJE,:)
+!$mnh_end_expand_array(JI=D%NIJB:D%NIJE,JK=D%NKTB:D%NKTE)
 !
 IF (LHOOK) CALL DR_HOOK('COMPUTE_MF_CLOUD_BIGAUS',1,ZHOOK_HANDLE)
 
diff --git a/src/common/turb/mode_compute_mf_cloud_direct.F90 b/src/common/turb/mode_compute_mf_cloud_direct.F90
index ba6f5dde3957ff7dcdde8d794747fd231b36dac5..b7c86d94cdad5651d66381085baa6316ca15b1b7 100644
--- a/src/common/turb/mode_compute_mf_cloud_direct.F90
+++ b/src/common/turb/mode_compute_mf_cloud_direct.F90
@@ -64,11 +64,11 @@ IMPLICIT NONE
 !
 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
+INTEGER, DIMENSION(D%NIJT),  INTENT(IN)   :: KKLCL          ! index of updraft condensation level
+REAL, DIMENSION(D%NIJT,D%NKT),   INTENT(IN)   :: PFRAC_UP       ! Updraft Fraction
+REAL, DIMENSION(D%NIJT,D%NKT),   INTENT(IN)   :: PRC_UP,PRI_UP  ! updraft characteritics
+REAL, DIMENSION(D%NIJT,D%NKT),   INTENT(OUT)  :: PRC_MF, PRI_MF ! cloud content
+REAL, DIMENSION(D%NIJT,D%NKT),   INTENT(OUT)  :: PCF_MF         ! and cloud fraction for MF scheme
 !
 !*                    0.1  Declaration of local variables
 !
@@ -89,7 +89,7 @@ PRC_MF(:,:)=0.
 PRI_MF(:,:)=0.
 PCF_MF(:,:)=0.
 
-DO JI=D%NIB,D%NIE
+DO JI=D%NIJB,D%NIJE
 #ifdef REPRO48
   JK0=KKLCL(JI)-D%NKL ! first mass level with cloud
   JK0=MAX(JK0, MIN(D%NKB,D%NKE)) !protection if KKL=1
diff --git a/src/common/turb/mode_compute_mf_cloud_stat.F90 b/src/common/turb/mode_compute_mf_cloud_stat.F90
index 28032ab6218ed7a02c471b81b9c68bf7034e9698..64adf965de044c436946760036c6b301be9679ec 100644
--- a/src/common/turb/mode_compute_mf_cloud_stat.F90
+++ b/src/common/turb/mode_compute_mf_cloud_stat.F90
@@ -72,24 +72,24 @@ 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(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
+REAL, DIMENSION(D%NIJT,D%NKT),   INTENT(IN)   :: PFRAC_ICE               ! liquid/ice fraction
+REAL, DIMENSION(D%NIJT,D%NKT),   INTENT(IN)   :: PTHLM, PRTM             ! cons. var. at t-dt
+REAL, DIMENSION(D%NIJT,D%NKT),   INTENT(IN)   :: PPABSM                  ! Pressure at time t-1
+REAL, DIMENSION(D%NIJT,D%NKT,KRR), INTENT(IN)   :: PRM                     ! water var. at t-dt
+REAL, DIMENSION(D%NIJT,D%NKT),   INTENT(IN)   :: PDZZ
+REAL, DIMENSION(D%NIJT,D%NKT),   INTENT(IN)   :: PTHM                    ! environement
+REAL, DIMENSION(D%NIJT,D%NKT),   INTENT(IN)   :: PEXNM
+REAL, DIMENSION(D%NIJT,D%NKT),   INTENT(IN)   :: PEMF                    ! updraft characteritics
+REAL, DIMENSION(D%NIJT,D%NKT),   INTENT(IN)   :: PTHL_UP, PRT_UP         ! rc,w,Mass Flux,Thetal,rt
+REAL, DIMENSION(D%NIJT,D%NKT),   INTENT(OUT)  :: PSIGMF                  ! SQRT(variance) for statistical cloud scheme
 !
 !*                    0.1  Declaration of local variables
 !
 !
-REAL, DIMENSION(D%NIT,D%NKT) :: ZFLXZ
-REAL, DIMENSION(D%NIT,D%NKT) :: ZT
-REAL, DIMENSION(D%NIT,D%NKT) :: ZAMOIST, ZATHETA
-REAL, DIMENSION(D%NIT,D%NKT) :: ZWK
+REAL, DIMENSION(D%NIJT,D%NKT) :: ZFLXZ
+REAL, DIMENSION(D%NIJT,D%NKT) :: ZT
+REAL, DIMENSION(D%NIJT,D%NKT) :: ZAMOIST, ZATHETA
+REAL, DIMENSION(D%NIJT,D%NKT) :: ZWK
 INTEGER :: JI, JK
 REAL(KIND=JPRB) :: ZHOOK_HANDLE
 !
@@ -116,18 +116,18 @@ IF (KRRL > 0)  THEN
 !
     CALL MZM_MF(D, PTHLM(:,:), ZFLXZ(:,:))
     CALL GZ_M_W_MF(D, PTHLM(:,:), PDZZ(:,:), ZWK(:,:))
-    !$mnh_expand_array(JI=D%NIB:D%NIE,JK=D%NKTB:D%NKTE)
-    ZFLXZ(D%NIB:D%NIE,:) = -2 * PARAMMF%XTAUSIGMF * PEMF(D%NIB:D%NIE,:)* &
-                         & (PTHL_UP(D%NIB:D%NIE,:)-ZFLXZ(D%NIB:D%NIE,:)) * ZWK(D%NIB:D%NIE,:)
+    !$mnh_expand_array(JI=D%NIJB:D%NIJE,JK=D%NKTB:D%NKTE)
+    ZFLXZ(D%NIJB:D%NIJE,:) = -2 * PARAMMF%XTAUSIGMF * PEMF(D%NIJB:D%NIJE,:)* &
+                         & (PTHL_UP(D%NIJB:D%NIJE,:)-ZFLXZ(D%NIJB:D%NIJE,:)) * ZWK(D%NIJB:D%NIJE,:)
     !
     !   Avoid negative values
-    ZFLXZ(D%NIB:D%NIE,:) = MAX(0.,ZFLXZ(D%NIB:D%NIE,:))
-    !$mnh_end_expand_array(JI=D%NIB:D%NIE,JK=D%NKTB:D%NKTE)
+    ZFLXZ(D%NIJB:D%NIJE,:) = MAX(0.,ZFLXZ(D%NIJB:D%NIJE,:))
+    !$mnh_end_expand_array(JI=D%NIJB:D%NIJE,JK=D%NKTB:D%NKTE)
 
     CALL MZF_MF(D, ZFLXZ(:,:), PSIGMF(:,:))
-    !$mnh_expand_array(JI=D%NIB:D%NIE,JK=D%NKTB:D%NKTE)
-    PSIGMF(D%NIB:D%NIE,:) = PSIGMF(D%NIB:D%NIE,:) * ZATHETA(D%NIB:D%NIE,:)**2
-    !$mnh_end_expand_array(JI=D%NIB:D%NIE,JK=D%NKTB:D%NKTE)
+    !$mnh_expand_array(JI=D%NIJB:D%NIJE,JK=D%NKTB:D%NKTE)
+    PSIGMF(D%NIJB:D%NIJE,:) = PSIGMF(D%NIJB:D%NIJE,:) * ZATHETA(D%NIJB:D%NIJE,:)**2
+    !$mnh_end_expand_array(JI=D%NIJB:D%NIJE,JK=D%NKTB:D%NKTE)
 
 !
 !
@@ -138,24 +138,24 @@ IF (KRRL > 0)  THEN
 !
     CALL MZM_MF(D, PRTM(:,:), ZFLXZ(:,:))
     CALL GZ_M_W_MF(D, PRTM(:,:), PDZZ(:,:), ZWK(:,:))
-    !$mnh_expand_array(JI=D%NIB:D%NIE,JK=D%NKTB:D%NKTE)
-    ZFLXZ(D%NIB:D%NIE,:) = -2 * PARAMMF%XTAUSIGMF * PEMF(D%NIB:D%NIE,:)* &
-                         & (PRT_UP(D%NIB:D%NIE,:)-ZFLXZ(D%NIB:D%NIE,:)) * ZWK(D%NIB:D%NIE,:)
+    !$mnh_expand_array(JI=D%NIJB:D%NIJE,JK=D%NKTB:D%NKTE)
+    ZFLXZ(D%NIJB:D%NIJE,:) = -2 * PARAMMF%XTAUSIGMF * PEMF(D%NIJB:D%NIJE,:)* &
+                         & (PRT_UP(D%NIJB:D%NIJE,:)-ZFLXZ(D%NIJB:D%NIJE,:)) * ZWK(D%NIJB:D%NIJE,:)
     !
     !   Avoid negative values
-    ZFLXZ(D%NIB:D%NIE,:) = MAX(0.,ZFLXZ(D%NIB:D%NIE,:))
-    !$mnh_end_expand_array(JI=D%NIB:D%NIE,JK=D%NKTB:D%NKTE)
+    ZFLXZ(D%NIJB:D%NIJE,:) = MAX(0.,ZFLXZ(D%NIJB:D%NIJE,:))
+    !$mnh_end_expand_array(JI=D%NIJB:D%NIJE,JK=D%NKTB:D%NKTE)
 
     CALL MZF_MF(D, ZFLXZ(:,:), ZWK(:,:))
-    !$mnh_expand_array(JI=D%NIB:D%NIE,JK=D%NKTB:D%NKTE)
-    PSIGMF(D%NIB:D%NIE,:) = PSIGMF(D%NIB:D%NIE,:) + ZAMOIST(D%NIB:D%NIE,:) **2 * ZWK(D%NIB:D%NIE,:)
-    !$mnh_end_expand_array(JI=D%NIB:D%NIE,JK=D%NKTB:D%NKTE)
+    !$mnh_expand_array(JI=D%NIJB:D%NIJE,JK=D%NKTB:D%NKTE)
+    PSIGMF(D%NIJB:D%NIJE,:) = PSIGMF(D%NIJB:D%NIJE,:) + ZAMOIST(D%NIJB:D%NIJE,:) **2 * ZWK(D%NIJB:D%NIJE,:)
+    !$mnh_end_expand_array(JI=D%NIJB:D%NIJE,JK=D%NKTB:D%NKTE)
 !
 !        1.3  Vertical part of Sigma_s
 !
-    !$mnh_expand_array(JI=D%NIB:D%NIE,JK=D%NKTB:D%NKTE)
-    PSIGMF(D%NIB:D%NIE,:) =  SQRT( MAX (PSIGMF(D%NIB:D%NIE,:) , 0.) )
-    !$mnh_end_expand_array(JI=D%NIB:D%NIE,JK=D%NKTB:D%NKTE)
+    !$mnh_expand_array(JI=D%NIJB:D%NIJE,JK=D%NKTB:D%NKTE)
+    PSIGMF(D%NIJB:D%NIJE,:) =  SQRT( MAX (PSIGMF(D%NIJB:D%NIJE,:) , 0.) )
+    !$mnh_end_expand_array(JI=D%NIJB:D%NIJE,JK=D%NKTB:D%NKTE)
 ELSE
   PSIGMF(:,:) = 0.
 END IF
diff --git a/src/common/turb/mode_compute_updraft.F90 b/src/common/turb/mode_compute_updraft.F90
index 6e3a533dc072a25b2bf35e0e91a744e24d64e745..535cce82ec7491904eeb326e257d65ac4120cbe2 100644
--- a/src/common/turb/mode_compute_updraft.F90
+++ b/src/common/turb/mode_compute_updraft.F90
@@ -99,49 +99,49 @@ 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%NKT), INTENT(IN)   :: PZZ       !  Height at the flux point
-REAL, DIMENSION(D%NIT,D%NKT), INTENT(IN)   :: PDZZ      !  Metrics coefficient
+REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN)   :: PZZ       !  Height at the flux point
+REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN)   :: PDZZ      !  Metrics coefficient
  
-REAL, DIMENSION(D%NIT),   INTENT(IN)   ::  PSFTH,PSFRV
+REAL, DIMENSION(D%NIJT),   INTENT(IN)   ::  PSFTH,PSFRV
 ! normal surface fluxes of theta,rv,(u,v) parallel to the orography
 !
-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
+REAL, DIMENSION(D%NIJT,D%NKT),   INTENT(IN) ::  PPABSM     ! Pressure at t-dt
+REAL, DIMENSION(D%NIJT,D%NKT),   INTENT(IN) ::  PRHODREF   ! dry density of the
                                                   ! reference state
-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%NIJT,D%NKT),   INTENT(IN) ::  PUM        ! u mean wind
+REAL, DIMENSION(D%NIJT,D%NKT),   INTENT(IN) ::  PVM        ! v mean wind
+REAL, DIMENSION(D%NIJT,D%NKT),   INTENT(IN) ::  PTKEM      ! TKE 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%NIJT,D%NKT),   INTENT(IN)   ::  PTHM           ! liquid pot. temp. at t-dt
+REAL, DIMENSION(D%NIJT,D%NKT),   INTENT(IN)   ::  PRVM           ! vapor mixing ratio at t-dt
+REAL, DIMENSION(D%NIJT,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%NIJT,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%NIJT,D%NKT),   INTENT(OUT)  ::  PTHL_UP,PRT_UP   ! updraft properties
+REAL, DIMENSION(D%NIJT,D%NKT),   INTENT(OUT)  ::  PU_UP, PV_UP     ! updraft wind components
+REAL, DIMENSION(D%NIJT,D%NKT),   INTENT(INOUT)::  PRV_UP,PRC_UP, & ! updraft rv, rc
                                          PRI_UP,PTHV_UP,& ! updraft ri, THv
                                          PW_UP,PFRAC_UP,& ! updraft w, fraction
                                          PFRAC_ICE_UP,&   ! liquid/solid fraction in updraft
                                          PRSAT_UP         ! Rsat
 
-REAL, DIMENSION(D%NIT,D%NKT,KSV), INTENT(OUT)  ::  PSV_UP           ! updraft scalar var. 
+REAL, DIMENSION(D%NIJT,D%NKT,KSV), INTENT(OUT)  ::  PSV_UP           ! updraft scalar var. 
                                          
-REAL, DIMENSION(D%NIT,D%NKT),   INTENT(INOUT)::  PEMF,PDETR,PENTR ! Mass_flux,
+REAL, DIMENSION(D%NIJT,D%NKT),   INTENT(INOUT)::  PEMF,PDETR,PENTR ! Mass_flux,
                                                           ! detrainment,entrainment
-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
+REAL, DIMENSION(D%NIJT,D%NKT),   INTENT(INOUT) :: PBUO_INTEG       ! Integrated Buoyancy 
+INTEGER, DIMENSION(D%NIJT),  INTENT(INOUT) :: KKLCL,KKETL,KKCTL! LCL, ETL, CTL
+REAL, DIMENSION(D%NIJT),     INTENT(OUT)   :: PDEPTH           ! Deepness of cloud
 REAL,                   INTENT(IN)    :: PDX, PDY
 !                       1.2  Declaration of local variables
 !
 !
 ! Mean environment variables at t-dt at flux point
-REAL, DIMENSION(D%NIT,D%NKT) ::    &
+REAL, DIMENSION(D%NIJT,D%NKT) ::    &
                         ZTHM_F,ZRVM_F                 ! Theta,rv of
                                                       ! updraft environnement
-REAL, DIMENSION(D%NIT,D%NKT) ::    &
+REAL, DIMENSION(D%NIJT,D%NKT) ::    &
                         ZRTM_F, ZTHLM_F, ZTKEM_F,&    ! rt, thetal,TKE,pressure,
                         ZUM_F,ZVM_F,ZRHO_F,      &    ! density,momentum
                         ZPRES_F,ZTHVM_F,ZTHVM,   &    ! interpolated at the flux point
@@ -150,38 +150,38 @@ REAL, DIMENSION(D%NIT,D%NKT) ::    &
                         ZBUO_INTEG_DRY, ZBUO_INTEG_CLD,&! Integrated Buoyancy
                         ZENTR_CLD,ZDETR_CLD           ! wet entrainment and detrainment
 
-REAL, DIMENSION(D%NIT,D%NKT,KSV) :: &
+REAL, DIMENSION(D%NIJT,D%NKT,KSV) :: &
                         ZSVM_F ! scalar variables 
 
                         
-REAL, DIMENSION(D%NIT,D%NKT) ::  &
+REAL, DIMENSION(D%NIJT,D%NKT) ::  &
                         ZTH_UP,                  &    ! updraft THETA 
                         ZRC_MIX, ZRI_MIX              ! guess of Rc and Ri for KF mixture
 
-REAL, DIMENSION(D%NIT,D%NKT) ::  ZCOEF  ! diminution coefficient for too high clouds 
+REAL, DIMENSION(D%NIJT,D%NKT) ::  ZCOEF  ! diminution coefficient for too high clouds 
                         
-REAL, DIMENSION(D%NIT)            ::  ZWTHVSURF  ! Surface w'thetav'
+REAL, DIMENSION(D%NIJT)            ::  ZWTHVSURF  ! Surface w'thetav'
 
 REAL  :: ZRDORV       ! RD/RV
 REAL  :: ZRVORD       ! RV/RD
 
 
-REAL, DIMENSION(D%NIT) :: ZMIX1,ZMIX2,ZMIX3_CLD,ZMIX2_CLD
+REAL, DIMENSION(D%NIJT) :: ZMIX1,ZMIX2,ZMIX3_CLD,ZMIX2_CLD
 
-REAL, DIMENSION(D%NIT) :: ZLUP         ! Upward Mixing length from the ground
+REAL, DIMENSION(D%NIJT) :: ZLUP         ! Upward Mixing length from the ground
 
 INTEGER  :: JK,JI,JSV          ! loop counters
 
-LOGICAL, DIMENSION(D%NIT) ::  GTEST,GTESTLCL,GTESTETL
+LOGICAL, DIMENSION(D%NIJT) ::  GTEST,GTESTLCL,GTESTETL
                                ! Test if the ascent continue, if LCL or ETL is reached
 LOGICAL                          ::  GLMIX 
                                ! To choose upward or downward mixing length
-LOGICAL, DIMENSION(D%NIT)              :: GWORK1
-LOGICAL, DIMENSION(D%NIT,D%NKT) :: GWORK2
+LOGICAL, DIMENSION(D%NIJT)              :: GWORK1
+LOGICAL, DIMENSION(D%NIJT,D%NKT) :: GWORK2
 
 INTEGER  :: ITEST
 
-REAL, DIMENSION(D%NIT) :: ZRC_UP, ZRI_UP, ZRV_UP,&
+REAL, DIMENSION(D%NIJT) :: ZRC_UP, ZRI_UP, ZRV_UP,&
                                  ZRSATW, ZRSATI,&
                                  ZPART_DRY
 
@@ -189,28 +189,28 @@ REAL  :: ZDEPTH_MAX1, ZDEPTH_MAX2 ! control auto-extinction process
 
 REAL  :: ZTMAX,ZRMAX  ! control value
 
-REAL, DIMENSION(D%NIT) :: ZSURF
-REAL, DIMENSION(D%NIT,D%NKT) :: ZSHEAR,ZDUDZ,ZDVDZ ! vertical wind shear
+REAL, DIMENSION(D%NIJT) :: ZSURF
+REAL, DIMENSION(D%NIJT,D%NKT) :: ZSHEAR,ZDUDZ,ZDVDZ ! vertical wind shear
 !
-REAL, DIMENSION(D%NIT,D%NKT) :: ZWK
-REAL, DIMENSION(D%NIT,16) :: ZBUF
+REAL, DIMENSION(D%NIJT,D%NKT) :: ZWK
+REAL, DIMENSION(D%NIJT,16) :: ZBUF
 !
 REAL(KIND=JPRB) :: ZHOOK_HANDLE
 !
 !                       1.3  Declaration of additional local variables for compute_entr_detr
 !
 ! Variables for cloudy part
-REAL, DIMENSION(D%NIT) :: ZKIC, ZKIC_F2  ! fraction of env. mass in the muxtures
-REAL, DIMENSION(D%NIT) :: ZEPSI,ZDELTA   ! factor entrainment detrainment
+REAL, DIMENSION(D%NIJT) :: ZKIC, ZKIC_F2  ! fraction of env. mass in the muxtures
+REAL, DIMENSION(D%NIJT) :: ZEPSI,ZDELTA   ! factor entrainment detrainment
 REAL                   :: ZEPSI_CLOUD    ! factor entrainment detrainment
 REAL                   :: ZCOEFFMF_CLOUD ! factor for compputing entr. detr.
-REAL, DIMENSION(D%NIT) :: ZMIXTHL,ZMIXRT ! Thetal and rt in the mixtures
-REAL, DIMENSION(D%NIT) :: ZTHMIX         ! Theta and Thetav  of mixtures
-REAL, DIMENSION(D%NIT) :: ZRVMIX,ZRCMIX,ZRIMIX ! mixing ratios in mixtures
-REAL, DIMENSION(D%NIT) :: ZTHVMIX, ZTHVMIX_F2 ! Theta and Thetav  of mixtures
-REAL, DIMENSION(D%NIT) :: ZTHV_UP_F2     ! thv_up at flux point kk+kkl
-REAL, DIMENSION(D%NIT) :: ZRSATW_ED, ZRSATI_ED ! working arrays (mixing ratio at saturation)
-REAL, DIMENSION(D%NIT) :: ZTHV           ! theta V of environment at the bottom of cloudy part  
+REAL, DIMENSION(D%NIJT) :: ZMIXTHL,ZMIXRT ! Thetal and rt in the mixtures
+REAL, DIMENSION(D%NIJT) :: ZTHMIX         ! Theta and Thetav  of mixtures
+REAL, DIMENSION(D%NIJT) :: ZRVMIX,ZRCMIX,ZRIMIX ! mixing ratios in mixtures
+REAL, DIMENSION(D%NIJT) :: ZTHVMIX, ZTHVMIX_F2 ! Theta and Thetav  of mixtures
+REAL, DIMENSION(D%NIJT) :: ZTHV_UP_F2     ! thv_up at flux point kk+kkl
+REAL, DIMENSION(D%NIJT) :: ZRSATW_ED, ZRSATI_ED ! working arrays (mixing ratio at saturation)
+REAL, DIMENSION(D%NIJT) :: ZTHV           ! theta V of environment at the bottom of cloudy part  
 REAL                   :: ZKIC_INIT      !Initial value of ZKIC
 REAL                   :: ZCOTHVU              ! Variation of Thvup between bottom and top of cloudy part
 
@@ -221,12 +221,12 @@ REAL                   :: ZT                   ! Temperature
 REAL                   :: ZWK0D                ! Work array
 
 ! Variables for dry and cloudy parts
-REAL, DIMENSION(D%NIT) :: ZCOEFF_MINUS_HALF,&  ! Variation of Thv between mass points kk-kkl and kk
+REAL, DIMENSION(D%NIJT) :: ZCOEFF_MINUS_HALF,&  ! Variation of Thv between mass points kk-kkl and kk
                                   ZCOEFF_PLUS_HALF     ! Variation of Thv between mass points kk and kk+kkl
-REAL, DIMENSION(D%NIT) :: ZPRE                 ! pressure at the bottom of the cloudy part
-REAL, DIMENSION(D%NIT) :: ZG_O_THVREF_ED
-REAL, DIMENSION(D%NIT) :: ZFRAC_ICE            ! fraction of ice
-REAL, DIMENSION(D%NIT) :: ZDZ_STOP,&           ! Exact Height of the LCL above flux level KK
+REAL, DIMENSION(D%NIJT) :: ZPRE                 ! pressure at the bottom of the cloudy part
+REAL, DIMENSION(D%NIJT) :: ZG_O_THVREF_ED
+REAL, DIMENSION(D%NIJT) :: ZFRAC_ICE            ! fraction of ice
+REAL, DIMENSION(D%NIJT) :: ZDZ_STOP,&           ! Exact Height of the LCL above flux level KK
                           ZTHV_MINUS_HALF,&    ! Thv at flux point(kk)  
                           ZTHV_PLUS_HALF       ! Thv at flux point(kk+kkl)
 REAL                   :: ZDZ                  ! Delta Z used in computations
@@ -278,9 +278,9 @@ IF (OENTR_DETR) THEN
   PBUO_INTEG=0.
 
   PFRAC_ICE_UP(:,:)=0.
-  !$mnh_expand_array(JI=D%NIB:D%NIE,JK=1:D%NKT)
-  PRSAT_UP(D%NIB:D%NIE,:)=PRVM(D%NIB:D%NIE,:) ! should be initialised correctly but is (normaly) not used
-  !$mnh_end_expand_array(JI=D%NIB:D%NIE,JK=1:D%NKT)
+  !$mnh_expand_array(JI=D%NIJB:D%NIJE,JK=1:D%NKT)
+  PRSAT_UP(D%NIJB:D%NIJE,:)=PRVM(D%NIJB:D%NIJE,:) ! should be initialised correctly but is (normaly) not used
+  !$mnh_end_expand_array(JI=D%NIJB:D%NIJE,JK=1:D%NKT)
 
   !cloud/dry air mixture cloud content
   ZRC_MIX = 0.
@@ -302,24 +302,24 @@ DO JSV=1,KSV
 END DO
 !                     
 !          Initialisation of updraft characteristics 
-!$mnh_expand_array(JI=D%NIB:D%NIE,JK=1:D%NKT)
-PTHL_UP(D%NIB:D%NIE,:)=ZTHLM_F(D%NIB:D%NIE,:)
-PRT_UP(D%NIB:D%NIE,:)=ZRTM_F(D%NIB:D%NIE,:)
-PU_UP(D%NIB:D%NIE,:)=ZUM_F(D%NIB:D%NIE,:)
-PV_UP(D%NIB:D%NIE,:)=ZVM_F(D%NIB:D%NIE,:)
-!$mnh_end_expand_array(JI=D%NIB:D%NIE,JK=1:D%NKT)
-!$mnh_expand_array(JI=D%NIB:D%NIE,JK=1:D%NKT,JSV=1:KSV)
-PSV_UP(D%NIB:D%NIE,:,:)=ZSVM_F(D%NIB:D%NIE,:,:)
-!$mnh_end_expand_array(JI=D%NIB:D%NIE,JK=1:D%NKT,JSV=1:KSV)
+!$mnh_expand_array(JI=D%NIJB:D%NIJE,JK=1:D%NKT)
+PTHL_UP(D%NIJB:D%NIJE,:)=ZTHLM_F(D%NIJB:D%NIJE,:)
+PRT_UP(D%NIJB:D%NIJE,:)=ZRTM_F(D%NIJB:D%NIJE,:)
+PU_UP(D%NIJB:D%NIJE,:)=ZUM_F(D%NIJB:D%NIJE,:)
+PV_UP(D%NIJB:D%NIJE,:)=ZVM_F(D%NIJB:D%NIJE,:)
+!$mnh_end_expand_array(JI=D%NIJB:D%NIJE,JK=1:D%NKT)
+!$mnh_expand_array(JI=D%NIJB:D%NIJE,JK=1:D%NKT,JSV=1:KSV)
+PSV_UP(D%NIJB:D%NIJE,:,:)=ZSVM_F(D%NIJB:D%NIJE,:,:)
+!$mnh_end_expand_array(JI=D%NIJB:D%NIJE,JK=1:D%NKT,JSV=1:KSV)
 
 ! Computation or initialisation of updraft characteristics at the KKB level
 ! thetal_up,rt_up,thetaV_up, w2,Buoyancy term and mass flux (PEMF)
-!$mnh_expand_array(JI=D%NIB:D%NIE)
-PTHL_UP(D%NIB:D%NIE,D%NKB)= ZTHLM_F(D%NIB:D%NIE,D%NKB)+MAX(0.,MIN(ZTMAX,(PSFTH(D%NIB:D%NIE)/SQRT(ZTKEM_F(D%NIB:D%NIE,D%NKB)))* &
-                                                                       &PARAMMF%XALP_PERT))
-PRT_UP(D%NIB:D%NIE,D%NKB) = ZRTM_F(D%NIB:D%NIE,D%NKB)+MAX(0.,MIN(ZRMAX,(PSFRV(D%NIB:D%NIE)/SQRT(ZTKEM_F(D%NIB:D%NIE,D%NKB)))* &
-                                                                      &PARAMMF%XALP_PERT)) 
-!$mnh_end_expand_array(JI=D%NIB:D%NIE)
+!$mnh_expand_array(JI=D%NIJB:D%NIJE)
+PTHL_UP(D%NIJB:D%NIJE,D%NKB)= ZTHLM_F(D%NIJB:D%NIJE,D%NKB)+ &
+                            & MAX(0.,MIN(ZTMAX,(PSFTH(D%NIJB:D%NIJE)/SQRT(ZTKEM_F(D%NIJB:D%NIJE,D%NKB)))* PARAMMF%XALP_PERT))
+PRT_UP(D%NIJB:D%NIJE,D%NKB) = ZRTM_F(D%NIJB:D%NIJE,D%NKB)+ &
+                            & MAX(0.,MIN(ZRMAX,(PSFRV(D%NIJB:D%NIJE)/SQRT(ZTKEM_F(D%NIJB:D%NIJE,D%NKB)))* PARAMMF%XALP_PERT)) 
+!$mnh_end_expand_array(JI=D%NIJB:D%NIJE)
 
 IF (OENTR_DETR) THEN
   CALL MZM_MF(D, PTHM (:,:), ZTHM_F (:,:))
@@ -327,58 +327,59 @@ IF (OENTR_DETR) THEN
   CALL MZM_MF(D, PRHODREF(:,:), ZRHO_F (:,:))
   CALL MZM_MF(D, PRVM(:,:), ZRVM_F (:,:))
 
-  !$mnh_expand_array(JI=D%NIB:D%NIE,JK=1:D%NKT)
+  !$mnh_expand_array(JI=D%NIJB:D%NIJE,JK=1:D%NKT)
   ! thetav at mass and flux levels
-  ZTHVM_F(D%NIB:D%NIE,:)=ZTHM_F(D%NIB:D%NIE,:)* &
-                                    &((1.+ZRVORD*ZRVM_F(D%NIB:D%NIE,:))/(1.+ZRTM_F(D%NIB:D%NIE,:)))
-  ZTHVM(D%NIB:D%NIE,:)=PTHM(D%NIB:D%NIE,:)* &
-                                    &((1.+ZRVORD*PRVM(D%NIB:D%NIE,:))/(1.+PRTM(D%NIB:D%NIE,:)))
+  ZTHVM_F(D%NIJB:D%NIJE,:)=ZTHM_F(D%NIJB:D%NIJE,:)* &
+                                    &((1.+ZRVORD*ZRVM_F(D%NIJB:D%NIJE,:))/(1.+ZRTM_F(D%NIJB:D%NIJE,:)))
+  ZTHVM(D%NIJB:D%NIJE,:)=PTHM(D%NIJB:D%NIJE,:)* &
+                                    &((1.+ZRVORD*PRVM(D%NIJB:D%NIJE,:))/(1.+PRTM(D%NIJB:D%NIJE,:)))
 
-  PTHV_UP(D%NIB:D%NIE,:)=ZTHVM_F(D%NIB:D%NIE,:)
-  !$mnh_end_expand_array(JI=D%NIB:D%NIE,JK=1:D%NKT)
+  PTHV_UP(D%NIJB:D%NIJE,:)=ZTHVM_F(D%NIJB:D%NIJE,:)
+  !$mnh_end_expand_array(JI=D%NIJB:D%NIJE,JK=1:D%NKT)
 
   ZW_UP2(:,:)=0.
-  !$mnh_expand_array(JI=D%NIB:D%NIE)
-  ZW_UP2(D%NIB:D%NIE,D%NKB) = MAX(0.0001,(2./3.)*ZTKEM_F(D%NIB:D%NIE,D%NKB))
+  !$mnh_expand_array(JI=D%NIJB:D%NIJE)
+  ZW_UP2(D%NIJB:D%NIJE,D%NKB) = MAX(0.0001,(2./3.)*ZTKEM_F(D%NIJB:D%NIJE,D%NKB))
 
   ! Computation of non conservative variable for the KKB level of the updraft
   ! (all or nothing ajustement)
   PRC_UP(:,D%NKB)=0.
   PRI_UP(:,D%NKB)=0.
-  !$mnh_end_expand_array(JI=D%NIB:D%NIE)
-  CALL TH_R_FROM_THL_RT(CST, NEB, D%NIT, HFRAC_ICE,PFRAC_ICE_UP(:,D%NKB),ZPRES_F(:,D%NKB), &
+  !$mnh_end_expand_array(JI=D%NIJB:D%NIJE)
+  CALL TH_R_FROM_THL_RT(CST, NEB, D%NIJT, HFRAC_ICE,PFRAC_ICE_UP(:,D%NKB),ZPRES_F(:,D%NKB), &
              PTHL_UP(:,D%NKB),PRT_UP(:,D%NKB),ZTH_UP(:,D%NKB), &
              PRV_UP(:,D%NKB),PRC_UP(:,D%NKB),PRI_UP(:,D%NKB),ZRSATW(:),ZRSATI(:), OOCEAN=.FALSE., &
-             PBUF=ZBUF(:,:), KB=D%NIB, KE=D%NIE)
+             PBUF=ZBUF(:,:), KB=D%NIJB, KE=D%NIJE)
 
-  !$mnh_expand_array(JI=D%NIB:D%NIE)
+  !$mnh_expand_array(JI=D%NIJB:D%NIJE)
   ! compute updraft thevav and buoyancy term at KKB level
-  PTHV_UP(D%NIB:D%NIE,D%NKB) = ZTH_UP(D%NIB:D%NIE,D%NKB)*((1+ZRVORD*PRV_UP(D%NIB:D%NIE,D%NKB))/(1+PRT_UP(D%NIB:D%NIE,D%NKB)))
+  PTHV_UP(D%NIJB:D%NIJE,D%NKB) = ZTH_UP(D%NIJB:D%NIJE,D%NKB)*&
+                               & ((1+ZRVORD*PRV_UP(D%NIJB:D%NIJE,D%NKB))/(1+PRT_UP(D%NIJB:D%NIJE,D%NKB)))
   ! compute mean rsat in updraft
-  PRSAT_UP(D%NIB:D%NIE,D%NKB) = ZRSATW(D%NIB:D%NIE)*(1-PFRAC_ICE_UP(D%NIB:D%NIE,D%NKB)) + &
-                              & ZRSATI(D%NIB:D%NIE)*PFRAC_ICE_UP(D%NIB:D%NIE,D%NKB)
-  !$mnh_end_expand_array(JI=D%NIB:D%NIE)
+  PRSAT_UP(D%NIJB:D%NIJE,D%NKB) = ZRSATW(D%NIJB:D%NIJE)*(1-PFRAC_ICE_UP(D%NIJB:D%NIJE,D%NKB)) + &
+                              & ZRSATI(D%NIJB:D%NIJE)*PFRAC_ICE_UP(D%NIJB:D%NIJE,D%NKB)
+  !$mnh_end_expand_array(JI=D%NIJB:D%NIJE)
   ! Closure assumption for mass flux at KKB level
   !
 
-  !$mnh_expand_array(JI=D%NIB:D%NIE,JK=1:D%NKT)
-  ZG_O_THVREF(D%NIB:D%NIE,:)=CST%XG/ZTHVM_F(D%NIB:D%NIE,:)
-  !$mnh_end_expand_array(JI=D%NIB:D%NIE,JK=1:D%NKT)
+  !$mnh_expand_array(JI=D%NIJB:D%NIJE,JK=1:D%NKT)
+  ZG_O_THVREF(D%NIJB:D%NIJE,:)=CST%XG/ZTHVM_F(D%NIJB:D%NIJE,:)
+  !$mnh_end_expand_array(JI=D%NIJB:D%NIJE,JK=1:D%NKT)
 
   ! compute L_up
   GLMIX=.TRUE.
-  !$mnh_expand_array(JI=D%NIB:D%NIE)
-  ZTKEM_F(D%NIB:D%NIE,D%NKB)=0.
-  !$mnh_end_expand_array(JI=D%NIB:D%NIE)
+  !$mnh_expand_array(JI=D%NIJB:D%NIJE)
+  ZTKEM_F(D%NIJB:D%NIJE,D%NKB)=0.
+  !$mnh_end_expand_array(JI=D%NIJB:D%NIJE)
   !
   IF(TURB%CTURBLEN=='RM17') THEN
     CALL GZ_M_W_MF(D, PUM, PDZZ, ZWK)
     CALL MZF_MF(D, ZWK, ZDUDZ)
     CALL GZ_M_W_MF(D, PVM, PDZZ, ZWK)
     CALL MZF_MF(D, ZWK, ZDVDZ)
-    !$mnh_expand_array(JI=D%NIB:D%NIE,JK=1:D%NKT)
-    ZSHEAR(D%NIB:D%NIE,:) = SQRT(ZDUDZ(D%NIB:D%NIE,:)**2 + ZDVDZ(D%NIB:D%NIE,:)**2)
-    !$mnh_end_expand_array(JI=D%NIB:D%NIE,JK=1:D%NKT)
+    !$mnh_expand_array(JI=D%NIJB:D%NIJE,JK=1:D%NKT)
+    ZSHEAR(D%NIJB:D%NIJE,:) = SQRT(ZDUDZ(D%NIJB:D%NIJE,:)**2 + ZDVDZ(D%NIJB:D%NIJE,:)**2)
+    !$mnh_end_expand_array(JI=D%NIJB:D%NIJE,JK=1:D%NKT)
   ELSE
     ZSHEAR = 0. !no shear in bl89 mixing length
   END IF
@@ -390,35 +391,35 @@ IF (OENTR_DETR) THEN
   CALL COMPUTE_BL89_ML(D, CST, CSTURB, PDZZ,ZTKEM_F(:,D%NKB),&
                       &ZG_O_THVREF(:,D%NKB),ZTHVM,D%NKB,GLMIX,.FALSE.,ZSHEAR,ZLUP)
 #endif
-  !$mnh_expand_where(JI=D%NIB:D%NIE)
-  ZLUP(D%NIB:D%NIE)=MAX(ZLUP(D%NIB:D%NIE),1.E-10)
+  !$mnh_expand_where(JI=D%NIJB:D%NIJE)
+  ZLUP(D%NIJB:D%NIJE)=MAX(ZLUP(D%NIJB:D%NIJE),1.E-10)
 
   ! Compute Buoyancy flux at the ground
-  ZWTHVSURF(D%NIB:D%NIE) = (ZTHVM_F(D%NIB:D%NIE,D%NKB)/ZTHM_F(D%NIB:D%NIE,D%NKB))*PSFTH(D%NIB:D%NIE)+     &
-                (0.61*ZTHM_F(D%NIB:D%NIE,D%NKB))*PSFRV(D%NIB:D%NIE)
+  ZWTHVSURF(D%NIJB:D%NIJE) = (ZTHVM_F(D%NIJB:D%NIJE,D%NKB)/ZTHM_F(D%NIJB:D%NIJE,D%NKB))*PSFTH(D%NIJB:D%NIJE)+     &
+                (0.61*ZTHM_F(D%NIJB:D%NIJE,D%NKB))*PSFRV(D%NIJB:D%NIJE)
 
   ! Mass flux at KKB level (updraft triggered if PSFTH>0.)
   IF (PARAMMF%LGZ) THEN
-    ZSURF(D%NIB:D%NIE)=TANH(PARAMMF%XGZ*SQRT(PDX*PDY)/ZLUP(D%NIB:D%NIE))
+    ZSURF(D%NIJB:D%NIJE)=TANH(PARAMMF%XGZ*SQRT(PDX*PDY)/ZLUP(D%NIJB:D%NIJE))
   ELSE
-    ZSURF(D%NIB:D%NIE)=1.
+    ZSURF(D%NIJB:D%NIJE)=1.
   END IF
-  WHERE (ZWTHVSURF(D%NIB:D%NIE)>0.)
-    PEMF(D%NIB:D%NIE,D%NKB) = PARAMMF%XCMF * ZSURF(D%NIB:D%NIE) * ZRHO_F(D%NIB:D%NIE,D%NKB) *  &
-            ((ZG_O_THVREF(D%NIB:D%NIE,D%NKB))*ZWTHVSURF(D%NIB:D%NIE)*ZLUP(D%NIB:D%NIE))**(1./3.)
-    PFRAC_UP(D%NIB:D%NIE,D%NKB)=MIN(PEMF(D%NIB:D%NIE,D%NKB)/(SQRT(ZW_UP2(D%NIB:D%NIE,D%NKB))*ZRHO_F(D%NIB:D%NIE,D%NKB)), &
+  WHERE (ZWTHVSURF(D%NIJB:D%NIJE)>0.)
+    PEMF(D%NIJB:D%NIJE,D%NKB) = PARAMMF%XCMF * ZSURF(D%NIJB:D%NIJE) * ZRHO_F(D%NIJB:D%NIJE,D%NKB) *  &
+            ((ZG_O_THVREF(D%NIJB:D%NIJE,D%NKB))*ZWTHVSURF(D%NIJB:D%NIJE)*ZLUP(D%NIJB:D%NIJE))**(1./3.)
+    PFRAC_UP(D%NIJB:D%NIJE,D%NKB)=MIN(PEMF(D%NIJB:D%NIJE,D%NKB)/(SQRT(ZW_UP2(D%NIJB:D%NIJE,D%NKB))*ZRHO_F(D%NIJB:D%NIJE,D%NKB)), &
                                    &PARAMMF%XFRAC_UP_MAX)
-    ZW_UP2(D%NIB:D%NIE,D%NKB)=(PEMF(D%NIB:D%NIE,D%NKB)/(PFRAC_UP(D%NIB:D%NIE,D%NKB)*ZRHO_F(D%NIB:D%NIE,D%NKB)))**2
-    GTEST(D%NIB:D%NIE)=.TRUE.
+    ZW_UP2(D%NIJB:D%NIJE,D%NKB)=(PEMF(D%NIJB:D%NIJE,D%NKB)/(PFRAC_UP(D%NIJB:D%NIJE,D%NKB)*ZRHO_F(D%NIJB:D%NIJE,D%NKB)))**2
+    GTEST(D%NIJB:D%NIJE)=.TRUE.
   ELSEWHERE
-    PEMF(D%NIB:D%NIE,D%NKB) =0.
-    GTEST(D%NIB:D%NIE)=.FALSE.
+    PEMF(D%NIJB:D%NIJE,D%NKB) =0.
+    GTEST(D%NIJB:D%NIJE)=.FALSE.
   ENDWHERE
-  !$mnh_end_expand_where(JI=D%NIB:D%NIE)
+  !$mnh_end_expand_where(JI=D%NIJB:D%NIJE)
 ELSE
-  !$mnh_expand_array(JI=D%NIB:D%NIE)
-  GTEST(D%NIB:D%NIE)=PEMF(D%NIB:D%NIE,D%NKB+D%NKL)>0.
-  !$mnh_end_expand_array(JI=D%NIB:D%NIE)
+  !$mnh_expand_array(JI=D%NIJB:D%NIJE)
+  GTEST(D%NIJB:D%NIJE)=PEMF(D%NIJB:D%NIJE,D%NKB+D%NKL)>0.
+  !$mnh_end_expand_array(JI=D%NIJB:D%NIJE)
 END IF
 
 !--------------------------------------------------------------------------
@@ -437,7 +438,7 @@ GTESTETL(:)=.FALSE.
 DO JK=D%NKB,D%NKE-D%NKL,D%NKL
 
   ! IF the updraft top is reached for all column, stop the loop on levels
-  ITEST=COUNT(GTEST(D%NIB:D%NIE))
+  ITEST=COUNT(GTEST(D%NIJB:D%NIJE))
   IF (ITEST==0) CYCLE
 
   !       Computation of entrainment and detrainment with KF90
@@ -445,20 +446,20 @@ DO JK=D%NKB,D%NKE-D%NKL,D%NKL
 
 
   ! to find the LCL (check if JK is LCL or not)
-  !$mnh_expand_where(JI=D%NIB:D%NIE)
-  WHERE ((PRC_UP(D%NIB:D%NIE,JK)+PRI_UP(D%NIB:D%NIE,JK)>0.).AND.(.NOT.(GTESTLCL(D%NIB:D%NIE))))
-      KKLCL(D%NIB:D%NIE) = JK           
-      GTESTLCL(D%NIB:D%NIE)=.TRUE.
+  !$mnh_expand_where(JI=D%NIJB:D%NIJE)
+  WHERE ((PRC_UP(D%NIJB:D%NIJE,JK)+PRI_UP(D%NIJB:D%NIJE,JK)>0.).AND.(.NOT.(GTESTLCL(D%NIJB:D%NIJE))))
+      KKLCL(D%NIJB:D%NIJE) = JK           
+      GTESTLCL(D%NIJB:D%NIJE)=.TRUE.
   ENDWHERE
-  !$mnh_end_expand_where(JI=D%NIB:D%NIE)
+  !$mnh_end_expand_where(JI=D%NIJB:D%NIJE)
 
   ! COMPUTE PENTR and PDETR at mass level JK
   IF (OENTR_DETR) THEN
     IF(JK/=D%NKB) THEN
-      !$mnh_expand_array(JI=D%NIB:D%NIE)
-      ZRC_MIX(D%NIB:D%NIE,JK) = ZRC_MIX(D%NIB:D%NIE,JK-D%NKL) ! guess of Rc of mixture
-      ZRI_MIX(D%NIB:D%NIE,JK) = ZRI_MIX(D%NIB:D%NIE,JK-D%NKL) ! guess of Ri of mixture
-      !$mnh_end_expand_array(JI=D%NIB:D%NIE)
+      !$mnh_expand_array(JI=D%NIJB:D%NIJE)
+      ZRC_MIX(D%NIJB:D%NIJE,JK) = ZRC_MIX(D%NIJB:D%NIJE,JK-D%NKL) ! guess of Rc of mixture
+      ZRI_MIX(D%NIJB:D%NIJE,JK) = ZRI_MIX(D%NIJB:D%NIJE,JK-D%NKL) ! guess of Ri of mixture
+      !$mnh_end_expand_array(JI=D%NIJB:D%NIJE)
     ENDIF
     CALL COMPUTE_ENTR_DETR(D, CST, NEB, PARAMMF, JK,D%NKB,D%NKE,D%NKL,GTEST,GTESTLCL,HFRAC_ICE,PFRAC_ICE_UP(:,JK),&
                            PRHODREF(:,JK),ZPRES_F(:,JK),ZPRES_F(:,JK+D%NKL),&
@@ -470,39 +471,40 @@ DO JK=D%NKB,D%NKE-D%NKL,D%NKL
                            PENTR(:,JK),PDETR(:,JK),ZENTR_CLD(:,JK),ZDETR_CLD(:,JK),&
                            ZBUO_INTEG_DRY(:,JK), ZBUO_INTEG_CLD(:,JK), &
                            ZPART_DRY(:)   )
-    !$mnh_expand_where(JI=D%NIB:D%NIE)
-    PBUO_INTEG(D%NIB:D%NIE,JK)=ZBUO_INTEG_DRY(D%NIB:D%NIE,JK)+ZBUO_INTEG_CLD(D%NIB:D%NIE,JK)
+    !$mnh_expand_where(JI=D%NIJB:D%NIJE)
+    PBUO_INTEG(D%NIJB:D%NIJE,JK)=ZBUO_INTEG_DRY(D%NIJB:D%NIJE,JK)+ZBUO_INTEG_CLD(D%NIJB:D%NIJE,JK)
 
     IF (JK==D%NKB) THEN
-       PDETR(D%NIB:D%NIE,JK)=0.
-       ZDETR_CLD(D%NIB:D%NIE,JK)=0.
+       PDETR(D%NIJB:D%NIJE,JK)=0.
+       ZDETR_CLD(D%NIJB:D%NIJE,JK)=0.
     ENDIF   
  
     !       Computation of updraft characteristics at level JK+KKL
-    WHERE(GTEST(D%NIB:D%NIE))
-      ZMIX1(D%NIB:D%NIE)=0.5*(PZZ(D%NIB:D%NIE,JK+D%NKL)-PZZ(D%NIB:D%NIE,JK))*(PENTR(D%NIB:D%NIE,JK)-PDETR(D%NIB:D%NIE,JK))
-      PEMF(D%NIB:D%NIE,JK+D%NKL)=PEMF(D%NIB:D%NIE,JK)*EXP(2*ZMIX1(D%NIB:D%NIE))
+    WHERE(GTEST(D%NIJB:D%NIJE))
+      ZMIX1(D%NIJB:D%NIJE)=0.5*(PZZ(D%NIJB:D%NIJE,JK+D%NKL)-PZZ(D%NIJB:D%NIJE,JK))*&
+                          &(PENTR(D%NIJB:D%NIJE,JK)-PDETR(D%NIJB:D%NIJE,JK))
+      PEMF(D%NIJB:D%NIJE,JK+D%NKL)=PEMF(D%NIJB:D%NIJE,JK)*EXP(2*ZMIX1(D%NIJB:D%NIJE))
     ENDWHERE
-    !$mnh_end_expand_where(JI=D%NIB:D%NIE)
+    !$mnh_end_expand_where(JI=D%NIJB:D%NIJE)
   ELSE !OENTR_DETR
-    !$mnh_expand_array(JI=D%NIB:D%NIE)
-    GTEST(D%NIB:D%NIE) = (PEMF(D%NIB:D%NIE,JK+D%NKL)>0.)
-    !$mnh_end_expand_array(JI=D%NIB:D%NIE)
+    !$mnh_expand_array(JI=D%NIJB:D%NIJE)
+    GTEST(D%NIJB:D%NIJE) = (PEMF(D%NIJB:D%NIJE,JK+D%NKL)>0.)
+    !$mnh_end_expand_array(JI=D%NIJB:D%NIJE)
   END IF !OENTR_DETR
   
   ! stop the updraft if MF becomes negative
-  !$mnh_expand_where(JI=D%NIB:D%NIE)
-  WHERE (GTEST(D%NIB:D%NIE).AND.(PEMF(D%NIB:D%NIE,JK+D%NKL)<=0.))
-    PEMF(D%NIB:D%NIE,JK+D%NKL)=0.
-    KKCTL(D%NIB:D%NIE) = JK+D%NKL
-    GTEST(D%NIB:D%NIE)=.FALSE.
-    PFRAC_ICE_UP(D%NIB:D%NIE,JK+D%NKL)=PFRAC_ICE_UP(D%NIB:D%NIE,JK)
-    PRSAT_UP(D%NIB:D%NIE,JK+D%NKL)=PRSAT_UP(D%NIB:D%NIE,JK)
+  !$mnh_expand_where(JI=D%NIJB:D%NIJE)
+  WHERE (GTEST(D%NIJB:D%NIJE).AND.(PEMF(D%NIJB:D%NIJE,JK+D%NKL)<=0.))
+    PEMF(D%NIJB:D%NIJE,JK+D%NKL)=0.
+    KKCTL(D%NIJB:D%NIJE) = JK+D%NKL
+    GTEST(D%NIJB:D%NIJE)=.FALSE.
+    PFRAC_ICE_UP(D%NIJB:D%NIJE,JK+D%NKL)=PFRAC_ICE_UP(D%NIJB:D%NIJE,JK)
+    PRSAT_UP(D%NIJB:D%NIJE,JK+D%NKL)=PRSAT_UP(D%NIJB:D%NIJE,JK)
   ENDWHERE
-  !$mnh_end_expand_where(JI=D%NIB:D%NIE)
+  !$mnh_end_expand_where(JI=D%NIJB:D%NIJE)
 
   ! If the updraft did not stop, compute cons updraft characteritics at jk+KKL
-  DO JI=D%NIB,D%NIE
+  DO JI=D%NIJB,D%NIJE
     IF(GTEST(JI)) THEN
       ZMIX2(JI) = (PZZ(JI,JK+D%NKL)-PZZ(JI,JK))*PENTR(JI,JK) !&
       ZMIX3_CLD(JI) = (PZZ(JI,JK+D%NKL)-PZZ(JI,JK))*(1.-ZPART_DRY(JI))*ZDETR_CLD(JI,JK) !&                   
@@ -521,137 +523,142 @@ DO JK=D%NKB,D%NKE-D%NKL,D%NKL
   
   IF(OMIXUV) THEN
     IF(JK/=D%NKB) THEN
-      !$mnh_expand_where(JI=D%NIB:D%NIE)
-      WHERE(GTEST(D%NIB:D%NIE))
-        PU_UP(D%NIB:D%NIE,JK+D%NKL) = (PU_UP(D%NIB:D%NIE,JK)*(1-0.5*ZMIX2(D%NIB:D%NIE)) + PUM(D%NIB:D%NIE,JK)*ZMIX2(D%NIB:D%NIE)+ &
-                          0.5*PARAMMF%XPRES_UV*(PZZ(D%NIB:D%NIE,JK+D%NKL)-PZZ(D%NIB:D%NIE,JK))*&
-                          ((PUM(D%NIB:D%NIE,JK+D%NKL)-PUM(D%NIB:D%NIE,JK))/PDZZ(D%NIB:D%NIE,JK+D%NKL)+&
-                           (PUM(D%NIB:D%NIE,JK)-PUM(D%NIB:D%NIE,JK-D%NKL))/PDZZ(D%NIB:D%NIE,JK))        )   &
-                          /(1+0.5*ZMIX2(D%NIB:D%NIE))
-        PV_UP(D%NIB:D%NIE,JK+D%NKL) = (PV_UP(D%NIB:D%NIE,JK)*(1-0.5*ZMIX2(D%NIB:D%NIE)) + PVM(D%NIB:D%NIE,JK)*ZMIX2(D%NIB:D%NIE)+ &
-                          0.5*PARAMMF%XPRES_UV*(PZZ(D%NIB:D%NIE,JK+D%NKL)-PZZ(D%NIB:D%NIE,JK))*&
-                          ((PVM(D%NIB:D%NIE,JK+D%NKL)-PVM(D%NIB:D%NIE,JK))/PDZZ(D%NIB:D%NIE,JK+D%NKL)+&
-                           (PVM(D%NIB:D%NIE,JK)-PVM(D%NIB:D%NIE,JK-D%NKL))/PDZZ(D%NIB:D%NIE,JK))    )   &
-                          /(1+0.5*ZMIX2(D%NIB:D%NIE))
+      !$mnh_expand_where(JI=D%NIJB:D%NIJE)
+      WHERE(GTEST(D%NIJB:D%NIJE))
+        PU_UP(D%NIJB:D%NIJE,JK+D%NKL) = (PU_UP(D%NIJB:D%NIJE,JK)*(1-0.5*ZMIX2(D%NIJB:D%NIJE)) + &
+                                        &PUM(D%NIJB:D%NIJE,JK)*ZMIX2(D%NIJB:D%NIJE)+ &
+                          0.5*PARAMMF%XPRES_UV*(PZZ(D%NIJB:D%NIJE,JK+D%NKL)-PZZ(D%NIJB:D%NIJE,JK))*&
+                          ((PUM(D%NIJB:D%NIJE,JK+D%NKL)-PUM(D%NIJB:D%NIJE,JK))/PDZZ(D%NIJB:D%NIJE,JK+D%NKL)+&
+                           (PUM(D%NIJB:D%NIJE,JK)-PUM(D%NIJB:D%NIJE,JK-D%NKL))/PDZZ(D%NIJB:D%NIJE,JK))        )   &
+                          /(1+0.5*ZMIX2(D%NIJB:D%NIJE))
+        PV_UP(D%NIJB:D%NIJE,JK+D%NKL) = (PV_UP(D%NIJB:D%NIJE,JK)*(1-0.5*ZMIX2(D%NIJB:D%NIJE)) + &
+                                        &PVM(D%NIJB:D%NIJE,JK)*ZMIX2(D%NIJB:D%NIJE)+ &
+                          0.5*PARAMMF%XPRES_UV*(PZZ(D%NIJB:D%NIJE,JK+D%NKL)-PZZ(D%NIJB:D%NIJE,JK))*&
+                          ((PVM(D%NIJB:D%NIJE,JK+D%NKL)-PVM(D%NIJB:D%NIJE,JK))/PDZZ(D%NIJB:D%NIJE,JK+D%NKL)+&
+                           (PVM(D%NIJB:D%NIJE,JK)-PVM(D%NIJB:D%NIJE,JK-D%NKL))/PDZZ(D%NIJB:D%NIJE,JK))    )   &
+                          /(1+0.5*ZMIX2(D%NIJB:D%NIJE))
       ENDWHERE
-      !$mnh_end_expand_where(JI=D%NIB:D%NIE)
+      !$mnh_end_expand_where(JI=D%NIJB:D%NIJE)
     ELSE
-      !$mnh_expand_where(JI=D%NIB:D%NIE)
-      WHERE(GTEST(D%NIB:D%NIE))
-        PU_UP(D%NIB:D%NIE,JK+D%NKL) = (PU_UP(D%NIB:D%NIE,JK)*(1-0.5*ZMIX2(D%NIB:D%NIE)) + PUM(D%NIB:D%NIE,JK)*ZMIX2(D%NIB:D%NIE)+ &
-                          0.5*PARAMMF%XPRES_UV*(PZZ(D%NIB:D%NIE,JK+D%NKL)-PZZ(D%NIB:D%NIE,JK))*&
-                          ((PUM(D%NIB:D%NIE,JK+D%NKL)-PUM(D%NIB:D%NIE,JK))/PDZZ(D%NIB:D%NIE,JK+D%NKL))        )   &
-                          /(1+0.5*ZMIX2(D%NIB:D%NIE))
-        PV_UP(D%NIB:D%NIE,JK+D%NKL) = (PV_UP(D%NIB:D%NIE,JK)*(1-0.5*ZMIX2(D%NIB:D%NIE)) + PVM(D%NIB:D%NIE,JK)*ZMIX2(D%NIB:D%NIE)+ &
-                          0.5*PARAMMF%XPRES_UV*(PZZ(D%NIB:D%NIE,JK+D%NKL)-PZZ(D%NIB:D%NIE,JK))*&
-                          ((PVM(D%NIB:D%NIE,JK+D%NKL)-PVM(D%NIB:D%NIE,JK))/PDZZ(D%NIB:D%NIE,JK+D%NKL))    )   &
-                          /(1+0.5*ZMIX2(D%NIB:D%NIE))
+      !$mnh_expand_where(JI=D%NIJB:D%NIJE)
+      WHERE(GTEST(D%NIJB:D%NIJE))
+        PU_UP(D%NIJB:D%NIJE,JK+D%NKL) = (PU_UP(D%NIJB:D%NIJE,JK)*(1-0.5*ZMIX2(D%NIJB:D%NIJE)) + &
+                                        &PUM(D%NIJB:D%NIJE,JK)*ZMIX2(D%NIJB:D%NIJE)+ &
+                          0.5*PARAMMF%XPRES_UV*(PZZ(D%NIJB:D%NIJE,JK+D%NKL)-PZZ(D%NIJB:D%NIJE,JK))*&
+                          ((PUM(D%NIJB:D%NIJE,JK+D%NKL)-PUM(D%NIJB:D%NIJE,JK))/PDZZ(D%NIJB:D%NIJE,JK+D%NKL))        )   &
+                          /(1+0.5*ZMIX2(D%NIJB:D%NIJE))
+        PV_UP(D%NIJB:D%NIJE,JK+D%NKL) = (PV_UP(D%NIJB:D%NIJE,JK)*(1-0.5*ZMIX2(D%NIJB:D%NIJE)) + &
+                                        &PVM(D%NIJB:D%NIJE,JK)*ZMIX2(D%NIJB:D%NIJE)+ &
+                          0.5*PARAMMF%XPRES_UV*(PZZ(D%NIJB:D%NIJE,JK+D%NKL)-PZZ(D%NIJB:D%NIJE,JK))*&
+                          ((PVM(D%NIJB:D%NIJE,JK+D%NKL)-PVM(D%NIJB:D%NIJE,JK))/PDZZ(D%NIJB:D%NIJE,JK+D%NKL))    )   &
+                          /(1+0.5*ZMIX2(D%NIJB:D%NIJE))
       ENDWHERE
-      !$mnh_end_expand_where(JI=D%NIB:D%NIE)
+      !$mnh_end_expand_where(JI=D%NIJB:D%NIJE)
     ENDIF
   ENDIF !OMIXUV
   DO JSV=1,KSV 
     IF (ONOMIXLG .AND. JSV >= KSV_LGBEG .AND. JSV<= KSV_LGEND) CYCLE
-    !$mnh_expand_where(JI=D%NIB:D%NIE)
-    WHERE(GTEST(D%NIB:D%NIE)) 
-      PSV_UP(D%NIB:D%NIE,JK+D%NKL,JSV) = (PSV_UP(D%NIB:D%NIE,JK,JSV)*(1-0.5*ZMIX2(D%NIB:D%NIE)) + &
-                   PSVM(D%NIB:D%NIE,JK,JSV)*ZMIX2(D%NIB:D%NIE))  /(1+0.5*ZMIX2(D%NIB:D%NIE))
+    !$mnh_expand_where(JI=D%NIJB:D%NIJE)
+    WHERE(GTEST(D%NIJB:D%NIJE)) 
+      PSV_UP(D%NIJB:D%NIJE,JK+D%NKL,JSV) = (PSV_UP(D%NIJB:D%NIJE,JK,JSV)*(1-0.5*ZMIX2(D%NIJB:D%NIJE)) + &
+                   PSVM(D%NIJB:D%NIJE,JK,JSV)*ZMIX2(D%NIJB:D%NIJE))  /(1+0.5*ZMIX2(D%NIJB:D%NIJE))
     ENDWHERE
-    !$mnh_end_expand_where(JI=D%NIB:D%NIE)
+    !$mnh_end_expand_where(JI=D%NIJB:D%NIJE)
   END DO  
   
   IF (OENTR_DETR) THEN
 
     ! Compute non cons. var. at level JK+KKL
-    !$mnh_expand_array(JI=D%NIB:D%NIE)
-    ZRC_UP(D%NIB:D%NIE)=PRC_UP(D%NIB:D%NIE,JK) ! guess = level just below
-    ZRI_UP(D%NIB:D%NIE)=PRI_UP(D%NIB:D%NIE,JK) ! guess = level just below
-    !$mnh_end_expand_array(JI=D%NIB:D%NIE)
-    CALL TH_R_FROM_THL_RT(CST, NEB, D%NIT, HFRAC_ICE,PFRAC_ICE_UP(:,JK+D%NKL),ZPRES_F(:,JK+D%NKL), &
+    !$mnh_expand_array(JI=D%NIJB:D%NIJE)
+    ZRC_UP(D%NIJB:D%NIJE)=PRC_UP(D%NIJB:D%NIJE,JK) ! guess = level just below
+    ZRI_UP(D%NIJB:D%NIJE)=PRI_UP(D%NIJB:D%NIJE,JK) ! guess = level just below
+    !$mnh_end_expand_array(JI=D%NIJB:D%NIJE)
+    CALL TH_R_FROM_THL_RT(CST, NEB, D%NIJT, HFRAC_ICE,PFRAC_ICE_UP(:,JK+D%NKL),ZPRES_F(:,JK+D%NKL), &
             PTHL_UP(:,JK+D%NKL),PRT_UP(:,JK+D%NKL),ZTH_UP(:,JK+D%NKL),              &
             ZRV_UP(:),ZRC_UP(:),ZRI_UP(:),ZRSATW(:),ZRSATI(:), OOCEAN=.FALSE., &
-            PBUF=ZBUF(:,:), KB=D%NIB, KE=D%NIE)
-    !$mnh_expand_where(JI=D%NIB:D%NIE)
-    WHERE(GTEST(D%NIB:D%NIE))
-      PRC_UP(D%NIB:D%NIE,JK+D%NKL)=ZRC_UP(D%NIB:D%NIE)
-      PRV_UP(D%NIB:D%NIE,JK+D%NKL)=ZRV_UP(D%NIB:D%NIE)
-      PRI_UP(D%NIB:D%NIE,JK+D%NKL)=ZRI_UP(D%NIB:D%NIE)
-      PRSAT_UP(D%NIB:D%NIE,JK+D%NKL) = ZRSATW(D%NIB:D%NIE)*(1-PFRAC_ICE_UP(D%NIB:D%NIE,JK+D%NKL)) + &
-                                     & ZRSATI(D%NIB:D%NIE)*PFRAC_ICE_UP(D%NIB:D%NIE,JK+D%NKL)
+            PBUF=ZBUF(:,:), KB=D%NIJB, KE=D%NIJE)
+    !$mnh_expand_where(JI=D%NIJB:D%NIJE)
+    WHERE(GTEST(D%NIJB:D%NIJE))
+      PRC_UP(D%NIJB:D%NIJE,JK+D%NKL)=ZRC_UP(D%NIJB:D%NIJE)
+      PRV_UP(D%NIJB:D%NIJE,JK+D%NKL)=ZRV_UP(D%NIJB:D%NIJE)
+      PRI_UP(D%NIJB:D%NIJE,JK+D%NKL)=ZRI_UP(D%NIJB:D%NIJE)
+      PRSAT_UP(D%NIJB:D%NIJE,JK+D%NKL) = ZRSATW(D%NIJB:D%NIJE)*(1-PFRAC_ICE_UP(D%NIJB:D%NIJE,JK+D%NKL)) + &
+                                     & ZRSATI(D%NIJB:D%NIJE)*PFRAC_ICE_UP(D%NIJB:D%NIJE,JK+D%NKL)
     ENDWHERE
 
     ! Compute the updraft theta_v, buoyancy and w**2 for level JK+KKL
-    WHERE(GTEST(D%NIB:D%NIE))
-      PTHV_UP(D%NIB:D%NIE,JK+D%NKL) = ZTH_UP(D%NIB:D%NIE,JK+D%NKL)* &
-                                    & ((1+ZRVORD*PRV_UP(D%NIB:D%NIE,JK+D%NKL))/(1+PRT_UP(D%NIB:D%NIE,JK+D%NKL)))
-      WHERE (ZBUO_INTEG_DRY(D%NIB:D%NIE,JK)>0.)
-        ZW_UP2(D%NIB:D%NIE,JK+D%NKL)  = ZW_UP2(D%NIB:D%NIE,JK) + 2.*(PARAMMF%XABUO-PARAMMF%XBENTR*PARAMMF%XENTR_DRY)* &
-                                                                &ZBUO_INTEG_DRY(D%NIB:D%NIE,JK)
+    WHERE(GTEST(D%NIJB:D%NIJE))
+      PTHV_UP(D%NIJB:D%NIJE,JK+D%NKL) = ZTH_UP(D%NIJB:D%NIJE,JK+D%NKL)* &
+                                    & ((1+ZRVORD*PRV_UP(D%NIJB:D%NIJE,JK+D%NKL))/(1+PRT_UP(D%NIJB:D%NIJE,JK+D%NKL)))
+      WHERE (ZBUO_INTEG_DRY(D%NIJB:D%NIJE,JK)>0.)
+        ZW_UP2(D%NIJB:D%NIJE,JK+D%NKL)  = ZW_UP2(D%NIJB:D%NIJE,JK) + 2.*(PARAMMF%XABUO-PARAMMF%XBENTR*PARAMMF%XENTR_DRY)* &
+                                                                &ZBUO_INTEG_DRY(D%NIJB:D%NIJE,JK)
       ELSEWHERE
-        ZW_UP2(D%NIB:D%NIE,JK+D%NKL)  = ZW_UP2(D%NIB:D%NIE,JK) + 2.*PARAMMF%XABUO* ZBUO_INTEG_DRY(D%NIB:D%NIE,JK)
+        ZW_UP2(D%NIJB:D%NIJE,JK+D%NKL)  = ZW_UP2(D%NIJB:D%NIJE,JK) + 2.*PARAMMF%XABUO* ZBUO_INTEG_DRY(D%NIJB:D%NIJE,JK)
       ENDWHERE
-      ZW_UP2(D%NIB:D%NIE,JK+D%NKL)  = ZW_UP2(D%NIB:D%NIE,JK+D%NKL)*(1.-(PARAMMF%XBDETR*ZMIX3_CLD(D%NIB:D%NIE)+ &
-                                                                       &PARAMMF%XBENTR*ZMIX2_CLD(D%NIB:D%NIE)))&
-              /(1.+(PARAMMF%XBDETR*ZMIX3_CLD(D%NIB:D%NIE)+PARAMMF%XBENTR*ZMIX2_CLD(D%NIB:D%NIE))) &
-              +2.*(PARAMMF%XABUO)*ZBUO_INTEG_CLD(D%NIB:D%NIE,JK)/ &
-              &(1.+(PARAMMF%XBDETR*ZMIX3_CLD(D%NIB:D%NIE)+PARAMMF%XBENTR*ZMIX2_CLD(D%NIB:D%NIE)))
+      ZW_UP2(D%NIJB:D%NIJE,JK+D%NKL)  = ZW_UP2(D%NIJB:D%NIJE,JK+D%NKL)*(1.-(PARAMMF%XBDETR*ZMIX3_CLD(D%NIJB:D%NIJE)+ &
+                                                                       &PARAMMF%XBENTR*ZMIX2_CLD(D%NIJB:D%NIJE)))&
+              /(1.+(PARAMMF%XBDETR*ZMIX3_CLD(D%NIJB:D%NIJE)+PARAMMF%XBENTR*ZMIX2_CLD(D%NIJB:D%NIJE))) &
+              +2.*(PARAMMF%XABUO)*ZBUO_INTEG_CLD(D%NIJB:D%NIJE,JK)/ &
+              &(1.+(PARAMMF%XBDETR*ZMIX3_CLD(D%NIJB:D%NIJE)+PARAMMF%XBENTR*ZMIX2_CLD(D%NIJB:D%NIJE)))
     ENDWHERE
 
     ! Test if the updraft has reach the ETL
-    WHERE (GTEST(D%NIB:D%NIE).AND.(PBUO_INTEG(D%NIB:D%NIE,JK)<=0.))
-      KKETL(D%NIB:D%NIE) = JK+D%NKL
-      GTESTETL(D%NIB:D%NIE)=.TRUE.
+    WHERE (GTEST(D%NIJB:D%NIJE).AND.(PBUO_INTEG(D%NIJB:D%NIJE,JK)<=0.))
+      KKETL(D%NIJB:D%NIJE) = JK+D%NKL
+      GTESTETL(D%NIJB:D%NIJE)=.TRUE.
     ELSEWHERE
-      GTESTETL(D%NIB:D%NIE)=.FALSE.
+      GTESTETL(D%NIJB:D%NIJE)=.FALSE.
     ENDWHERE
 
     ! Test is we have reached the top of the updraft
-    WHERE (GTEST(D%NIB:D%NIE).AND.((ZW_UP2(D%NIB:D%NIE,JK+D%NKL)<=0.).OR.(PEMF(D%NIB:D%NIE,JK+D%NKL)<=0.)))
-        ZW_UP2(D%NIB:D%NIE,JK+D%NKL)=0.
-        PEMF(D%NIB:D%NIE,JK+D%NKL)=0.
-        GTEST(D%NIB:D%NIE)=.FALSE.
-        PTHL_UP(D%NIB:D%NIE,JK+D%NKL)=ZTHLM_F(D%NIB:D%NIE,JK+D%NKL)
-        PRT_UP(D%NIB:D%NIE,JK+D%NKL)=ZRTM_F(D%NIB:D%NIE,JK+D%NKL)
-        PRC_UP(D%NIB:D%NIE,JK+D%NKL)=0.
-        PRI_UP(D%NIB:D%NIE,JK+D%NKL)=0.
-        PRV_UP(D%NIB:D%NIE,JK+D%NKL)=0.
-        PTHV_UP(D%NIB:D%NIE,JK+D%NKL)=ZTHVM_F(D%NIB:D%NIE,JK+D%NKL)
-        PFRAC_UP(D%NIB:D%NIE,JK+D%NKL)=0.
-        KKCTL(D%NIB:D%NIE)=JK+D%NKL
+    WHERE (GTEST(D%NIJB:D%NIJE).AND.((ZW_UP2(D%NIJB:D%NIJE,JK+D%NKL)<=0.).OR.(PEMF(D%NIJB:D%NIJE,JK+D%NKL)<=0.)))
+        ZW_UP2(D%NIJB:D%NIJE,JK+D%NKL)=0.
+        PEMF(D%NIJB:D%NIJE,JK+D%NKL)=0.
+        GTEST(D%NIJB:D%NIJE)=.FALSE.
+        PTHL_UP(D%NIJB:D%NIJE,JK+D%NKL)=ZTHLM_F(D%NIJB:D%NIJE,JK+D%NKL)
+        PRT_UP(D%NIJB:D%NIJE,JK+D%NKL)=ZRTM_F(D%NIJB:D%NIJE,JK+D%NKL)
+        PRC_UP(D%NIJB:D%NIJE,JK+D%NKL)=0.
+        PRI_UP(D%NIJB:D%NIJE,JK+D%NKL)=0.
+        PRV_UP(D%NIJB:D%NIJE,JK+D%NKL)=0.
+        PTHV_UP(D%NIJB:D%NIJE,JK+D%NKL)=ZTHVM_F(D%NIJB:D%NIJE,JK+D%NKL)
+        PFRAC_UP(D%NIJB:D%NIJE,JK+D%NKL)=0.
+        KKCTL(D%NIJB:D%NIJE)=JK+D%NKL
     ENDWHERE
  
     ! compute frac_up at JK+KKL
-    WHERE (GTEST(D%NIB:D%NIE))
-      PFRAC_UP(D%NIB:D%NIE,JK+D%NKL)=PEMF(D%NIB:D%NIE,JK+D%NKL)/(SQRT(ZW_UP2(D%NIB:D%NIE,JK+D%NKL))*ZRHO_F(D%NIB:D%NIE,JK+D%NKL))
+    WHERE (GTEST(D%NIJB:D%NIJE))
+      PFRAC_UP(D%NIJB:D%NIJE,JK+D%NKL)=PEMF(D%NIJB:D%NIJE,JK+D%NKL)/&
+                                      &(SQRT(ZW_UP2(D%NIJB:D%NIJE,JK+D%NKL))*ZRHO_F(D%NIJB:D%NIJE,JK+D%NKL))
     ENDWHERE
 
     ! Updraft fraction must be smaller than XFRAC_UP_MAX
-    WHERE (GTEST(D%NIB:D%NIE))
-      PFRAC_UP(D%NIB:D%NIE,JK+D%NKL)=MIN(PARAMMF%XFRAC_UP_MAX,PFRAC_UP(D%NIB:D%NIE,JK+D%NKL))
+    WHERE (GTEST(D%NIJB:D%NIJE))
+      PFRAC_UP(D%NIJB:D%NIJE,JK+D%NKL)=MIN(PARAMMF%XFRAC_UP_MAX,PFRAC_UP(D%NIJB:D%NIJE,JK+D%NKL))
     ENDWHERE
 
     ! When cloudy and non-buoyant, updraft fraction must decrease
-    WHERE ((GTEST(D%NIB:D%NIE).AND.GTESTETL(D%NIB:D%NIE)).AND.GTESTLCL(D%NIB:D%NIE))
-      PFRAC_UP(D%NIB:D%NIE,JK+D%NKL)=MIN(PFRAC_UP(D%NIB:D%NIE,JK+D%NKL),PFRAC_UP(D%NIB:D%NIE,JK))
+    WHERE ((GTEST(D%NIJB:D%NIJE).AND.GTESTETL(D%NIJB:D%NIJE)).AND.GTESTLCL(D%NIJB:D%NIJE))
+      PFRAC_UP(D%NIJB:D%NIJE,JK+D%NKL)=MIN(PFRAC_UP(D%NIJB:D%NIJE,JK+D%NKL),PFRAC_UP(D%NIJB:D%NIJE,JK))
     ENDWHERE
 
     ! Mass flux is updated with the new updraft fraction
-    IF (OENTR_DETR) PEMF(D%NIB:D%NIE,JK+D%NKL)=PFRAC_UP(D%NIB:D%NIE,JK+D%NKL)*SQRT(ZW_UP2(D%NIB:D%NIE,JK+D%NKL))* &
-                                              &ZRHO_F(D%NIB:D%NIE,JK+D%NKL)
-    !$mnh_end_expand_where(JI=D%NIB:D%NIE)
+    IF (OENTR_DETR) PEMF(D%NIJB:D%NIJE,JK+D%NKL)=PFRAC_UP(D%NIJB:D%NIJE,JK+D%NKL)*SQRT(ZW_UP2(D%NIJB:D%NIJE,JK+D%NKL))* &
+                                              &ZRHO_F(D%NIJB:D%NIJE,JK+D%NKL)
+    !$mnh_end_expand_where(JI=D%NIJB:D%NIJE)
 
   END IF !OENTR_DETR
 ENDDO
 
 IF(OENTR_DETR) THEN
 
-  !$mnh_expand_array(JI=D%NIB:D%NIE,JK=1:D%NKT)
-  PW_UP(D%NIB:D%NIE,:)=SQRT(ZW_UP2(D%NIB:D%NIE,:))
-  !$mnh_end_expand_array(JI=D%NIB:D%NIE,JK=1:D%NKT)
+  !$mnh_expand_array(JI=D%NIJB:D%NIJE,JK=1:D%NKT)
+  PW_UP(D%NIJB:D%NIJE,:)=SQRT(ZW_UP2(D%NIJB:D%NIJE,:))
+  !$mnh_end_expand_array(JI=D%NIJB:D%NIJE,JK=1:D%NKT)
 
-  !$mnh_expand_array(JI=D%NIB:D%NIE)
-  PEMF(D%NIB:D%NIE,D%NKB) =0.
-  !$mnh_end_expand_array(JI=D%NIB:D%NIE)
+  !$mnh_expand_array(JI=D%NIJB:D%NIJE)
+  PEMF(D%NIJB:D%NIJE,D%NKB) =0.
+  !$mnh_end_expand_array(JI=D%NIJB:D%NIJE)
 
   ! Limits the shallow convection scheme when cloud heigth is higher than 3000m.
   ! To do this, mass flux is multiplied by a coefficient decreasing linearly
@@ -659,26 +666,26 @@ IF(OENTR_DETR) THEN
   ! This way, all MF fluxes are diminished by this amount.
   ! Diagnosed cloud fraction is also multiplied by the same coefficient.
   !
-  DO JI=D%NIB,D%NIE
+  DO JI=D%NIJB,D%NIJE
      PDEPTH(JI) = MAX(0., PZZ(JI,KKCTL(JI)) -  PZZ(JI,KKLCL(JI)) )
   END DO
 
-  !$mnh_expand_array(JI=D%NIB:D%NIE)
-  GWORK1(D%NIB:D%NIE)= (GTESTLCL(D%NIB:D%NIE) .AND. (PDEPTH(D%NIB:D%NIE) > ZDEPTH_MAX1) )
-  !$mnh_end_expand_array(JI=D%NIB:D%NIE)
+  !$mnh_expand_array(JI=D%NIJB:D%NIJE)
+  GWORK1(D%NIJB:D%NIJE)= (GTESTLCL(D%NIJB:D%NIJE) .AND. (PDEPTH(D%NIJB:D%NIJE) > ZDEPTH_MAX1) )
+  !$mnh_end_expand_array(JI=D%NIJB:D%NIJE)
   DO JK=1, D%NKT
-    !$mnh_expand_array(JI=D%NIB:D%NIE)
-    GWORK2(D%NIB:D%NIE,JK) = GWORK1(D%NIB:D%NIE)
-    ZCOEF(D%NIB:D%NIE,JK) = (1.-(PDEPTH(D%NIB:D%NIE)-ZDEPTH_MAX1)/(ZDEPTH_MAX2-ZDEPTH_MAX1))
-    ZCOEF(D%NIB:D%NIE,JK)=MIN(MAX(ZCOEF(D%NIB:D%NIE,JK),0.),1.)
-    !$mnh_end_expand_array(JI=D%NIB:D%NIE)
+    !$mnh_expand_array(JI=D%NIJB:D%NIJE)
+    GWORK2(D%NIJB:D%NIJE,JK) = GWORK1(D%NIJB:D%NIJE)
+    ZCOEF(D%NIJB:D%NIJE,JK) = (1.-(PDEPTH(D%NIJB:D%NIJE)-ZDEPTH_MAX1)/(ZDEPTH_MAX2-ZDEPTH_MAX1))
+    ZCOEF(D%NIJB:D%NIJE,JK)=MIN(MAX(ZCOEF(D%NIJB:D%NIJE,JK),0.),1.)
+    !$mnh_end_expand_array(JI=D%NIJB:D%NIJE)
   ENDDO
-  !$mnh_expand_where(JI=D%NIB:D%NIE,JK=1:D%NKT)
-  WHERE (GWORK2(D%NIB:D%NIE,:)) 
-    PEMF(D%NIB:D%NIE,:)     = PEMF(D%NIB:D%NIE,:)     * ZCOEF(D%NIB:D%NIE,:)
-    PFRAC_UP(D%NIB:D%NIE,:) = PFRAC_UP(D%NIB:D%NIE,:) * ZCOEF(D%NIB:D%NIE,:)
+  !$mnh_expand_where(JI=D%NIJB:D%NIJE,JK=1:D%NKT)
+  WHERE (GWORK2(D%NIJB:D%NIJE,:)) 
+    PEMF(D%NIJB:D%NIJE,:)     = PEMF(D%NIJB:D%NIJE,:)     * ZCOEF(D%NIJB:D%NIJE,:)
+    PFRAC_UP(D%NIJB:D%NIJE,:) = PFRAC_UP(D%NIJB:D%NIJE,:) * ZCOEF(D%NIJB:D%NIJE,:)
   ENDWHERE
-  !$mnh_end_expand_where(JI=D%NIB:D%NIE,JK=1:D%NKT)
+  !$mnh_end_expand_where(JI=D%NIJB:D%NIJE,JK=1:D%NKT)
 ENDIF
 
 IF (LHOOK) CALL DR_HOOK('COMPUTE_UPDRAFT',1,ZHOOK_HANDLE)
@@ -770,40 +777,40 @@ INTEGER,                INTENT(IN)   :: KK
 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
-LOGICAL,DIMENSION(D%NIT),   INTENT(IN)   :: OTEST ! test to see if updraft is running
-LOGICAL,DIMENSION(D%NIT),   INTENT(IN)   :: OTESTLCL !test of condensation 
+LOGICAL,DIMENSION(D%NIJT),   INTENT(IN)   :: OTEST ! test to see if updraft is running
+LOGICAL,DIMENSION(D%NIJT),   INTENT(IN)   :: OTESTLCL !test of condensation 
 CHARACTER(LEN=1),       INTENT(IN)   :: HFRAC_ICE ! frac_ice can be compute using
                                               ! Temperature (T) or prescribed
                                               ! (Y)
-REAL, DIMENSION(D%NIT), INTENT(IN)  :: PFRAC_ICE ! fraction of ice
+REAL, DIMENSION(D%NIJT), INTENT(IN)  :: PFRAC_ICE ! fraction of ice
 !
 !    prognostic variables at t- deltat
 !
-REAL, DIMENSION(D%NIT),     INTENT(IN) ::  PRHODREF  !rhodref
-REAL, DIMENSION(D%NIT),     INTENT(IN) ::  PPRE_MINUS_HALF ! Pressure at flux level KK
-REAL, DIMENSION(D%NIT),     INTENT(IN) ::  PPRE_PLUS_HALF ! Pressure at flux level KK+KKL
-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,D%NKT),   INTENT(IN) ::  PTHVM      ! ThetaV environment 
+REAL, DIMENSION(D%NIJT),     INTENT(IN) ::  PRHODREF  !rhodref
+REAL, DIMENSION(D%NIJT),     INTENT(IN) ::  PPRE_MINUS_HALF ! Pressure at flux level KK
+REAL, DIMENSION(D%NIJT),     INTENT(IN) ::  PPRE_PLUS_HALF ! Pressure at flux level KK+KKL
+REAL, DIMENSION(D%NIJT,D%NKT),   INTENT(IN) ::  PZZ       !  Height at the flux point
+REAL, DIMENSION(D%NIJT,D%NKT),   INTENT(IN) ::  PDZZ       !  metrics coefficient
+REAL, DIMENSION(D%NIJT,D%NKT),   INTENT(IN) ::  PTHVM      ! ThetaV environment 
 
 !
 !   thermodynamical variables which are transformed in conservative var.
 !
-REAL, DIMENSION(D%NIT,D%NKT), INTENT(IN) ::  PTHLM     ! Thetal
-REAL, DIMENSION(D%NIT,D%NKT), INTENT(IN) ::  PRTM      ! total mixing ratio 
-REAL, DIMENSION(D%NIT,D%NKT), INTENT(IN) ::  PW_UP2    ! Vertical velocity^2
-REAL, DIMENSION(D%NIT),   INTENT(IN)     ::  PTH_UP,PTHL_UP,PRT_UP  ! updraft properties
-REAL, DIMENSION(D%NIT),   INTENT(IN)     ::  PLUP      ! LUP compute from the ground
-REAL, DIMENSION(D%NIT),   INTENT(IN)     ::  PRC_UP,PRI_UP   ! Updraft cloud content
-REAL, DIMENSION(D%NIT),   INTENT(IN)     ::  PTHV_UP ! Thetav of updraft
-REAL, DIMENSION(D%NIT),   INTENT(IN)     ::  PRSAT_UP ! Mixing ratio at saturation in updraft
-REAL, DIMENSION(D%NIT),   INTENT(INOUT)  ::  PRC_MIX, PRI_MIX      ! Mixture cloud content
-REAL, DIMENSION(D%NIT),   INTENT(OUT)    ::  PENTR     ! Mass flux entrainment of the updraft
-REAL, DIMENSION(D%NIT),   INTENT(OUT)    ::  PDETR     ! Mass flux detrainment of the updraft
-REAL, DIMENSION(D%NIT),   INTENT(OUT)    ::  PENTR_CLD ! Mass flux entrainment of the updraft in cloudy part
-REAL, DIMENSION(D%NIT),   INTENT(OUT)    ::  PDETR_CLD ! Mass flux detrainment of the updraft in cloudy part
-REAL, DIMENSION(D%NIT),   INTENT(OUT)    ::  PBUO_INTEG_DRY, PBUO_INTEG_CLD! Integral Buoyancy
-REAL, DIMENSION(D%NIT),   INTENT(OUT)    ::  PPART_DRY ! ratio of dry part at the transition level
+REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) ::  PTHLM     ! Thetal
+REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) ::  PRTM      ! total mixing ratio 
+REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) ::  PW_UP2    ! Vertical velocity^2
+REAL, DIMENSION(D%NIJT),   INTENT(IN)     ::  PTH_UP,PTHL_UP,PRT_UP  ! updraft properties
+REAL, DIMENSION(D%NIJT),   INTENT(IN)     ::  PLUP      ! LUP compute from the ground
+REAL, DIMENSION(D%NIJT),   INTENT(IN)     ::  PRC_UP,PRI_UP   ! Updraft cloud content
+REAL, DIMENSION(D%NIJT),   INTENT(IN)     ::  PTHV_UP ! Thetav of updraft
+REAL, DIMENSION(D%NIJT),   INTENT(IN)     ::  PRSAT_UP ! Mixing ratio at saturation in updraft
+REAL, DIMENSION(D%NIJT),   INTENT(INOUT)  ::  PRC_MIX, PRI_MIX      ! Mixture cloud content
+REAL, DIMENSION(D%NIJT),   INTENT(OUT)    ::  PENTR     ! Mass flux entrainment of the updraft
+REAL, DIMENSION(D%NIJT),   INTENT(OUT)    ::  PDETR     ! Mass flux detrainment of the updraft
+REAL, DIMENSION(D%NIJT),   INTENT(OUT)    ::  PENTR_CLD ! Mass flux entrainment of the updraft in cloudy part
+REAL, DIMENSION(D%NIJT),   INTENT(OUT)    ::  PDETR_CLD ! Mass flux detrainment of the updraft in cloudy part
+REAL, DIMENSION(D%NIJT),   INTENT(OUT)    ::  PBUO_INTEG_DRY, PBUO_INTEG_CLD! Integral Buoyancy
+REAL, DIMENSION(D%NIJT),   INTENT(OUT)    ::  PPART_DRY ! ratio of dry part at the transition level
 !
 !
 !                       1.2  Declaration of local variables
@@ -818,16 +825,16 @@ REAL, DIMENSION(D%NIT),   INTENT(OUT)    ::  PPART_DRY ! ratio of dry part at th
 !                ------------------
   
 ZCOEFFMF_CLOUD=PARAMMF%XENTR_MF * CST%XG / PARAMMF%XCRAD_MF
-!$mnh_expand_array(JI=D%NIB:D%NIE)
-ZG_O_THVREF_ED(D%NIB:D%NIE)=CST%XG/PTHVM(D%NIB:D%NIE,KK)
+!$mnh_expand_array(JI=D%NIJB:D%NIJE)
+ZG_O_THVREF_ED(D%NIJB:D%NIJE)=CST%XG/PTHVM(D%NIJB:D%NIJE,KK)
 
-ZFRAC_ICE(D%NIB:D%NIE)=PFRAC_ICE(D%NIB:D%NIE) ! to not modify fraction of ice
+ZFRAC_ICE(D%NIJB:D%NIJE)=PFRAC_ICE(D%NIJB:D%NIJE) ! to not modify fraction of ice
 
-ZPRE(D%NIB:D%NIE)=PPRE_MINUS_HALF(D%NIB:D%NIE)
-!$mnh_end_expand_array(JI=D%NIB:D%NIE)
+ZPRE(D%NIJB:D%NIJE)=PPRE_MINUS_HALF(D%NIJB:D%NIJE)
+!$mnh_end_expand_array(JI=D%NIJB:D%NIJE)
 
 !                1.4 Estimation of PPART_DRY
-DO JI=D%NIB,D%NIE
+DO JI=D%NIJB,D%NIJE
   IF(OTEST(JI) .AND. OTESTLCL(JI)) THEN
     !No dry part when condensation level is reached
     PPART_DRY(JI)=0.
@@ -860,25 +867,25 @@ DO JI=D%NIB,D%NIE
 END DO
 
 !               1.5 Gradient and flux values of thetav
-!$mnh_expand_array(JI=D%NIB:D%NIE)
+!$mnh_expand_array(JI=D%NIJB:D%NIJE)
 IF(KK/=KKB)THEN
-  ZCOEFF_MINUS_HALF(D%NIB:D%NIE)=((PTHVM(D%NIB:D%NIE,KK)-PTHVM(D%NIB:D%NIE,KK-KKL))/PDZZ(D%NIB:D%NIE,KK))
-  ZTHV_MINUS_HALF(D%NIB:D%NIE) = PTHVM(D%NIB:D%NIE,KK) - &
-                               & ZCOEFF_MINUS_HALF(D%NIB:D%NIE)*0.5*(PZZ(D%NIB:D%NIE,KK+KKL)-PZZ(D%NIB:D%NIE,KK))
+  ZCOEFF_MINUS_HALF(D%NIJB:D%NIJE)=((PTHVM(D%NIJB:D%NIJE,KK)-PTHVM(D%NIJB:D%NIJE,KK-KKL))/PDZZ(D%NIJB:D%NIJE,KK))
+  ZTHV_MINUS_HALF(D%NIJB:D%NIJE) = PTHVM(D%NIJB:D%NIJE,KK) - &
+                               & ZCOEFF_MINUS_HALF(D%NIJB:D%NIJE)*0.5*(PZZ(D%NIJB:D%NIJE,KK+KKL)-PZZ(D%NIJB:D%NIJE,KK))
 ELSE
-  ZCOEFF_MINUS_HALF(D%NIB:D%NIE)=0.
-  ZTHV_MINUS_HALF(D%NIB:D%NIE) = PTHVM(D%NIB:D%NIE,KK)
+  ZCOEFF_MINUS_HALF(D%NIJB:D%NIJE)=0.
+  ZTHV_MINUS_HALF(D%NIJB:D%NIJE) = PTHVM(D%NIJB:D%NIJE,KK)
 ENDIF
-ZCOEFF_PLUS_HALF(D%NIB:D%NIE)  = ((PTHVM(D%NIB:D%NIE,KK+KKL)-PTHVM(D%NIB:D%NIE,KK))/PDZZ(D%NIB:D%NIE,KK+KKL))
-ZTHV_PLUS_HALF(D%NIB:D%NIE)  = PTHVM(D%NIB:D%NIE,KK) + &
-                             & ZCOEFF_PLUS_HALF(D%NIB:D%NIE)*0.5*(PZZ(D%NIB:D%NIE,KK+KKL)-PZZ(D%NIB:D%NIE,KK))
-!$mnh_end_expand_array(JI=D%NIB:D%NIE)
+ZCOEFF_PLUS_HALF(D%NIJB:D%NIJE)  = ((PTHVM(D%NIJB:D%NIJE,KK+KKL)-PTHVM(D%NIJB:D%NIJE,KK))/PDZZ(D%NIJB:D%NIJE,KK+KKL))
+ZTHV_PLUS_HALF(D%NIJB:D%NIJE)  = PTHVM(D%NIJB:D%NIJE,KK) + &
+                             & ZCOEFF_PLUS_HALF(D%NIJB:D%NIJE)*0.5*(PZZ(D%NIJB:D%NIJE,KK+KKL)-PZZ(D%NIJB:D%NIJE,KK))
+!$mnh_end_expand_array(JI=D%NIJB:D%NIJE)
 
 !               2  Dry part computation:
 !                  Integral buoyancy and computation of PENTR and PDETR for dry part
 !               --------------------------------------------------------------------
 
-DO JI=D%NIB,D%NIE
+DO JI=D%NIJB,D%NIJE
   IF (OTEST(JI) .AND. PPART_DRY(JI)>0.) THEN
     !Buoyancy computation in two parts to use change of gradient of theta v of environment
     !Between flux level KK and min(mass level, bottom of cloudy part)
@@ -927,21 +934,21 @@ ENDDO
 ! Compute theta_v of updraft at flux level KK+KKL                   
 !MIX variables are used to avoid declaring new variables
 !but we are dealing with updraft and not mixture
-!$mnh_expand_array(JI=D%NIB:D%NIE)
-ZRCMIX(D%NIB:D%NIE)=PRC_UP(D%NIB:D%NIE)
-ZRIMIX(D%NIB:D%NIE)=PRI_UP(D%NIB:D%NIE)
-!$mnh_end_expand_array(JI=D%NIB:D%NIE)
-CALL TH_R_FROM_THL_RT(CST,NEB,D%NIT,HFRAC_ICE,ZFRAC_ICE,&
+!$mnh_expand_array(JI=D%NIJB:D%NIJE)
+ZRCMIX(D%NIJB:D%NIJE)=PRC_UP(D%NIJB:D%NIJE)
+ZRIMIX(D%NIJB:D%NIJE)=PRI_UP(D%NIJB:D%NIJE)
+!$mnh_end_expand_array(JI=D%NIJB:D%NIJE)
+CALL TH_R_FROM_THL_RT(CST,NEB,D%NIJT,HFRAC_ICE,ZFRAC_ICE,&
              PPRE_PLUS_HALF,PTHL_UP,PRT_UP,&
              ZTHMIX,ZRVMIX,ZRCMIX,ZRIMIX,&
              ZRSATW_ED, ZRSATI_ED,OOCEAN=.FALSE.,&
-             PBUF=ZBUF, KB=D%NIB, KE=D%NIE)
-!$mnh_expand_array(JI=D%NIB:D%NIE)
-ZTHV_UP_F2(D%NIB:D%NIE) = ZTHMIX(D%NIB:D%NIE)*(1.+ZRVORD*ZRVMIX(D%NIB:D%NIE))/(1.+PRT_UP(D%NIB:D%NIE))
-!$mnh_end_expand_array(JI=D%NIB:D%NIE)
+             PBUF=ZBUF, KB=D%NIJB, KE=D%NIJE)
+!$mnh_expand_array(JI=D%NIJB:D%NIJE)
+ZTHV_UP_F2(D%NIJB:D%NIJE) = ZTHMIX(D%NIJB:D%NIJE)*(1.+ZRVORD*ZRVMIX(D%NIJB:D%NIJE))/(1.+PRT_UP(D%NIJB:D%NIJE))
+!$mnh_end_expand_array(JI=D%NIJB:D%NIJE)
 
 ! Integral buoyancy for cloudy part
-DO JI=D%NIB,D%NIE
+DO JI=D%NIJB,D%NIJE
   IF(OTEST(JI) .AND. PPART_DRY(JI)<1.) THEN
     !Gradient of Theta V updraft over the cloudy part, assuming that thetaV updraft don't change
     !between flux level KK and bottom of cloudy part
@@ -983,7 +990,7 @@ ZKIC_INIT=0.1  ! starting value for critical mixed fraction for CLoudy Part
 
 !   JKLIM computed to avoid KKL(KK-KKL) being < KKL*KKB
 JKLIM=KKL*MAX(KKL*(KK-KKL),KKL*KKB)
-DO JI=D%NIB,D%NIE
+DO JI=D%NIJB,D%NIJE
   IF(OTEST(JI) .AND. PPART_DRY(JI)>0.5) THEN
     ZDZ=ZDZ_STOP(JI)-0.5*(PZZ(JI,KK+KKL)-PZZ(JI,KK))
     ZTHV(JI)= PTHVM(JI,KK)+ZCOEFF_PLUS_HALF(JI)*ZDZ
@@ -1011,29 +1018,31 @@ DO JI=D%NIB,D%NIE
     ZMIXRT(JI) = 0.1
   ENDIF
 ENDDO
-CALL TH_R_FROM_THL_RT(CST,NEB,D%NIT,HFRAC_ICE,ZFRAC_ICE,&
+CALL TH_R_FROM_THL_RT(CST,NEB,D%NIJT,HFRAC_ICE,ZFRAC_ICE,&
              ZPRE,ZMIXTHL,ZMIXRT,&
              ZTHMIX,ZRVMIX,PRC_MIX,PRI_MIX,&
              ZRSATW_ED, ZRSATI_ED,OOCEAN=.FALSE.,&
-             PBUF=ZBUF, KB=D%NIB, KE=D%NIE)
-!$mnh_expand_array(JI=D%NIB:D%NIE)
-ZTHVMIX(D%NIB:D%NIE) = ZTHMIX(D%NIB:D%NIE)*(1.+ZRVORD*ZRVMIX(D%NIB:D%NIE))/(1.+ZMIXRT(D%NIB:D%NIE))
+             PBUF=ZBUF, KB=D%NIJB, KE=D%NIJE)
+!$mnh_expand_array(JI=D%NIJB:D%NIJE)
+ZTHVMIX(D%NIJB:D%NIJE) = ZTHMIX(D%NIJB:D%NIJE)*(1.+ZRVORD*ZRVMIX(D%NIJB:D%NIJE))/(1.+ZMIXRT(D%NIJB:D%NIJE))
 
 !  Compute cons then non cons. var. of mixture at the flux level KK+KKL  with initial ZKIC
-ZMIXTHL(D%NIB:D%NIE) = ZKIC_INIT * 0.5*(PTHLM(D%NIB:D%NIE,KK)+PTHLM(D%NIB:D%NIE,KK+KKL))+(1. - ZKIC_INIT)*PTHL_UP(D%NIB:D%NIE)
-ZMIXRT(D%NIB:D%NIE)  = ZKIC_INIT * 0.5*(PRTM(D%NIB:D%NIE,KK)+PRTM(D%NIB:D%NIE,KK+KKL))+(1. - ZKIC_INIT)*PRT_UP(D%NIB:D%NIE)
-!$mnh_end_expand_array(JI=D%NIB:D%NIE)
-CALL TH_R_FROM_THL_RT(CST,NEB,D%NIT,HFRAC_ICE,ZFRAC_ICE,&
+ZMIXTHL(D%NIJB:D%NIJE) = ZKIC_INIT * 0.5*(PTHLM(D%NIJB:D%NIJE,KK)+PTHLM(D%NIJB:D%NIJE,KK+KKL))+&
+                       & (1. - ZKIC_INIT)*PTHL_UP(D%NIJB:D%NIJE)
+ZMIXRT(D%NIJB:D%NIJE)  = ZKIC_INIT * 0.5*(PRTM(D%NIJB:D%NIJE,KK)+PRTM(D%NIJB:D%NIJE,KK+KKL))+&
+                       & (1. - ZKIC_INIT)*PRT_UP(D%NIJB:D%NIJE)
+!$mnh_end_expand_array(JI=D%NIJB:D%NIJE)
+CALL TH_R_FROM_THL_RT(CST,NEB,D%NIJT,HFRAC_ICE,ZFRAC_ICE,&
              PPRE_PLUS_HALF,ZMIXTHL,ZMIXRT,&
              ZTHMIX,ZRVMIX,PRC_MIX,PRI_MIX,&
              ZRSATW_ED, ZRSATI_ED,OOCEAN=.FALSE.,&
-             PBUF=ZBUF, KB=D%NIB, KE=D%NIE)
-!$mnh_expand_array(JI=D%NIB:D%NIE)
-ZTHVMIX_F2(D%NIB:D%NIE) = ZTHMIX(D%NIB:D%NIE)*(1.+ZRVORD*ZRVMIX(D%NIB:D%NIE))/(1.+ZMIXRT(D%NIB:D%NIE))
-!$mnh_end_expand_array(JI=D%NIB:D%NIE)
+             PBUF=ZBUF, KB=D%NIJB, KE=D%NIJE)
+!$mnh_expand_array(JI=D%NIJB:D%NIJE)
+ZTHVMIX_F2(D%NIJB:D%NIJE) = ZTHMIX(D%NIJB:D%NIJE)*(1.+ZRVORD*ZRVMIX(D%NIJB:D%NIJE))/(1.+ZMIXRT(D%NIJB:D%NIJE))
+!$mnh_end_expand_array(JI=D%NIJB:D%NIJE)
 
 !Computation of mean ZKIC over the cloudy part
-DO JI=D%NIB,D%NIE
+DO JI=D%NIJB,D%NIJE
   IF (OTEST(JI)) THEN
     ! Compute ZKIC at the bottom of cloudy part
     ! Thetav_up at bottom is equal to Thetav_up at flux level KK
@@ -1062,7 +1071,7 @@ END DO
 
 !Constant PDF
 !For this PDF, eq. (5) is delta Me=0.5*delta Mt
-DO JI=D%NIB,D%NIE
+DO JI=D%NIJB,D%NIJE
   IF(OTEST(JI)) THEN
     ZEPSI(JI) = ZKIC(JI)**2. !integration multiplied by 2
     ZDELTA(JI) = (1.-ZKIC(JI))**2. !idem
@@ -1073,19 +1082,19 @@ ENDDO
 !Calculus must be verified before activating this part, but in this state,
 !results on ARM case are almost identical
 !For this PDF, eq. (5) is also delta Me=0.5*delta Mt
-!WHERE(OTEST(D%NIB:D%NIE))
+!WHERE(OTEST(D%NIJB:D%NIJE))
 !  !Integration multiplied by 2
 !  WHERE(ZKIC<0.5)
-!    ZEPSI(D%NIB:D%NIE)=8.*ZKIC(D%NIB:D%NIE)**3/3.
-!    ZDELTA(D%NIB:D%NIE)=1.-4.*ZKIC(D%NIB:D%NIE)**2+8.*ZKIC(D%NIB:D%NIE)**3/3.
+!    ZEPSI(D%NIJB:D%NIJE)=8.*ZKIC(D%NIJB:D%NIJE)**3/3.
+!    ZDELTA(D%NIJB:D%NIJE)=1.-4.*ZKIC(D%NIJB:D%NIJE)**2+8.*ZKIC(D%NIJB:D%NIJE)**3/3.
 !  ELSEWHERE
-!    ZEPSI(D%NIB:D%NIE)=5./3.-4*ZKIC(D%NIB:D%NIE)**2+8.*ZKIC(D%NIB:D%NIE)**3/3.
-!    ZDELTA(D%NIB:D%NIE)=8.*(1.-ZKIC(D%NIB:D%NIE))**3/3.
+!    ZEPSI(D%NIJB:D%NIJE)=5./3.-4*ZKIC(D%NIJB:D%NIJE)**2+8.*ZKIC(D%NIJB:D%NIJE)**3/3.
+!    ZDELTA(D%NIJB:D%NIJE)=8.*(1.-ZKIC(D%NIJB:D%NIJE))**3/3.
 !  ENDWHERE
 !ENDWHERE
 
 !               3.4 Computation of PENTR and PDETR
-DO JI=D%NIB,D%NIE
+DO JI=D%NIJB,D%NIJE
   IF(OTEST(JI)) THEN
     ZEPSI_CLOUD=MIN(ZDELTA(JI), ZEPSI(JI))
     PENTR_CLD(JI) = (1.-PPART_DRY(JI))*ZCOEFFMF_CLOUD*PRHODREF(JI)*ZEPSI_CLOUD
diff --git a/src/common/turb/mode_compute_updraft_raha.F90 b/src/common/turb/mode_compute_updraft_raha.F90
index bb1dc222569a9a1e3d2c3154c15ee5f00c17ea88..8a4705cb429aa690964be656eabca7ceb36ae678 100644
--- a/src/common/turb/mode_compute_updraft_raha.F90
+++ b/src/common/turb/mode_compute_updraft_raha.F90
@@ -85,108 +85,108 @@ 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%NKT), INTENT(IN)   :: PZZ       !  Height at the flux point
-REAL, DIMENSION(D%NIT,D%NKT), INTENT(IN)   :: PDZZ      !  Metrics coefficient
+REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN)   :: PZZ       !  Height at the flux point
+REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN)   :: PDZZ      !  Metrics coefficient
  
-REAL, DIMENSION(D%NIT),   INTENT(IN)   ::  PSFTH,PSFRV
+REAL, DIMENSION(D%NIJT),   INTENT(IN)   ::  PSFTH,PSFRV
 ! normal surface fluxes of theta,rv,(u,v) parallel to the orography
 !
-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
+REAL, DIMENSION(D%NIJT,D%NKT),   INTENT(IN) ::  PPABSM     ! Pressure at t-dt
+REAL, DIMENSION(D%NIJT,D%NKT),   INTENT(IN) ::  PRHODREF   ! dry density of the
                                                   ! reference state
-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%NIJT,D%NKT),   INTENT(IN) ::  PUM        ! u mean wind
+REAL, DIMENSION(D%NIJT,D%NKT),   INTENT(IN) ::  PVM        ! v mean wind
+REAL, DIMENSION(D%NIJT,D%NKT),   INTENT(IN) ::  PTKEM      ! TKE at t-dt
+
+REAL, DIMENSION(D%NIJT,D%NKT),   INTENT(IN)   ::  PEXNM       ! Exner function at t-dt
+REAL, DIMENSION(D%NIJT,D%NKT),   INTENT(IN)   ::  PTHM           ! liquid pot. temp. at t-dt
+REAL, DIMENSION(D%NIJT,D%NKT),   INTENT(IN)   ::  PRVM           ! vapor mixing ratio at t-dt
+REAL, DIMENSION(D%NIJT,D%NKT),   INTENT(IN)   ::  PTHLM,PRTM     ! cons. var. at t-dt
+
+REAL, DIMENSION(D%NIJT,D%NKT,KSV), INTENT(IN)   ::  PSVM           ! scalar var. at t-dt
+
+REAL, DIMENSION(D%NIJT,D%NKT),   INTENT(OUT)  ::  PTHL_UP,PRT_UP   ! updraft properties
+REAL, DIMENSION(D%NIJT,D%NKT),   INTENT(OUT)  ::  PU_UP, PV_UP     ! updraft wind components
+REAL, DIMENSION(D%NIJT,D%NKT),   INTENT(INOUT)::  PRV_UP,PRC_UP    ! updraft rv, rc
+REAL, DIMENSION(D%NIJT,D%NKT),   INTENT(INOUT)::  PRI_UP,PTHV_UP   ! updraft ri, THv
+REAL, DIMENSION(D%NIJT,D%NKT),   INTENT(INOUT)::  PW_UP,PFRAC_UP   ! updraft w, fraction
+REAL, DIMENSION(D%NIJT,D%NKT),   INTENT(INOUT)::  PFRAC_ICE_UP     ! liquid/solid fraction in updraft
+REAL, DIMENSION(D%NIJT,D%NKT),   INTENT(INOUT)::  PRSAT_UP         ! Rsat
+
+REAL, DIMENSION(D%NIJT,D%NKT,KSV), INTENT(OUT)  ::  PSV_UP           ! updraft scalar var. 
                                          
-REAL, DIMENSION(D%NIT,D%NKT),   INTENT(INOUT)::  PEMF,PDETR,PENTR ! Mass_flux,
+REAL, DIMENSION(D%NIJT,D%NKT),   INTENT(INOUT)::  PEMF,PDETR,PENTR ! Mass_flux,
                                                           ! detrainment,entrainment
-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
+REAL, DIMENSION(D%NIJT,D%NKT),   INTENT(INOUT) :: PBUO_INTEG       ! Integrated Buoyancy 
+INTEGER, DIMENSION(D%NIJT),  INTENT(INOUT)::  KKLCL,KKETL,KKCTL! LCL, ETL, CTL                                     
+REAL, DIMENSION(D%NIJT),     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%NKT) ::    ZTHM_F,ZRVM_F,ZRCM_F    ! Theta,rv of
+REAL, DIMENSION(D%NIJT,D%NKT) ::    ZTHM_F,ZRVM_F,ZRCM_F    ! Theta,rv of
                                                                   ! updraft environnement
-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%NIJT,D%NKT) :: ZRTM_F, ZTHLM_F, ZTKEM_F      ! rt, thetal,TKE,pressure,
+REAL, DIMENSION(D%NIJT,D%NKT) :: ZUM_F,ZVM_F,ZRHO_F            ! density,momentum
+REAL, DIMENSION(D%NIJT,D%NKT) :: ZPRES_F,ZTHVM_F,ZTHVM         ! interpolated at the flux point
+REAL, DIMENSION(D%NIJT,D%NKT) :: ZG_O_THVREF                   ! g*ThetaV ref
+REAL, DIMENSION(D%NIJT,D%NKT) :: ZW_UP2                        ! w**2  of the updraft
 
-REAL, DIMENSION(D%NIT,D%NKT,KSV) :: ZSVM_F ! scalar variables 
+REAL, DIMENSION(D%NIJT,D%NKT,KSV) :: ZSVM_F ! scalar variables 
                         
 
                         
-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%NKT) :: ZBUO                          ! Buoyancy 
-REAL, DIMENSION(D%NIT,D%NKT) :: ZTHS_UP,ZTHSM
-
-REAL, DIMENSION(D%NIT,D%NKT) ::  ZCOEF  ! diminution coefficient for too high clouds 
+REAL, DIMENSION(D%NIJT,D%NKT) :: ZTH_UP                        ! updraft THETA 
+REAL, DIMENSION(D%NIJT)              :: ZT_UP                         ! updraft T
+REAL, DIMENSION(D%NIJT)              :: ZLVOCPEXN                     ! updraft L
+REAL, DIMENSION(D%NIJT)              :: ZCP                           ! updraft cp
+REAL, DIMENSION(D%NIJT,D%NKT) :: ZBUO                          ! Buoyancy 
+REAL, DIMENSION(D%NIJT,D%NKT) :: ZTHS_UP,ZTHSM
+
+REAL, DIMENSION(D%NIJT,D%NKT) ::  ZCOEF  ! diminution coefficient for too high clouds 
                         
-REAL, DIMENSION(D%NIT)            ::  ZWTHVSURF  ! Surface w'thetav'
+REAL, DIMENSION(D%NIJT)            ::  ZWTHVSURF  ! Surface w'thetav'
 
 REAL  :: ZRDORV       ! RD/RV
 REAL  :: ZRVORD       ! RV/RD
 
 
-REAL, DIMENSION(D%NIT) :: ZMIX1,ZMIX2,ZMIX3
+REAL, DIMENSION(D%NIJT) :: ZMIX1,ZMIX2,ZMIX3
 
-REAL, DIMENSION(D%NIT) :: ZLUP         ! Upward Mixing length from the ground
+REAL, DIMENSION(D%NIJT) :: ZLUP         ! Upward Mixing length from the ground
 
-REAL, DIMENSION(D%NIT) :: ZDEPTH       ! Deepness limit for cloud
+REAL, DIMENSION(D%NIJT) :: ZDEPTH       ! Deepness limit for cloud
 
 INTEGER  :: JK,JI,JJ,JSV          ! loop counters
 
-LOGICAL, DIMENSION(D%NIT) ::  GTEST,GTESTLCL,GTESTETL
+LOGICAL, DIMENSION(D%NIJT) ::  GTEST,GTESTLCL,GTESTETL
                                ! Test if the ascent continue, if LCL or ETL is reached
 LOGICAL                          ::  GLMIX 
                                ! To choose upward or downward mixing length
-LOGICAL, DIMENSION(D%NIT)              :: GWORK1
-LOGICAL, DIMENSION(D%NIT,D%NKT) :: GWORK2
+LOGICAL, DIMENSION(D%NIJT)              :: GWORK1
+LOGICAL, DIMENSION(D%NIJT,D%NKT) :: GWORK2
 
 
 INTEGER  :: ITEST
 
-REAL, DIMENSION(D%NIT) :: ZRC_UP, ZRI_UP, ZRV_UP, ZWP2, ZRSATW, ZRSATI
+REAL, DIMENSION(D%NIJT) :: 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%NKT) :: ZDTHETASDZ,ZALIM_STAR,ZZDZ,ZZZ
-INTEGER, DIMENSION(D%NIT) :: IALIM
+LOGICAL, DIMENSION(D%NIJT) :: GTEST_FER
+REAL,    DIMENSION(D%NIJT) :: ZPHI,ZALIM_STAR_TOT
+REAL,    DIMENSION(D%NIJT,D%NKT) :: ZDTHETASDZ,ZALIM_STAR,ZZDZ,ZZZ
+INTEGER, DIMENSION(D%NIJT) :: IALIM
 
-REAL, DIMENSION(D%NIT)              ::  ZTEST,ZDZ,ZWUP_MEAN    ! 
-REAL, DIMENSION(D%NIT)              ::  ZCOE,ZWCOE,ZBUCOE
-REAL, DIMENSION(D%NIT)              ::  ZDETR_BUO, ZDETR_RT
-REAL, DIMENSION(D%NIT)              ::  ZW_MAX               ! w**2  max of the updraft
-REAL, DIMENSION(D%NIT)              ::  ZZTOP                ! Top of the updraft
-REAL, DIMENSION(D%NIT)              ::  ZA,ZB,ZQTM,ZQT_UP
+REAL, DIMENSION(D%NIJT)              ::  ZTEST,ZDZ,ZWUP_MEAN    ! 
+REAL, DIMENSION(D%NIJT)              ::  ZCOE,ZWCOE,ZBUCOE
+REAL, DIMENSION(D%NIJT)              ::  ZDETR_BUO, ZDETR_RT
+REAL, DIMENSION(D%NIJT)              ::  ZW_MAX               ! w**2  max of the updraft
+REAL, DIMENSION(D%NIJT)              ::  ZZTOP                ! Top of the updraft
+REAL, DIMENSION(D%NIJT)              ::  ZA,ZB,ZQTM,ZQT_UP
 
 REAL  :: ZDEPTH_MAX1, ZDEPTH_MAX2 ! control auto-extinction process
 
 REAL  :: ZTMAX,ZRMAX, ZEPS  ! control value
-REAL, DIMENSION(D%NIT,16)           ::  ZBUF
+REAL, DIMENSION(D%NIJT,16)           ::  ZBUF
 
 REAL(KIND=JPRB) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('COMPUTE_UPDRAF_RAHA',0,ZHOOK_HANDLE)
@@ -236,9 +236,9 @@ ZBUO(:,:)      =0.
 !no ice cloud coded yet 
 PRI_UP(:,:)=0.
 PFRAC_ICE_UP(:,:)=0.
-!$mnh_expand_array(JI=D%NIB:D%NIE,JK=1:D%NKT)
-PRSAT_UP(D%NIB:D%NIE,:)=PRVM(D%NIB:D%NIE,:) ! should be initialised correctly but is (normaly) not used
-!$mnh_end_expand_array(JI=D%NIB:D%NIE,JK=1:D%NKT)
+!$mnh_expand_array(JI=D%NIJB:D%NIJE,JK=1:D%NKT)
+PRSAT_UP(D%NIJB:D%NIJE,:)=PRVM(D%NIJB:D%NIJE,:) ! should be initialised correctly but is (normaly) not used
+!$mnh_end_expand_array(JI=D%NIJB:D%NIJE,JK=1:D%NKT)
 
 ! Initialisation of environment variables at t-dt
 
@@ -251,80 +251,80 @@ CALL MZM_MF(D, PTKEM(:,:), ZTKEM_F(:,:))
 
 !DO JSV=1,ISV 
 ! IF (ONOMIXLG .AND. JSV >= KSV_LGBEG .AND. JSV<= KSV_LGEND) CYCLE
-!   ZSVM_F(D%NIB:D%NIE,KKB:IKU,JSV) = 0.5*(PSVM(D%NIB:D%NIE,KKB:IKU,JSV)+PSVM(D%NIB:D%NIE,1:IKU-1,JSV))
-!   ZSVM_F(D%NIB:D%NIE,1,JSV)       = ZSVM_F(D%NIB:D%NIE,KKB,JSV) 
+!   ZSVM_F(D%NIJB:D%NIJE,KKB:IKU,JSV) = 0.5*(PSVM(D%NIJB:D%NIJE,KKB:IKU,JSV)+PSVM(D%NIJB:D%NIJE,1:IKU-1,JSV))
+!   ZSVM_F(D%NIJB:D%NIJE,1,JSV)       = ZSVM_F(D%NIJB:D%NIJE,KKB,JSV) 
 !END DO  
 
 !          Initialisation of updraft characteristics 
-!$mnh_expand_array(JI=D%NIB:D%NIE,JK=1:D%NKT)
-PTHL_UP(D%NIB:D%NIE,:)=ZTHLM_F(D%NIB:D%NIE,:)
-PRT_UP(D%NIB:D%NIE,:)=ZRTM_F(D%NIB:D%NIE,:)
-PU_UP(D%NIB:D%NIE,:)=ZUM_F(D%NIB:D%NIE,:)
-PV_UP(D%NIB:D%NIE,:)=ZVM_F(D%NIB:D%NIE,:)
-!$mnh_end_expand_array(JI=D%NIB:D%NIE,JK=1:D%NKT)
+!$mnh_expand_array(JI=D%NIJB:D%NIJE,JK=1:D%NKT)
+PTHL_UP(D%NIJB:D%NIJE,:)=ZTHLM_F(D%NIJB:D%NIJE,:)
+PRT_UP(D%NIJB:D%NIJE,:)=ZRTM_F(D%NIJB:D%NIJE,:)
+PU_UP(D%NIJB:D%NIJE,:)=ZUM_F(D%NIJB:D%NIJE,:)
+PV_UP(D%NIJB:D%NIJE,:)=ZVM_F(D%NIJB:D%NIJE,:)
+!$mnh_end_expand_array(JI=D%NIJB:D%NIJE,JK=1:D%NKT)
 PSV_UP(:,:,:)=0.
 !IF (ONOMIXLG .AND. JSV >= KSV_LGBEG .AND. JSV<= KSV_LGEND) then
-!    PSV_UP(D%NIB:D%NIE,:,:)=ZSVM_F(D%NIB:D%NIE,:,:)
+!    PSV_UP(D%NIJB:D%NIJE,:,:)=ZSVM_F(D%NIJB:D%NIJE,:,:)
 !ENDIF
 
 ! Computation or initialisation of updraft characteristics at the KKB level
 ! thetal_up,rt_up,thetaV_up, w�,Buoyancy term and mass flux (PEMF)
 
-!$mnh_expand_array(JI=D%NIB:D%NIE)
-PTHL_UP(D%NIB:D%NIE,D%NKB)= ZTHLM_F(D%NIB:D%NIE,D%NKB)+ &
-                          & MAX(0.,MIN(ZTMAX,(PSFTH(D%NIB:D%NIE)/SQRT(ZTKEM_F(D%NIB:D%NIE,D%NKB)))*PARAMMF%XALP_PERT))
-PRT_UP(D%NIB:D%NIE,D%NKB) = ZRTM_F(D%NIB:D%NIE,D%NKB)+ &
-                          & MAX(0.,MIN(ZRMAX,(PSFRV(D%NIB:D%NIE)/SQRT(ZTKEM_F(D%NIB:D%NIE,D%NKB)))*PARAMMF%XALP_PERT)) 
+!$mnh_expand_array(JI=D%NIJB:D%NIJE)
+PTHL_UP(D%NIJB:D%NIJE,D%NKB)= ZTHLM_F(D%NIJB:D%NIJE,D%NKB)+ &
+                          & MAX(0.,MIN(ZTMAX,(PSFTH(D%NIJB:D%NIJE)/SQRT(ZTKEM_F(D%NIJB:D%NIJE,D%NKB)))*PARAMMF%XALP_PERT))
+PRT_UP(D%NIJB:D%NIJE,D%NKB) = ZRTM_F(D%NIJB:D%NIJE,D%NKB)+ &
+                          & MAX(0.,MIN(ZRMAX,(PSFRV(D%NIJB:D%NIJE)/SQRT(ZTKEM_F(D%NIJB:D%NIJE,D%NKB)))*PARAMMF%XALP_PERT)) 
 
-ZQT_UP(D%NIB:D%NIE) = PRT_UP(D%NIB:D%NIE,D%NKB)/(1.+PRT_UP(D%NIB:D%NIE,D%NKB))
-ZTHS_UP(D%NIB:D%NIE,D%NKB)=PTHL_UP(D%NIB:D%NIE,D%NKB)*(1.+PARAMMF%XLAMBDA_MF*ZQT_UP(D%NIB:D%NIE))
-!$mnh_end_expand_array(JI=D%NIB:D%NIE)
+ZQT_UP(D%NIJB:D%NIJE) = PRT_UP(D%NIJB:D%NIJE,D%NKB)/(1.+PRT_UP(D%NIJB:D%NIJE,D%NKB))
+ZTHS_UP(D%NIJB:D%NIJE,D%NKB)=PTHL_UP(D%NIJB:D%NIJE,D%NKB)*(1.+PARAMMF%XLAMBDA_MF*ZQT_UP(D%NIJB:D%NIJE))
+!$mnh_end_expand_array(JI=D%NIJB:D%NIJE)
 
 CALL MZM_MF(D, PTHM (:,:), ZTHM_F(:,:))
 CALL MZM_MF(D, PPABSM(:,:), ZPRES_F(:,:))
 CALL MZM_MF(D, PRHODREF(:,:), ZRHO_F(:,:))
 CALL MZM_MF(D, PRVM(:,:), ZRVM_F(:,:))
 
-!$mnh_expand_array(JI=D%NIB:D%NIE,JK=1:D%NKT)
+!$mnh_expand_array(JI=D%NIJB:D%NIJE,JK=1:D%NKT)
 ! thetav at mass and flux levels 
-ZTHVM_F(D%NIB:D%NIE,:)=ZTHM_F(D%NIB:D%NIE,:)*((1.+ZRVORD*ZRVM_F(D%NIB:D%NIE,:))/(1.+ZRTM_F(D%NIB:D%NIE,:)))
-ZTHVM(D%NIB:D%NIE,:)=PTHM(D%NIB:D%NIE,:)*((1.+ZRVORD*PRVM(D%NIB:D%NIE,:))/(1.+PRTM(D%NIB:D%NIE,:)))
+ZTHVM_F(D%NIJB:D%NIJE,:)=ZTHM_F(D%NIJB:D%NIJE,:)*((1.+ZRVORD*ZRVM_F(D%NIJB:D%NIJE,:))/(1.+ZRTM_F(D%NIJB:D%NIJE,:)))
+ZTHVM(D%NIJB:D%NIJE,:)=PTHM(D%NIJB:D%NIJE,:)*((1.+ZRVORD*PRVM(D%NIJB:D%NIJE,:))/(1.+PRTM(D%NIJB:D%NIJE,:)))
 
-PTHV_UP(D%NIB:D%NIE,:)= ZTHVM_F(D%NIB:D%NIE,:)
-PRV_UP(D%NIB:D%NIE,:) = ZRVM_F(D%NIB:D%NIE,:)
-!$mnh_end_expand_array(JI=D%NIB:D%NIE,JK=1:D%NKT)
+PTHV_UP(D%NIJB:D%NIJE,:)= ZTHVM_F(D%NIJB:D%NIJE,:)
+PRV_UP(D%NIJB:D%NIJE,:) = ZRVM_F(D%NIJB:D%NIJE,:)
+!$mnh_end_expand_array(JI=D%NIJB:D%NIJE,JK=1:D%NKT)
 
 ZW_UP2(:,:)=ZEPS
-!$mnh_expand_array(JI=D%NIB:D%NIE)
-ZW_UP2(D%NIB:D%NIE,D%NKB) = MAX(0.0001,(1./6.)*ZTKEM_F(D%NIB:D%NIE,D%NKB))
-GTEST(D%NIB:D%NIE) = (ZW_UP2(D%NIB:D%NIE,D%NKB) > ZEPS)  
-!$mnh_end_expand_array(JI=D%NIB:D%NIE)
+!$mnh_expand_array(JI=D%NIJB:D%NIJE)
+ZW_UP2(D%NIJB:D%NIJE,D%NKB) = MAX(0.0001,(1./6.)*ZTKEM_F(D%NIJB:D%NIJE,D%NKB))
+GTEST(D%NIJB:D%NIJE) = (ZW_UP2(D%NIJB:D%NIJE,D%NKB) > ZEPS)  
+!$mnh_end_expand_array(JI=D%NIJB:D%NIJE)
 
 ! Computation of non conservative variable for the KKB level of the updraft
 ! (all or nothing ajustement)
-!$mnh_expand_array(JI=D%NIB:D%NIE)
-PRC_UP(D%NIB:D%NIE,D%NKB)=0.
-PRI_UP(D%NIB:D%NIE,D%NKB)=0.
-!$mnh_end_expand_array(JI=D%NIB:D%NIE)
+!$mnh_expand_array(JI=D%NIJB:D%NIJE)
+PRC_UP(D%NIJB:D%NIJE,D%NKB)=0.
+PRI_UP(D%NIJB:D%NIJE,D%NKB)=0.
+!$mnh_end_expand_array(JI=D%NIJB:D%NIJE)
 
-CALL TH_R_FROM_THL_RT(CST, NEB, D%NIT, HFRAC_ICE,PFRAC_ICE_UP(:,D%NKB),ZPRES_F(:,D%NKB), &
+CALL TH_R_FROM_THL_RT(CST, NEB, D%NIJT, HFRAC_ICE,PFRAC_ICE_UP(:,D%NKB),ZPRES_F(:,D%NKB), &
              PTHL_UP(:,D%NKB),PRT_UP(:,D%NKB),ZTH_UP(:,D%NKB), &
              PRV_UP(:,D%NKB),PRC_UP(:,D%NKB),PRI_UP(:,D%NKB),ZRSATW(:),ZRSATI(:),OOCEAN=.FALSE.,&
-             PBUF=ZBUF, KB=D%NIB, KE=D%NIE)
+             PBUF=ZBUF, KB=D%NIJB, KE=D%NIJE)
 
-!$mnh_expand_array(JI=D%NIB:D%NIE)
+!$mnh_expand_array(JI=D%NIJB:D%NIJE)
 ! compute updraft thevav and buoyancy term at KKB level             
-PTHV_UP(D%NIB:D%NIE,D%NKB) = ZTH_UP(D%NIB:D%NIE,D%NKB)*((1+ZRVORD*PRV_UP(D%NIB:D%NIE,D%NKB))/(1+PRT_UP(D%NIB:D%NIE,D%NKB))) 
+PTHV_UP(D%NIJB:D%NIJE,D%NKB) = ZTH_UP(D%NIJB:D%NIJE,D%NKB)*((1+ZRVORD*PRV_UP(D%NIJB:D%NIJE,D%NKB))/(1+PRT_UP(D%NIJB:D%NIJE,D%NKB))) 
 ! compute mean rsat in updraft
-PRSAT_UP(D%NIB:D%NIE,D%NKB) = ZRSATW(D%NIB:D%NIE)*(1-PFRAC_ICE_UP(D%NIB:D%NIE,D%NKB)) + &
-                            & ZRSATI(D%NIB:D%NIE)*PFRAC_ICE_UP(D%NIB:D%NIE,D%NKB)
-!$mnh_end_expand_array(JI=D%NIB:D%NIE)
+PRSAT_UP(D%NIJB:D%NIJE,D%NKB) = ZRSATW(D%NIJB:D%NIJE)*(1-PFRAC_ICE_UP(D%NIJB:D%NIJE,D%NKB)) + &
+                            & ZRSATI(D%NIJB:D%NIJE)*PFRAC_ICE_UP(D%NIJB:D%NIJE,D%NKB)
+!$mnh_end_expand_array(JI=D%NIJB:D%NIJE)
 
 !Tout est commente pour tester dans un premier temps la s�paration en deux de la 
 !  boucle verticale, une pour w et une pour PEMF                                                            
-!$mnh_expand_array(JI=D%NIB:D%NIE,JK=1:D%NKT)
-ZG_O_THVREF(D%NIB:D%NIE,:)=CST%XG/ZTHVM_F(D%NIB:D%NIE,:)
-!$mnh_end_expand_array(JI=D%NIB:D%NIE,JK=1:D%NKT)
+!$mnh_expand_array(JI=D%NIJB:D%NIJE,JK=1:D%NKT)
+ZG_O_THVREF(D%NIJB:D%NIJE,:)=CST%XG/ZTHVM_F(D%NIJB:D%NIJE,:)
+!$mnh_end_expand_array(JI=D%NIJB:D%NIJE,JK=1:D%NKT)
 
 !  Definition de l'alimentation au sens de la fermeture de Hourdin et al
 
@@ -333,26 +333,27 @@ ZALIM_STAR_TOT(:) = 0.    ! <== Normalization of ZALIM_STAR
 IALIM(:)          = D%NKB   ! <== Top level of the alimentation layer
 
 DO JK=D%NKB,D%NKE-D%NKL,D%NKL   !  Vertical loop
-  !$mnh_expand_where(JI=D%NIB:D%NIE)
-  ZZDZ(D%NIB:D%NIE,JK)   = MAX(ZEPS,PZZ(D%NIB:D%NIE,JK+D%NKL)-PZZ(D%NIB:D%NIE,JK))       ! <== Delta Z between two flux level
-  ZZZ(D%NIB:D%NIE,JK)    = MAX(0.,0.5*(PZZ(D%NIB:D%NIE,JK+D%NKL)+PZZ(D%NIB:D%NIE,JK)) )  ! <== Hight of mass levels
-  ZDTHETASDZ(D%NIB:D%NIE,JK) = (ZTHVM_F(D%NIB:D%NIE,JK)-ZTHVM_F(D%NIB:D%NIE,JK+D%NKL))   ! <== Delta theta_v
+  !$mnh_expand_where(JI=D%NIJB:D%NIJE)
+  ZZDZ(D%NIJB:D%NIJE,JK)   = MAX(ZEPS,PZZ(D%NIJB:D%NIJE,JK+D%NKL)-PZZ(D%NIJB:D%NIJE,JK))       ! <== Delta Z between two flux level
+  ZZZ(D%NIJB:D%NIJE,JK)    = MAX(0.,0.5*(PZZ(D%NIJB:D%NIJE,JK+D%NKL)+PZZ(D%NIJB:D%NIJE,JK)) )  ! <== Hight of mass levels
+  ZDTHETASDZ(D%NIJB:D%NIJE,JK) = (ZTHVM_F(D%NIJB:D%NIJE,JK)-ZTHVM_F(D%NIJB:D%NIJE,JK+D%NKL))   ! <== Delta theta_v
   
-  WHERE ((ZTHVM_F(D%NIB:D%NIE,JK+D%NKL)<ZTHVM_F(D%NIB:D%NIE,JK)) .AND. (ZTHVM_F(D%NIB:D%NIE,D%NKB)>=ZTHVM_F(D%NIB:D%NIE,JK)))
-     ZALIM_STAR(D%NIB:D%NIE,JK)  = SQRT(ZZZ(D%NIB:D%NIE,JK))*ZDTHETASDZ(D%NIB:D%NIE,JK)/ZZDZ(D%NIB:D%NIE,JK)
-     ZALIM_STAR_TOT(D%NIB:D%NIE) = ZALIM_STAR_TOT(D%NIB:D%NIE)+ZALIM_STAR(D%NIB:D%NIE,JK)*ZZDZ(D%NIB:D%NIE,JK)
-     IALIM(D%NIB:D%NIE)          = JK
+  WHERE ((ZTHVM_F(D%NIJB:D%NIJE,JK+D%NKL)<ZTHVM_F(D%NIJB:D%NIJE,JK)) .AND. &
+        &(ZTHVM_F(D%NIJB:D%NIJE,D%NKB)>=ZTHVM_F(D%NIJB:D%NIJE,JK)))
+     ZALIM_STAR(D%NIJB:D%NIJE,JK)  = SQRT(ZZZ(D%NIJB:D%NIJE,JK))*ZDTHETASDZ(D%NIJB:D%NIJE,JK)/ZZDZ(D%NIJB:D%NIJE,JK)
+     ZALIM_STAR_TOT(D%NIJB:D%NIJE) = ZALIM_STAR_TOT(D%NIJB:D%NIJE)+ZALIM_STAR(D%NIJB:D%NIJE,JK)*ZZDZ(D%NIJB:D%NIJE,JK)
+     IALIM(D%NIJB:D%NIJE)          = JK
   ENDWHERE
-  !$mnh_end_expand_where(JI=D%NIB:D%NIE)
+  !$mnh_end_expand_where(JI=D%NIJB:D%NIJE)
 ENDDO
 
 ! Normalization of ZALIM_STAR
 DO JK=D%NKB,D%NKE-D%NKL,D%NKL   !  Vertical loop   
-   !$mnh_expand_where(JI=D%NIB:D%NIE)
-   WHERE (ZALIM_STAR_TOT(D%NIB:D%NIE) > ZEPS)
-      ZALIM_STAR(D%NIB:D%NIE,JK)  = ZALIM_STAR(D%NIB:D%NIE,JK)/ZALIM_STAR_TOT(D%NIB:D%NIE)
+   !$mnh_expand_where(JI=D%NIJB:D%NIJE)
+   WHERE (ZALIM_STAR_TOT(D%NIJB:D%NIJE) > ZEPS)
+      ZALIM_STAR(D%NIJB:D%NIJE,JK)  = ZALIM_STAR(D%NIJB:D%NIJE,JK)/ZALIM_STAR_TOT(D%NIJB:D%NIJE)
    ENDWHERE
-   !$mnh_end_expand_where(JI=D%NIB:D%NIE)
+   !$mnh_end_expand_where(JI=D%NIJB:D%NIJE)
 ENDDO
 ZALIM_STAR_TOT(:) = 0.
 
@@ -379,19 +380,19 @@ ZPHI(:) = 0.
 
 
 DO JK=D%NKB,D%NKE-D%NKL,D%NKL
-  !$mnh_expand_where(JI=D%NIB:D%NIE)
+  !$mnh_expand_where(JI=D%NIJB:D%NIJE)
   ! IF the updraft top is reached for all column, stop the loop on levels
 
-  !ITEST=COUNT(GTEST(D%NIB:D%NIE))
+  !ITEST=COUNT(GTEST(D%NIJB:D%NIJE))
   !IF (ITEST==0) CYCLE
 
   !       Computation of entrainment and detrainment with KF90
   !       parameterization in clouds and LR01 in subcloud layer
 
   ! to find the LCL (check if JK is LCL or not)
-  WHERE ((PRC_UP(D%NIB:D%NIE,JK)+PRI_UP(D%NIB:D%NIE,JK)>0.).AND.(.NOT.(GTESTLCL(D%NIB:D%NIE))))
-    KKLCL(D%NIB:D%NIE) = JK           
-    GTESTLCL(D%NIB:D%NIE)=.TRUE.
+  WHERE ((PRC_UP(D%NIJB:D%NIJE,JK)+PRI_UP(D%NIJB:D%NIJE,JK)>0.).AND.(.NOT.(GTESTLCL(D%NIJB:D%NIJE))))
+    KKLCL(D%NIJB:D%NIJE) = JK           
+    GTESTLCL(D%NIJB:D%NIJE)=.TRUE.
   ENDWHERE
 
   ! COMPUTE PENTR and PDETR at mass level JK
@@ -401,213 +402,221 @@ DO JK=D%NKB,D%NKE-D%NKL,D%NKL
 
   ! Compute theta_v of updraft at flux level JK    
     
-  ZRC_UP(D%NIB:D%NIE)  = PRC_UP(D%NIB:D%NIE,JK)
-  ZRI_UP(D%NIB:D%NIE)  = PRI_UP(D%NIB:D%NIE,JK) ! guess 
-  ZRV_UP(D%NIB:D%NIE)  = PRV_UP(D%NIB:D%NIE,JK)
-  ZBUO(D%NIB:D%NIE,JK) = ZG_O_THVREF(D%NIB:D%NIE,JK)*(PTHV_UP(D%NIB:D%NIE,JK) - ZTHVM_F(D%NIB:D%NIE,JK))
-  PBUO_INTEG(D%NIB:D%NIE,JK) = ZBUO(D%NIB:D%NIE,JK)*(PZZ(D%NIB:D%NIE,JK+D%NKL)-PZZ(D%NIB:D%NIE,JK))
+  ZRC_UP(D%NIJB:D%NIJE)  = PRC_UP(D%NIJB:D%NIJE,JK)
+  ZRI_UP(D%NIJB:D%NIJE)  = PRI_UP(D%NIJB:D%NIJE,JK) ! guess 
+  ZRV_UP(D%NIJB:D%NIJE)  = PRV_UP(D%NIJB:D%NIJE,JK)
+  ZBUO(D%NIJB:D%NIJE,JK) = ZG_O_THVREF(D%NIJB:D%NIJE,JK)*(PTHV_UP(D%NIJB:D%NIJE,JK) - ZTHVM_F(D%NIJB:D%NIJE,JK))
+  PBUO_INTEG(D%NIJB:D%NIJE,JK) = ZBUO(D%NIJB:D%NIJE,JK)*(PZZ(D%NIJB:D%NIJE,JK+D%NKL)-PZZ(D%NIJB:D%NIJE,JK))
   
-  ZDZ(D%NIB:D%NIE)   = MAX(ZEPS,PZZ(D%NIB:D%NIE,JK+D%NKL)-PZZ(D%NIB:D%NIE,JK))
-  ZTEST(D%NIB:D%NIE) = PARAMMF%XA1*ZBUO(D%NIB:D%NIE,JK) -  PARAMMF%XB*ZW_UP2(D%NIB:D%NIE,JK)
+  ZDZ(D%NIJB:D%NIJE)   = MAX(ZEPS,PZZ(D%NIJB:D%NIJE,JK+D%NKL)-PZZ(D%NIJB:D%NIJE,JK))
+  ZTEST(D%NIJB:D%NIJE) = PARAMMF%XA1*ZBUO(D%NIJB:D%NIJE,JK) -  PARAMMF%XB*ZW_UP2(D%NIJB:D%NIJE,JK)
 
-  ZCOE(D%NIB:D%NIE)      = ZDZ(D%NIB:D%NIE)
-  WHERE (ZTEST(D%NIB:D%NIE)>0.)
-    ZCOE(D%NIB:D%NIE)    = ZDZ(D%NIB:D%NIE)/(1.+ PARAMMF%XBETA1)
+  ZCOE(D%NIJB:D%NIJE)      = ZDZ(D%NIJB:D%NIJE)
+  WHERE (ZTEST(D%NIJB:D%NIJE)>0.)
+    ZCOE(D%NIJB:D%NIJE)    = ZDZ(D%NIJB:D%NIJE)/(1.+ PARAMMF%XBETA1)
   ENDWHERE   
 
   !  Calcul de la vitesse
 
-  ZWCOE(D%NIB:D%NIE)         = (1.-PARAMMF%XB*ZCOE(D%NIB:D%NIE))/(1.+PARAMMF%XB*ZCOE(D%NIB:D%NIE))
-  ZBUCOE(D%NIB:D%NIE)        =  2.*ZCOE(D%NIB:D%NIE)/(1.+PARAMMF%XB*ZCOE(D%NIB:D%NIE))
+  ZWCOE(D%NIJB:D%NIJE)         = (1.-PARAMMF%XB*ZCOE(D%NIJB:D%NIJE))/(1.+PARAMMF%XB*ZCOE(D%NIJB:D%NIJE))
+  ZBUCOE(D%NIJB:D%NIJE)        =  2.*ZCOE(D%NIJB:D%NIJE)/(1.+PARAMMF%XB*ZCOE(D%NIJB:D%NIJE))
 
-  ZW_UP2(D%NIB:D%NIE,JK+D%NKL) = MAX(ZEPS,ZW_UP2(D%NIB:D%NIE,JK)*ZWCOE(D%NIB:D%NIE) + &
-                                         &PARAMMF%XA1*ZBUO(D%NIB:D%NIE,JK)*ZBUCOE(D%NIB:D%NIE))
-  ZW_MAX(D%NIB:D%NIE) = MAX(ZW_MAX(D%NIB:D%NIE), SQRT(ZW_UP2(D%NIB:D%NIE,JK+D%NKL)))
-  ZWUP_MEAN(D%NIB:D%NIE)     = MAX(ZEPS,0.5*(ZW_UP2(D%NIB:D%NIE,JK+D%NKL)+ZW_UP2(D%NIB:D%NIE,JK)))
+  ZW_UP2(D%NIJB:D%NIJE,JK+D%NKL) = MAX(ZEPS,ZW_UP2(D%NIJB:D%NIJE,JK)*ZWCOE(D%NIJB:D%NIJE) + &
+                                         &PARAMMF%XA1*ZBUO(D%NIJB:D%NIJE,JK)*ZBUCOE(D%NIJB:D%NIJE))
+  ZW_MAX(D%NIJB:D%NIJE) = MAX(ZW_MAX(D%NIJB:D%NIJE), SQRT(ZW_UP2(D%NIJB:D%NIJE,JK+D%NKL)))
+  ZWUP_MEAN(D%NIJB:D%NIJE)     = MAX(ZEPS,0.5*(ZW_UP2(D%NIJB:D%NIJE,JK+D%NKL)+ZW_UP2(D%NIJB:D%NIJE,JK)))
 
   !  Entrainement et detrainement
 
-  PENTR(D%NIB:D%NIE,JK)  = MAX(0.,(PARAMMF%XBETA1/(1.+PARAMMF%XBETA1))* &
-                                 &(PARAMMF%XA1*ZBUO(D%NIB:D%NIE,JK)/ZWUP_MEAN(D%NIB:D%NIE)-PARAMMF%XB))
+  PENTR(D%NIJB:D%NIJE,JK)  = MAX(0.,(PARAMMF%XBETA1/(1.+PARAMMF%XBETA1))* &
+                                 &(PARAMMF%XA1*ZBUO(D%NIJB:D%NIJE,JK)/ZWUP_MEAN(D%NIJB:D%NIJE)-PARAMMF%XB))
   
-  ZDETR_BUO(D%NIB:D%NIE) = MAX(0., -(PARAMMF%XBETA1/(1.+PARAMMF%XBETA1))*PARAMMF%XA1*ZBUO(D%NIB:D%NIE,JK)/ &
-                                   &ZWUP_MEAN(D%NIB:D%NIE))
-  ZDETR_RT(D%NIB:D%NIE)  = PARAMMF%XC*SQRT(MAX(0.,(PRT_UP(D%NIB:D%NIE,JK) - ZRTM_F(D%NIB:D%NIE,JK))) / &
-                                          &MAX(ZEPS,ZRTM_F(D%NIB:D%NIE,JK)) / ZWUP_MEAN(D%NIB:D%NIE))
-  PDETR(D%NIB:D%NIE,JK)  = ZDETR_RT(D%NIB:D%NIE)+ZDETR_BUO(D%NIB:D%NIE)
+  ZDETR_BUO(D%NIJB:D%NIJE) = MAX(0., -(PARAMMF%XBETA1/(1.+PARAMMF%XBETA1))*PARAMMF%XA1*ZBUO(D%NIJB:D%NIJE,JK)/ &
+                                   &ZWUP_MEAN(D%NIJB:D%NIJE))
+  ZDETR_RT(D%NIJB:D%NIJE)  = PARAMMF%XC*SQRT(MAX(0.,(PRT_UP(D%NIJB:D%NIJE,JK) - ZRTM_F(D%NIJB:D%NIJE,JK))) / &
+                                          &MAX(ZEPS,ZRTM_F(D%NIJB:D%NIJE,JK)) / ZWUP_MEAN(D%NIJB:D%NIJE))
+  PDETR(D%NIJB:D%NIJE,JK)  = ZDETR_RT(D%NIJB:D%NIJE)+ZDETR_BUO(D%NIJB:D%NIJE)
 
    
   ! If the updraft did not stop, compute cons updraft characteritics at jk+1
-  WHERE(GTEST(D%NIB:D%NIE))     
-    ZZTOP(D%NIB:D%NIE) = MAX(ZZTOP(D%NIB:D%NIE),PZZ(D%NIB:D%NIE,JK+D%NKL))
-    ZMIX2(D%NIB:D%NIE) = (PZZ(D%NIB:D%NIE,JK+D%NKL)-PZZ(D%NIB:D%NIE,JK))*PENTR(D%NIB:D%NIE,JK) !&
-    ZMIX3(D%NIB:D%NIE) = (PZZ(D%NIB:D%NIE,JK+D%NKL)-PZZ(D%NIB:D%NIE,JK))*PDETR(D%NIB:D%NIE,JK) !&                   
+  WHERE(GTEST(D%NIJB:D%NIJE))     
+    ZZTOP(D%NIJB:D%NIJE) = MAX(ZZTOP(D%NIJB:D%NIJE),PZZ(D%NIJB:D%NIJE,JK+D%NKL))
+    ZMIX2(D%NIJB:D%NIJE) = (PZZ(D%NIJB:D%NIJE,JK+D%NKL)-PZZ(D%NIJB:D%NIJE,JK))*PENTR(D%NIJB:D%NIJE,JK) !&
+    ZMIX3(D%NIJB:D%NIJE) = (PZZ(D%NIJB:D%NIJE,JK+D%NKL)-PZZ(D%NIJB:D%NIJE,JK))*PDETR(D%NIJB:D%NIJE,JK) !&                   
            
-    ZQTM(D%NIB:D%NIE) = PRTM(D%NIB:D%NIE,JK)/(1.+PRTM(D%NIB:D%NIE,JK))            
-    ZTHSM(D%NIB:D%NIE,JK) = PTHLM(D%NIB:D%NIE,JK)*(1.+PARAMMF%XLAMBDA_MF*ZQTM(D%NIB:D%NIE))
-    ZTHS_UP(D%NIB:D%NIE,JK+D%NKL)=(ZTHS_UP(D%NIB:D%NIE,JK)*(1.-0.5*ZMIX2(D%NIB:D%NIE)) + ZTHSM(D%NIB:D%NIE,JK)*ZMIX2(D%NIB:D%NIE))&
-                          /(1.+0.5*ZMIX2(D%NIB:D%NIE))   
-    PRT_UP(D%NIB:D%NIE,JK+D%NKL)=(PRT_UP(D%NIB:D%NIE,JK)*(1.-0.5*ZMIX2(D%NIB:D%NIE)) + PRTM(D%NIB:D%NIE,JK)*ZMIX2(D%NIB:D%NIE))  &
-                          /(1.+0.5*ZMIX2(D%NIB:D%NIE))
-    ZQT_UP(D%NIB:D%NIE) = PRT_UP(D%NIB:D%NIE,JK+D%NKL)/(1.+PRT_UP(D%NIB:D%NIE,JK+D%NKL))
-    PTHL_UP(D%NIB:D%NIE,JK+D%NKL)=ZTHS_UP(D%NIB:D%NIE,JK+D%NKL)/(1.+PARAMMF%XLAMBDA_MF*ZQT_UP(D%NIB:D%NIE))                      
+    ZQTM(D%NIJB:D%NIJE) = PRTM(D%NIJB:D%NIJE,JK)/(1.+PRTM(D%NIJB:D%NIJE,JK))            
+    ZTHSM(D%NIJB:D%NIJE,JK) = PTHLM(D%NIJB:D%NIJE,JK)*(1.+PARAMMF%XLAMBDA_MF*ZQTM(D%NIJB:D%NIJE))
+    ZTHS_UP(D%NIJB:D%NIJE,JK+D%NKL)=(ZTHS_UP(D%NIJB:D%NIJE,JK)*(1.-0.5*ZMIX2(D%NIJB:D%NIJE)) + &
+                                    &ZTHSM(D%NIJB:D%NIJE,JK)*ZMIX2(D%NIJB:D%NIJE))&
+                          /(1.+0.5*ZMIX2(D%NIJB:D%NIJE))   
+    PRT_UP(D%NIJB:D%NIJE,JK+D%NKL)=(PRT_UP(D%NIJB:D%NIJE,JK)*(1.-0.5*ZMIX2(D%NIJB:D%NIJE)) + &
+                                   &PRTM(D%NIJB:D%NIJE,JK)*ZMIX2(D%NIJB:D%NIJE))  &
+                          /(1.+0.5*ZMIX2(D%NIJB:D%NIJE))
+    ZQT_UP(D%NIJB:D%NIJE) = PRT_UP(D%NIJB:D%NIJE,JK+D%NKL)/(1.+PRT_UP(D%NIJB:D%NIJE,JK+D%NKL))
+    PTHL_UP(D%NIJB:D%NIJE,JK+D%NKL)=ZTHS_UP(D%NIJB:D%NIJE,JK+D%NKL)/(1.+PARAMMF%XLAMBDA_MF*ZQT_UP(D%NIJB:D%NIJE))                      
   ENDWHERE
   
 
   IF(OMIXUV) THEN
     IF(JK/=D%NKB) THEN
-      WHERE(GTEST(D%NIB:D%NIE))
-        PU_UP(D%NIB:D%NIE,JK+D%NKL) = (PU_UP(D%NIB:D%NIE,JK)*(1-0.5*ZMIX2(D%NIB:D%NIE)) + PUM(D%NIB:D%NIE,JK)*ZMIX2(D%NIB:D%NIE)+ &
-                          0.5*PARAMMF%XPRES_UV*(PZZ(D%NIB:D%NIE,JK+D%NKL)-PZZ(D%NIB:D%NIE,JK))*&
-                          ((PUM(D%NIB:D%NIE,JK+D%NKL)-PUM(D%NIB:D%NIE,JK))/PDZZ(D%NIB:D%NIE,JK+D%NKL)+&
-                           (PUM(D%NIB:D%NIE,JK)-PUM(D%NIB:D%NIE,JK-D%NKL))/PDZZ(D%NIB:D%NIE,JK))        )   &
-                          /(1+0.5*ZMIX2(D%NIB:D%NIE))
-        PV_UP(D%NIB:D%NIE,JK+D%NKL) = (PV_UP(D%NIB:D%NIE,JK)*(1-0.5*ZMIX2(D%NIB:D%NIE)) + PVM(D%NIB:D%NIE,JK)*ZMIX2(D%NIB:D%NIE)+ &
-                          0.5*PARAMMF%XPRES_UV*(PZZ(D%NIB:D%NIE,JK+D%NKL)-PZZ(D%NIB:D%NIE,JK))*&
-                          ((PVM(D%NIB:D%NIE,JK+D%NKL)-PVM(D%NIB:D%NIE,JK))/PDZZ(D%NIB:D%NIE,JK+D%NKL)+&
-                           (PVM(D%NIB:D%NIE,JK)-PVM(D%NIB:D%NIE,JK-D%NKL))/PDZZ(D%NIB:D%NIE,JK))    )   &
-                          /(1+0.5*ZMIX2(D%NIB:D%NIE))
+      WHERE(GTEST(D%NIJB:D%NIJE))
+        PU_UP(D%NIJB:D%NIJE,JK+D%NKL) = (PU_UP(D%NIJB:D%NIJE,JK)*(1-0.5*ZMIX2(D%NIJB:D%NIJE)) + &
+                                        &PUM(D%NIJB:D%NIJE,JK)*ZMIX2(D%NIJB:D%NIJE)+ &
+                          0.5*PARAMMF%XPRES_UV*(PZZ(D%NIJB:D%NIJE,JK+D%NKL)-PZZ(D%NIJB:D%NIJE,JK))*&
+                          ((PUM(D%NIJB:D%NIJE,JK+D%NKL)-PUM(D%NIJB:D%NIJE,JK))/PDZZ(D%NIJB:D%NIJE,JK+D%NKL)+&
+                           (PUM(D%NIJB:D%NIJE,JK)-PUM(D%NIJB:D%NIJE,JK-D%NKL))/PDZZ(D%NIJB:D%NIJE,JK))        )   &
+                          /(1+0.5*ZMIX2(D%NIJB:D%NIJE))
+        PV_UP(D%NIJB:D%NIJE,JK+D%NKL) = (PV_UP(D%NIJB:D%NIJE,JK)*(1-0.5*ZMIX2(D%NIJB:D%NIJE)) + &
+                                        &PVM(D%NIJB:D%NIJE,JK)*ZMIX2(D%NIJB:D%NIJE)+ &
+                          0.5*PARAMMF%XPRES_UV*(PZZ(D%NIJB:D%NIJE,JK+D%NKL)-PZZ(D%NIJB:D%NIJE,JK))*&
+                          ((PVM(D%NIJB:D%NIJE,JK+D%NKL)-PVM(D%NIJB:D%NIJE,JK))/PDZZ(D%NIJB:D%NIJE,JK+D%NKL)+&
+                           (PVM(D%NIJB:D%NIJE,JK)-PVM(D%NIJB:D%NIJE,JK-D%NKL))/PDZZ(D%NIJB:D%NIJE,JK))    )   &
+                          /(1+0.5*ZMIX2(D%NIJB:D%NIJE))
       ENDWHERE
     ELSE
-      WHERE(GTEST(D%NIB:D%NIE))
-        PU_UP(D%NIB:D%NIE,JK+D%NKL) = (PU_UP(D%NIB:D%NIE,JK)*(1-0.5*ZMIX2(D%NIB:D%NIE)) + PUM(D%NIB:D%NIE,JK)*ZMIX2(D%NIB:D%NIE)+ &
-                          0.5*PARAMMF%XPRES_UV*(PZZ(D%NIB:D%NIE,JK+D%NKL)-PZZ(D%NIB:D%NIE,JK))*&
-                          ((PUM(D%NIB:D%NIE,JK+D%NKL)-PUM(D%NIB:D%NIE,JK))/PDZZ(D%NIB:D%NIE,JK+D%NKL))        )   &
-                          /(1+0.5*ZMIX2(D%NIB:D%NIE))
-        PV_UP(D%NIB:D%NIE,JK+D%NKL) = (PV_UP(D%NIB:D%NIE,JK)*(1-0.5*ZMIX2(D%NIB:D%NIE)) + PVM(D%NIB:D%NIE,JK)*ZMIX2(D%NIB:D%NIE)+ &
-                          0.5*PARAMMF%XPRES_UV*(PZZ(D%NIB:D%NIE,JK+D%NKL)-PZZ(D%NIB:D%NIE,JK))*&
-                          ((PVM(D%NIB:D%NIE,JK+D%NKL)-PVM(D%NIB:D%NIE,JK))/PDZZ(D%NIB:D%NIE,JK+D%NKL))    )   &
-                          /(1+0.5*ZMIX2(D%NIB:D%NIE))
+      WHERE(GTEST(D%NIJB:D%NIJE))
+        PU_UP(D%NIJB:D%NIJE,JK+D%NKL) = (PU_UP(D%NIJB:D%NIJE,JK)*(1-0.5*ZMIX2(D%NIJB:D%NIJE)) + &
+                                        &PUM(D%NIJB:D%NIJE,JK)*ZMIX2(D%NIJB:D%NIJE)+ &
+                          0.5*PARAMMF%XPRES_UV*(PZZ(D%NIJB:D%NIJE,JK+D%NKL)-PZZ(D%NIJB:D%NIJE,JK))*&
+                          ((PUM(D%NIJB:D%NIJE,JK+D%NKL)-PUM(D%NIJB:D%NIJE,JK))/PDZZ(D%NIJB:D%NIJE,JK+D%NKL))        )   &
+                          /(1+0.5*ZMIX2(D%NIJB:D%NIJE))
+        PV_UP(D%NIJB:D%NIJE,JK+D%NKL) = (PV_UP(D%NIJB:D%NIJE,JK)*(1-0.5*ZMIX2(D%NIJB:D%NIJE)) + &
+                                        &PVM(D%NIJB:D%NIJE,JK)*ZMIX2(D%NIJB:D%NIJE)+ &
+                          0.5*PARAMMF%XPRES_UV*(PZZ(D%NIJB:D%NIJE,JK+D%NKL)-PZZ(D%NIJB:D%NIJE,JK))*&
+                          ((PVM(D%NIJB:D%NIJE,JK+D%NKL)-PVM(D%NIJB:D%NIJE,JK))/PDZZ(D%NIJB:D%NIJE,JK+D%NKL))    )   &
+                          /(1+0.5*ZMIX2(D%NIJB:D%NIJE))
       ENDWHERE
 
     ENDIF
   ENDIF
   !DO JSV=1,ISV 
   !   IF (ONOMIXLG .AND. JSV >= KSV_LGBEG .AND. JSV<= KSV_LGEND) CYCLE
-  !    WHERE(GTEST(D%NIB:D%NIE)) 
-  !         PSV_UP(D%NIB:D%NIE,JK+KKL,JSV) = (PSV_UP(D%NIB:D%NIE,JK,JSV)*(1-0.5*ZMIX2(D%NIB:D%NIE)) + &
-  !                      PSVM(D%NIB:D%NIE,JK,JSV)*ZMIX2(D%NIB:D%NIE))  /(1+0.5*ZMIX2(D%NIB:D%NIE))
+  !    WHERE(GTEST(D%NIJB:D%NIJE)) 
+  !         PSV_UP(D%NIJB:D%NIJE,JK+KKL,JSV) = (PSV_UP(D%NIJB:D%NIJE,JK,JSV)*(1-0.5*ZMIX2(D%NIJB:D%NIJE)) + &
+  !                      PSVM(D%NIJB:D%NIJE,JK,JSV)*ZMIX2(D%NIJB:D%NIJE))  /(1+0.5*ZMIX2(D%NIJB:D%NIJE))
   !    ENDWHERE                        
   !ENDDO  
   
   
   ! Compute non cons. var. at level JK+KKL
-  ZRC_UP(D%NIB:D%NIE)=PRC_UP(D%NIB:D%NIE,JK) ! guess = level just below
-  ZRI_UP(D%NIB:D%NIE)=PRI_UP(D%NIB:D%NIE,JK) ! guess = level just below
-  ZRV_UP(D%NIB:D%NIE)=PRV_UP(D%NIB:D%NIE,JK)
-  !$mnh_end_expand_where(JI=D%NIB:D%NIE)
-  CALL TH_R_FROM_THL_RT(CST,NEB, D%NIT, HFRAC_ICE,PFRAC_ICE_UP(:,JK+D%NKL),ZPRES_F(:,JK+D%NKL), &
+  ZRC_UP(D%NIJB:D%NIJE)=PRC_UP(D%NIJB:D%NIJE,JK) ! guess = level just below
+  ZRI_UP(D%NIJB:D%NIJE)=PRI_UP(D%NIJB:D%NIJE,JK) ! guess = level just below
+  ZRV_UP(D%NIJB:D%NIJE)=PRV_UP(D%NIJB:D%NIJE,JK)
+  !$mnh_end_expand_where(JI=D%NIJB:D%NIJE)
+  CALL TH_R_FROM_THL_RT(CST,NEB, D%NIJT, HFRAC_ICE,PFRAC_ICE_UP(:,JK+D%NKL),ZPRES_F(:,JK+D%NKL), &
           PTHL_UP(:,JK+D%NKL),PRT_UP(:,JK+D%NKL),ZTH_UP(:,JK+D%NKL),              &
           ZRV_UP(:),ZRC_UP(:),ZRI_UP(:),ZRSATW(:),ZRSATI(:),OOCEAN=.FALSE.,&
-          PBUF=ZBUF, KB=D%NIB, KE=D%NIE)
-  !$mnh_expand_where(JI=D%NIB:D%NIE)
-  WHERE(GTEST(D%NIB:D%NIE))
-    ZT_UP(D%NIB:D%NIE) = ZTH_UP(D%NIB:D%NIE,JK+D%NKL)*PEXNM(D%NIB:D%NIE,JK+D%NKL)
-    ZCP(D%NIB:D%NIE) = CST%XCPD + CST%XCL * ZRC_UP(D%NIB:D%NIE)
-    ZLVOCPEXN(D%NIB:D%NIE)=(CST%XLVTT + (CST%XCPV-CST%XCL) *  (ZT_UP(D%NIB:D%NIE)-CST%XTT) ) / &
-                          &ZCP(D%NIB:D%NIE) / PEXNM(D%NIB:D%NIE,JK+D%NKL)
-    PRC_UP(D%NIB:D%NIE,JK+D%NKL)=MIN(0.5E-3,ZRC_UP(D%NIB:D%NIE))  ! On ne peut depasser 0.5 g/kg (autoconversion donc elimination !)
-    PTHL_UP(D%NIB:D%NIE,JK+D%NKL) = PTHL_UP(D%NIB:D%NIE,JK+D%NKL)+ &
-                                  & ZLVOCPEXN(D%NIB:D%NIE)*(ZRC_UP(D%NIB:D%NIE)-PRC_UP(D%NIB:D%NIE,JK+D%NKL))
-    PRV_UP(D%NIB:D%NIE,JK+D%NKL)=ZRV_UP(D%NIB:D%NIE)
-    PRI_UP(D%NIB:D%NIE,JK+D%NKL)=ZRI_UP(D%NIB:D%NIE)
-    PRT_UP(D%NIB:D%NIE,JK+D%NKL)  = PRC_UP(D%NIB:D%NIE,JK+D%NKL) + PRV_UP(D%NIB:D%NIE,JK+D%NKL)
-    PRSAT_UP(D%NIB:D%NIE,JK+D%NKL) = ZRSATW(D%NIB:D%NIE)*(1-PFRAC_ICE_UP(D%NIB:D%NIE,JK+D%NKL)) + &
-                                   & ZRSATI(D%NIB:D%NIE)*PFRAC_ICE_UP(D%NIB:D%NIE,JK+D%NKL)
+          PBUF=ZBUF, KB=D%NIJB, KE=D%NIJE)
+  !$mnh_expand_where(JI=D%NIJB:D%NIJE)
+  WHERE(GTEST(D%NIJB:D%NIJE))
+    ZT_UP(D%NIJB:D%NIJE) = ZTH_UP(D%NIJB:D%NIJE,JK+D%NKL)*PEXNM(D%NIJB:D%NIJE,JK+D%NKL)
+    ZCP(D%NIJB:D%NIJE) = CST%XCPD + CST%XCL * ZRC_UP(D%NIJB:D%NIJE)
+    ZLVOCPEXN(D%NIJB:D%NIJE)=(CST%XLVTT + (CST%XCPV-CST%XCL) *  (ZT_UP(D%NIJB:D%NIJE)-CST%XTT) ) / &
+                          &ZCP(D%NIJB:D%NIJE) / PEXNM(D%NIJB:D%NIJE,JK+D%NKL)
+    PRC_UP(D%NIJB:D%NIJE,JK+D%NKL)=MIN(0.5E-3,ZRC_UP(D%NIJB:D%NIJE))  ! On ne peut depasser 0.5 g/kg (autoconversion donc elimination !)
+    PTHL_UP(D%NIJB:D%NIJE,JK+D%NKL) = PTHL_UP(D%NIJB:D%NIJE,JK+D%NKL)+ &
+                                  & ZLVOCPEXN(D%NIJB:D%NIJE)*(ZRC_UP(D%NIJB:D%NIJE)-PRC_UP(D%NIJB:D%NIJE,JK+D%NKL))
+    PRV_UP(D%NIJB:D%NIJE,JK+D%NKL)=ZRV_UP(D%NIJB:D%NIJE)
+    PRI_UP(D%NIJB:D%NIJE,JK+D%NKL)=ZRI_UP(D%NIJB:D%NIJE)
+    PRT_UP(D%NIJB:D%NIJE,JK+D%NKL)  = PRC_UP(D%NIJB:D%NIJE,JK+D%NKL) + PRV_UP(D%NIJB:D%NIJE,JK+D%NKL)
+    PRSAT_UP(D%NIJB:D%NIJE,JK+D%NKL) = ZRSATW(D%NIJB:D%NIJE)*(1-PFRAC_ICE_UP(D%NIJB:D%NIJE,JK+D%NKL)) + &
+                                   & ZRSATI(D%NIJB:D%NIJE)*PFRAC_ICE_UP(D%NIJB:D%NIJE,JK+D%NKL)
   ENDWHERE
   
 
   ! Compute the updraft theta_v, buoyancy and w**2 for level JK+1   
-  WHERE(GTEST(D%NIB:D%NIE))
-    !PTHV_UP(D%NIB:D%NIE,JK+KKL) = ZTH_UP(D%NIB:D%NIE,JK+KKL)*((1+ZRVORD*PRV_UP(D%NIB:D%NIE,JK+KKL))/(1+PRT_UP(D%NIB:D%NIE,JK+KKL)))
-    PTHV_UP(D%NIB:D%NIE,JK+D%NKL) = ZTH_UP(D%NIB:D%NIE,JK+D%NKL)* &
-                                  & (1.+0.608*PRV_UP(D%NIB:D%NIE,JK+D%NKL) - PRC_UP(D%NIB:D%NIE,JK+D%NKL))
+  WHERE(GTEST(D%NIJB:D%NIJE))
+    !PTHV_UP(D%NIJB:D%NIJE,JK+KKL) = ZTH_UP(D%NIJB:D%NIJE,JK+KKL)*((1+ZRVORD*PRV_UP(D%NIJB:D%NIJE,JK+KKL))/(1+PRT_UP(D%NIJB:D%NIJE,JK+KKL)))
+    PTHV_UP(D%NIJB:D%NIJE,JK+D%NKL) = ZTH_UP(D%NIJB:D%NIJE,JK+D%NKL)* &
+                                  & (1.+0.608*PRV_UP(D%NIJB:D%NIJE,JK+D%NKL) - PRC_UP(D%NIJB:D%NIJE,JK+D%NKL))
   ENDWHERE
 
 
   ! Test if the updraft has reach the ETL
-  GTESTETL(D%NIB:D%NIE)=.FALSE.
-  WHERE (GTEST(D%NIB:D%NIE).AND.(PBUO_INTEG(D%NIB:D%NIE,JK)<=0.))
-    KKETL(D%NIB:D%NIE) = JK+D%NKL
-    GTESTETL(D%NIB:D%NIE)=.TRUE.
+  GTESTETL(D%NIJB:D%NIJE)=.FALSE.
+  WHERE (GTEST(D%NIJB:D%NIJE).AND.(PBUO_INTEG(D%NIJB:D%NIJE,JK)<=0.))
+    KKETL(D%NIJB:D%NIJE) = JK+D%NKL
+    GTESTETL(D%NIJB:D%NIJE)=.TRUE.
   ENDWHERE
 
   ! Test is we have reached the top of the updraft
-  WHERE (GTEST(D%NIB:D%NIE).AND.((ZW_UP2(D%NIB:D%NIE,JK+D%NKL)<=ZEPS)))
-    ZW_UP2(D%NIB:D%NIE,JK+D%NKL)=ZEPS
-    GTEST(D%NIB:D%NIE)=.FALSE.
-    PTHL_UP(D%NIB:D%NIE,JK+D%NKL)=ZTHLM_F(D%NIB:D%NIE,JK+D%NKL)
-    PRT_UP(D%NIB:D%NIE,JK+D%NKL)=ZRTM_F(D%NIB:D%NIE,JK+D%NKL)
-    PRC_UP(D%NIB:D%NIE,JK+D%NKL)=0.
-    PRI_UP(D%NIB:D%NIE,JK+D%NKL)=0.
-    PRV_UP(D%NIB:D%NIE,JK+D%NKL)=0.
-    PTHV_UP(D%NIB:D%NIE,JK+D%NKL)=ZTHVM_F(D%NIB:D%NIE,JK+D%NKL)
-    PFRAC_UP(D%NIB:D%NIE,JK+D%NKL)=0.
-    KKCTL(D%NIB:D%NIE)=JK+D%NKL
+  WHERE (GTEST(D%NIJB:D%NIJE).AND.((ZW_UP2(D%NIJB:D%NIJE,JK+D%NKL)<=ZEPS)))
+    ZW_UP2(D%NIJB:D%NIJE,JK+D%NKL)=ZEPS
+    GTEST(D%NIJB:D%NIJE)=.FALSE.
+    PTHL_UP(D%NIJB:D%NIJE,JK+D%NKL)=ZTHLM_F(D%NIJB:D%NIJE,JK+D%NKL)
+    PRT_UP(D%NIJB:D%NIJE,JK+D%NKL)=ZRTM_F(D%NIJB:D%NIJE,JK+D%NKL)
+    PRC_UP(D%NIJB:D%NIJE,JK+D%NKL)=0.
+    PRI_UP(D%NIJB:D%NIJE,JK+D%NKL)=0.
+    PRV_UP(D%NIJB:D%NIJE,JK+D%NKL)=0.
+    PTHV_UP(D%NIJB:D%NIJE,JK+D%NKL)=ZTHVM_F(D%NIJB:D%NIJE,JK+D%NKL)
+    PFRAC_UP(D%NIJB:D%NIJE,JK+D%NKL)=0.
+    KKCTL(D%NIJB:D%NIJE)=JK+D%NKL
   ENDWHERE
-  !$mnh_end_expand_where(JI=D%NIB:D%NIE)
+  !$mnh_end_expand_where(JI=D%NIJB:D%NIJE)
 ENDDO 
 
-! Closure assumption for mass flux at KKB+1 level (Mass flux is supposed to be 0 at KKB level !)                                                 
+! Closure assumption for mass flux at KKB+1 level (Mass flux is supposed to be 0 at KKB level !)
 !   Hourdin et al 2002 formulation
 
 
-!$mnh_expand_array(JI=D%NIB:D%NIE)
-ZZTOP(D%NIB:D%NIE) = MAX(ZZTOP(D%NIB:D%NIE),ZEPS)
-!$mnh_end_expand_array(JI=D%NIB:D%NIE)
+!$mnh_expand_array(JI=D%NIJB:D%NIJE)
+ZZTOP(D%NIJB:D%NIJE) = MAX(ZZTOP(D%NIJB:D%NIJE),ZEPS)
+!$mnh_end_expand_array(JI=D%NIJB:D%NIJE)
 
 DO JK=D%NKB+D%NKL,D%NKE-D%NKL,D%NKL !  Vertical loop
-  !$mnh_expand_where(JI=D%NIB:D%NIE)
-   WHERE(JK<=IALIM(D%NIB:D%NIE))
-     ZALIM_STAR_TOT(D%NIB:D%NIE) = ZALIM_STAR_TOT(D%NIB:D%NIE) + ZALIM_STAR(D%NIB:D%NIE,JK)**2* &
-                                                               & ZZDZ(D%NIB:D%NIE,JK)/PRHODREF(D%NIB:D%NIE,JK)
+  !$mnh_expand_where(JI=D%NIJB:D%NIJE)
+   WHERE(JK<=IALIM(D%NIJB:D%NIJE))
+     ZALIM_STAR_TOT(D%NIJB:D%NIJE) = ZALIM_STAR_TOT(D%NIJB:D%NIJE) + ZALIM_STAR(D%NIJB:D%NIJE,JK)**2* &
+                                                               & ZZDZ(D%NIJB:D%NIJE,JK)/PRHODREF(D%NIJB:D%NIJE,JK)
    ENDWHERE
-  !$mnh_end_expand_where(JI=D%NIB:D%NIE)
+  !$mnh_end_expand_where(JI=D%NIJB:D%NIJE)
 ENDDO   
 
-!$mnh_expand_where(JI=D%NIB:D%NIE)
-WHERE (ZALIM_STAR_TOT(D%NIB:D%NIE)*ZZTOP(D%NIB:D%NIE) > ZEPS)
- ZPHI(D%NIB:D%NIE) =  ZW_MAX(D%NIB:D%NIE)/(PARAMMF%XR*ZZTOP(D%NIB:D%NIE)*ZALIM_STAR_TOT(D%NIB:D%NIE))
+!$mnh_expand_where(JI=D%NIJB:D%NIJE)
+WHERE (ZALIM_STAR_TOT(D%NIJB:D%NIJE)*ZZTOP(D%NIJB:D%NIJE) > ZEPS)
+ ZPHI(D%NIJB:D%NIJE) =  ZW_MAX(D%NIJB:D%NIJE)/(PARAMMF%XR*ZZTOP(D%NIJB:D%NIJE)*ZALIM_STAR_TOT(D%NIJB:D%NIJE))
 ENDWHERE
 
-GTEST(D%NIB:D%NIE) = .TRUE.
-PEMF(D%NIB:D%NIE,D%NKB+D%NKL) = ZPHI(D%NIB:D%NIE)*ZZDZ(D%NIB:D%NIE,D%NKB)*ZALIM_STAR(D%NIB:D%NIE,D%NKB)
+GTEST(D%NIJB:D%NIJE) = .TRUE.
+PEMF(D%NIJB:D%NIJE,D%NKB+D%NKL) = ZPHI(D%NIJB:D%NIJE)*ZZDZ(D%NIJB:D%NIJE,D%NKB)*ZALIM_STAR(D%NIJB:D%NIJE,D%NKB)
 ! Updraft fraction must be smaller than XFRAC_UP_MAX
-PFRAC_UP(D%NIB:D%NIE,D%NKB+D%NKL)=PEMF(D%NIB:D%NIE,D%NKB+D%NKL)/ &
-                                 &(SQRT(ZW_UP2(D%NIB:D%NIE,D%NKB+D%NKL))*ZRHO_F(D%NIB:D%NIE,D%NKB+D%NKL))
-PFRAC_UP(D%NIB:D%NIE,D%NKB+D%NKL)=MIN(PARAMMF%XFRAC_UP_MAX,PFRAC_UP(D%NIB:D%NIE,D%NKB+D%NKL))
-PEMF(D%NIB:D%NIE,D%NKB+D%NKL) = ZRHO_F(D%NIB:D%NIE,D%NKB+D%NKL)*PFRAC_UP(D%NIB:D%NIE,D%NKB+D%NKL)* &
-                              & SQRT(ZW_UP2(D%NIB:D%NIE,D%NKB+D%NKL))
-!$mnh_end_expand_where(JI=D%NIB:D%NIE)
+PFRAC_UP(D%NIJB:D%NIJE,D%NKB+D%NKL)=PEMF(D%NIJB:D%NIJE,D%NKB+D%NKL)/ &
+                                 &(SQRT(ZW_UP2(D%NIJB:D%NIJE,D%NKB+D%NKL))*ZRHO_F(D%NIJB:D%NIJE,D%NKB+D%NKL))
+PFRAC_UP(D%NIJB:D%NIJE,D%NKB+D%NKL)=MIN(PARAMMF%XFRAC_UP_MAX,PFRAC_UP(D%NIJB:D%NIJE,D%NKB+D%NKL))
+PEMF(D%NIJB:D%NIJE,D%NKB+D%NKL) = ZRHO_F(D%NIJB:D%NIJE,D%NKB+D%NKL)*PFRAC_UP(D%NIJB:D%NIJE,D%NKB+D%NKL)* &
+                              & SQRT(ZW_UP2(D%NIJB:D%NIJE,D%NKB+D%NKL))
+!$mnh_end_expand_where(JI=D%NIJB:D%NIJE)
 
 DO JK=D%NKB+D%NKL,D%NKE-D%NKL,D%NKL !  Vertical loop
-  !$mnh_expand_where(JI=D%NIB:D%NIE)
+  !$mnh_expand_where(JI=D%NIJB:D%NIJE)
      
-  GTEST(D%NIB:D%NIE) = (ZW_UP2(D%NIB:D%NIE,JK) > ZEPS)  
+  GTEST(D%NIJB:D%NIJE) = (ZW_UP2(D%NIJB:D%NIJE,JK) > ZEPS)  
 
-  WHERE (GTEST(D%NIB:D%NIE))
-    WHERE(JK<IALIM(D%NIB:D%NIE))
-      PEMF(D%NIB:D%NIE,JK+D%NKL) = MAX(0.,PEMF(D%NIB:D%NIE,JK) + ZPHI(D%NIB:D%NIE)*ZZDZ(D%NIB:D%NIE,JK)* &
-                                                                & (PENTR(D%NIB:D%NIE,JK) - PDETR(D%NIB:D%NIE,JK)))
+  WHERE (GTEST(D%NIJB:D%NIJE))
+    WHERE(JK<IALIM(D%NIJB:D%NIJE))
+      PEMF(D%NIJB:D%NIJE,JK+D%NKL) = MAX(0.,PEMF(D%NIJB:D%NIJE,JK) + ZPHI(D%NIJB:D%NIJE)*ZZDZ(D%NIJB:D%NIJE,JK)* &
+                                                                & (PENTR(D%NIJB:D%NIJE,JK) - PDETR(D%NIJB:D%NIJE,JK)))
     ELSEWHERE
-      ZMIX1(D%NIB:D%NIE)=ZZDZ(D%NIB:D%NIE,JK)*(PENTR(D%NIB:D%NIE,JK)-PDETR(D%NIB:D%NIE,JK))
-      PEMF(D%NIB:D%NIE,JK+D%NKL)=PEMF(D%NIB:D%NIE,JK)*EXP(ZMIX1(D%NIB:D%NIE))
+      ZMIX1(D%NIJB:D%NIJE)=ZZDZ(D%NIJB:D%NIJE,JK)*(PENTR(D%NIJB:D%NIJE,JK)-PDETR(D%NIJB:D%NIJE,JK))
+      PEMF(D%NIJB:D%NIJE,JK+D%NKL)=PEMF(D%NIJB:D%NIJE,JK)*EXP(ZMIX1(D%NIJB:D%NIJE))
     ENDWHERE
 
 ! Updraft fraction must be smaller than XFRAC_UP_MAX
-    PFRAC_UP(D%NIB:D%NIE,JK+D%NKL)=PEMF(D%NIB:D%NIE,JK+D%NKL)/(SQRT(ZW_UP2(D%NIB:D%NIE,JK+D%NKL))*ZRHO_F(D%NIB:D%NIE,JK+D%NKL))
-    PFRAC_UP(D%NIB:D%NIE,JK+D%NKL)=MIN(PARAMMF%XFRAC_UP_MAX,PFRAC_UP(D%NIB:D%NIE,JK+D%NKL))
-    PEMF(D%NIB:D%NIE,JK+D%NKL) = ZRHO_F(D%NIB:D%NIE,JK+D%NKL)*PFRAC_UP(D%NIB:D%NIE,JK+D%NKL)*SQRT(ZW_UP2(D%NIB:D%NIE,JK+D%NKL))
+    PFRAC_UP(D%NIJB:D%NIJE,JK+D%NKL)=PEMF(D%NIJB:D%NIJE,JK+D%NKL)/&
+                                    &(SQRT(ZW_UP2(D%NIJB:D%NIJE,JK+D%NKL))*ZRHO_F(D%NIJB:D%NIJE,JK+D%NKL))
+    PFRAC_UP(D%NIJB:D%NIJE,JK+D%NKL)=MIN(PARAMMF%XFRAC_UP_MAX,PFRAC_UP(D%NIJB:D%NIJE,JK+D%NKL))
+    PEMF(D%NIJB:D%NIJE,JK+D%NKL) = ZRHO_F(D%NIJB:D%NIJE,JK+D%NKL)*PFRAC_UP(D%NIJB:D%NIJE,JK+D%NKL)*&
+                                 & SQRT(ZW_UP2(D%NIJB:D%NIJE,JK+D%NKL))
   ENDWHERE
-  !$mnh_end_expand_where(JI=D%NIB:D%NIE)
+  !$mnh_end_expand_where(JI=D%NIJB:D%NIJE)
 ENDDO
 
-!$mnh_expand_array(JI=D%NIB:D%NIE,JK=1:D%NKT)
-PW_UP(D%NIB:D%NIE,:)=SQRT(ZW_UP2(D%NIB:D%NIE,:))
-!$mnh_end_expand_array(JI=D%NIB:D%NIE,JK=1:D%NKT)
-!$mnh_expand_array(JI=D%NIB:D%NIE)
-PEMF(D%NIB:D%NIE,D%NKB) =0.
-!$mnh_end_expand_array(JI=D%NIB:D%NIE)
+!$mnh_expand_array(JI=D%NIJB:D%NIJE,JK=1:D%NKT)
+PW_UP(D%NIJB:D%NIJE,:)=SQRT(ZW_UP2(D%NIJB:D%NIJE,:))
+!$mnh_end_expand_array(JI=D%NIJB:D%NIJE,JK=1:D%NKT)
+!$mnh_expand_array(JI=D%NIJB:D%NIJE)
+PEMF(D%NIJB:D%NIJE,D%NKB) =0.
+!$mnh_end_expand_array(JI=D%NIJB:D%NIJE)
 
 ! Limits the shallow convection scheme when cloud heigth is higher than 3000m.
 ! To do this, mass flux is multiplied by a coefficient decreasing linearly
@@ -615,26 +624,26 @@ PEMF(D%NIB:D%NIE,D%NKB) =0.
 ! This way, all MF fluxes are diminished by this amount.
 ! Diagnosed cloud fraction is also multiplied by the same coefficient.
 !
-DO JI=D%NIB,D%NIE 
+DO JI=D%NIJB,D%NIJE 
   PDEPTH(JI) = MAX(0., PZZ(JI,KKCTL(JI)) -  PZZ(JI,KKLCL(JI)) )
 END DO
 
-!$mnh_expand_array(JI=D%NIB:D%NIE)
-GWORK1(D%NIB:D%NIE)= (GTESTLCL(D%NIB:D%NIE) .AND. (PDEPTH(D%NIB:D%NIE) > ZDEPTH_MAX1) )
-!$mnh_end_expand_array(JI=D%NIB:D%NIE)
+!$mnh_expand_array(JI=D%NIJB:D%NIJE)
+GWORK1(D%NIJB:D%NIJE)= (GTESTLCL(D%NIJB:D%NIJE) .AND. (PDEPTH(D%NIJB:D%NIJE) > ZDEPTH_MAX1) )
+!$mnh_end_expand_array(JI=D%NIJB:D%NIJE)
 DO JK=1,D%NKT
-  !$mnh_expand_array(JI=D%NIB:D%NIE)
-  GWORK2(D%NIB:D%NIE,JK) = GWORK1(D%NIB:D%NIE)
-  ZCOEF(D%NIB:D%NIE,JK) = (1.-(PDEPTH(D%NIB:D%NIE)-ZDEPTH_MAX1)/(ZDEPTH_MAX2-ZDEPTH_MAX1))
-  ZCOEF(D%NIB:D%NIE,JK)=MIN(MAX(ZCOEF(D%NIB:D%NIE,JK),0.),1.)
-  !$mnh_end_expand_array(JI=D%NIB:D%NIE)
+  !$mnh_expand_array(JI=D%NIJB:D%NIJE)
+  GWORK2(D%NIJB:D%NIJE,JK) = GWORK1(D%NIJB:D%NIJE)
+  ZCOEF(D%NIJB:D%NIJE,JK) = (1.-(PDEPTH(D%NIJB:D%NIJE)-ZDEPTH_MAX1)/(ZDEPTH_MAX2-ZDEPTH_MAX1))
+  ZCOEF(D%NIJB:D%NIJE,JK)=MIN(MAX(ZCOEF(D%NIJB:D%NIJE,JK),0.),1.)
+  !$mnh_end_expand_array(JI=D%NIJB:D%NIJE)
 ENDDO
-!$mnh_expand_where(JI=D%NIB:D%NIE,JK=1:D%NKT)
-WHERE (GWORK2(D%NIB:D%NIE,:)) 
-  PEMF(D%NIB:D%NIE,:)     = PEMF(D%NIB:D%NIE,:)     * ZCOEF(D%NIB:D%NIE,:)
-  PFRAC_UP(D%NIB:D%NIE,:) = PFRAC_UP(D%NIB:D%NIE,:) * ZCOEF(D%NIB:D%NIE,:)
+!$mnh_expand_where(JI=D%NIJB:D%NIJE,JK=1:D%NKT)
+WHERE (GWORK2(D%NIJB:D%NIJE,:)) 
+  PEMF(D%NIJB:D%NIJE,:)     = PEMF(D%NIJB:D%NIJE,:)     * ZCOEF(D%NIJB:D%NIJE,:)
+  PFRAC_UP(D%NIJB:D%NIJE,:) = PFRAC_UP(D%NIJB:D%NIJE,:) * ZCOEF(D%NIJB:D%NIJE,:)
 ENDWHERE
-!$mnh_end_expand_where(JI=D%NIB:D%NIE,JK=1:D%NKT)
+!$mnh_end_expand_where(JI=D%NIJB:D%NIJE,JK=1:D%NKT)
 
 IF (LHOOK) CALL DR_HOOK('COMPUTE_UPDRAF_RAHA',1,ZHOOK_HANDLE)
 !
diff --git a/src/common/turb/mode_compute_updraft_rhcj10.F90 b/src/common/turb/mode_compute_updraft_rhcj10.F90
index c3fcc7fc5a5ae05b519be3ec2b443de64c3c28ab..84cf4e7ebc17e54c00bb7be618b6b46bf9ed6ef1 100644
--- a/src/common/turb/mode_compute_updraft_rhcj10.F90
+++ b/src/common/turb/mode_compute_updraft_rhcj10.F90
@@ -93,105 +93,105 @@ 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%NKT), INTENT(IN)   :: PZZ       !  Height at the flux point
-REAL, DIMENSION(D%NIT,D%NKT), INTENT(IN)   :: PDZZ      !  Metrics coefficient
+REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN)   :: PZZ       !  Height at the flux point
+REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN)   :: PDZZ      !  Metrics coefficient
  
-REAL, DIMENSION(D%NIT),   INTENT(IN)   ::  PSFTH,PSFRV
+REAL, DIMENSION(D%NIJT),   INTENT(IN)   ::  PSFTH,PSFRV
 ! normal surface fluxes of theta,rv,(u,v) parallel to the orography
 
-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
+REAL, DIMENSION(D%NIJT,D%NKT),   INTENT(IN) ::  PPABSM     ! Pressure at t-dt
+REAL, DIMENSION(D%NIJT,D%NKT),   INTENT(IN) ::  PRHODREF   ! dry density of the
                                                   ! reference state
-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%NIJT,D%NKT),   INTENT(IN) ::  PUM        ! u mean wind
+REAL, DIMENSION(D%NIJT,D%NKT),   INTENT(IN) ::  PVM        ! v mean wind
+REAL, DIMENSION(D%NIJT,D%NKT),   INTENT(IN) ::  PTKEM      ! TKE at t-dt
 !
 !REAL, DIMENSION(:,:),   INTENT(IN)   ::  PEXNM       ! Exner function at t-dt
-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%NIJT,D%NKT),   INTENT(IN)   ::  PTHM           ! pot. temp. at t-dt
+REAL, DIMENSION(D%NIJT,D%NKT),   INTENT(IN)   ::  PRVM           ! vapor mixing ratio at t-dt
+REAL, DIMENSION(D%NIJT,D%NKT),   INTENT(IN)   ::  PTHLM,PRTM     ! cons. var. at t-dt
+
+REAL, DIMENSION(D%NIJT,D%NKT,KSV), INTENT(IN)   ::  PSVM           ! scalar var. at t-dt
+
+REAL, DIMENSION(D%NIJT,D%NKT),   INTENT(OUT)  ::  PTHL_UP,PRT_UP   ! updraft properties
+REAL, DIMENSION(D%NIJT,D%NKT),   INTENT(OUT)  ::  PU_UP, PV_UP     ! updraft wind components
+REAL, DIMENSION(D%NIJT,D%NKT),   INTENT(INOUT)::  PRV_UP,PRC_UP    ! updraft rv, rc
+REAL, DIMENSION(D%NIJT,D%NKT),   INTENT(INOUT)::  PRI_UP           ! updraft ri
+REAL, DIMENSION(D%NIJT,D%NKT),   INTENT(INOUT)::  PTHV_UP          ! updraft THv
+REAL, DIMENSION(D%NIJT,D%NKT),   INTENT(INOUT)::  PW_UP,PFRAC_UP   ! updraft w, fraction
+REAL, DIMENSION(D%NIJT,D%NKT),   INTENT(INOUT)::  PFRAC_ICE_UP     ! liquid/solid fraction in updraft
+REAL, DIMENSION(D%NIJT,D%NKT),   INTENT(INOUT)::  PRSAT_UP         ! Rsat
+
+REAL, DIMENSION(D%NIJT,D%NKT,KSV), INTENT(OUT)  ::  PSV_UP           ! updraft scalar var. 
                                          
-REAL, DIMENSION(D%NIT,D%NKT),   INTENT(INOUT)::  PEMF,PDETR,PENTR ! Mass_flux,
+REAL, DIMENSION(D%NIJT,D%NKT),   INTENT(INOUT)::  PEMF,PDETR,PENTR ! Mass_flux,
                                                           ! detrainment,entrainment
-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
+REAL, DIMENSION(D%NIJT,D%NKT),   INTENT(INOUT) :: PBUO_INTEG       ! Integrated Buoyancy 
+INTEGER, DIMENSION(D%NIJT),  INTENT(INOUT)::  KKLCL,KKETL,KKCTL! LCL, ETL, CTL                                     
+REAL, DIMENSION(D%NIJT),     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%NKT) ::    ZTHM_F,ZRVM_F    ! Theta,rv of
+REAL, DIMENSION(D%NIJT,D%NKT) ::    ZTHM_F,ZRVM_F    ! Theta,rv of
                                                                   ! updraft environnement
-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%NIJT,D%NKT) :: ZRTM_F, ZTHLM_F, ZTKEM_F      ! rt, thetal,TKE,pressure,
+REAL, DIMENSION(D%NIJT,D%NKT) :: ZUM_F,ZVM_F,ZRHO_F            ! density,momentum
+REAL, DIMENSION(D%NIJT,D%NKT) :: ZPRES_F,ZTHVM_F               ! interpolated at the flux point
+REAL, DIMENSION(D%NIJT,D%NKT) :: ZG_O_THVREF                   ! g*ThetaV ref
+REAL, DIMENSION(D%NIJT,D%NKT) :: ZW_UP2                        ! w**2  of the updraft
 
-REAL, DIMENSION(D%NIT,D%NKT,KSV) :: ZSVM_F ! scalar variables 
+REAL, DIMENSION(D%NIJT,D%NKT,KSV) :: ZSVM_F ! scalar variables 
                         
 
                         
-REAL, DIMENSION(D%NIT,D%NKT) :: ZTH_UP                        ! updraft THETA 
+REAL, DIMENSION(D%NIJT,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%NKT) :: ZBUO                          ! Buoyancy 
+REAL, DIMENSION(D%NIJT,D%NKT) :: ZBUO                          ! Buoyancy 
 !REAL, DIMENSION(SIZE(PTHM,1),SIZE(PTHM,2)) :: ZTHS_UP,ZTHSM
 
-REAL, DIMENSION(D%NIT,D%NKT) ::  ZCOEF  ! diminution coefficient for too high clouds 
+REAL, DIMENSION(D%NIJT,D%NKT) ::  ZCOEF  ! diminution coefficient for too high clouds 
                         
 REAL                                       ::  ZWTHVSURF  ! Surface w'thetav'
 
 REAL  :: ZRVORD       ! RV/RD
 
 
-REAL, DIMENSION(D%NIT) :: ZMIX1,ZMIX2
+REAL, DIMENSION(D%NIJT) :: ZMIX1,ZMIX2
 
-REAL, DIMENSION(D%NIT) :: ZLUP         ! Upward Mixing length from the ground
+REAL, DIMENSION(D%NIJT) :: ZLUP         ! Upward Mixing length from the ground
 
 INTEGER  :: JK,JI,JSV          ! loop counters
 
-LOGICAL, DIMENSION(D%NIT) ::  GTEST,GTESTLCL
+LOGICAL, DIMENSION(D%NIJT) ::  GTEST,GTESTLCL
                                ! Test if the ascent continue, if LCL or ETL is reached
 LOGICAL                          ::  GLMIX 
                                ! To choose upward or downward mixing length
-LOGICAL, DIMENSION(D%NIT)              :: GWORK1
-LOGICAL, DIMENSION(D%NIT,D%NKT) :: GWORK2
+LOGICAL, DIMENSION(D%NIJT)              :: GWORK1
+LOGICAL, DIMENSION(D%NIJT,D%NKT) :: GWORK2
 
 INTEGER  :: ITEST
 
-REAL, DIMENSION(D%NIT) :: ZRC_UP, ZRI_UP, ZRV_UP, ZRSATW, ZRSATI
+REAL, DIMENSION(D%NIJT) :: ZRC_UP, ZRI_UP, ZRV_UP, ZRSATW, ZRSATI
 
-REAL,    DIMENSION(D%NIT,D%NKT) :: ZZDZ
+REAL,    DIMENSION(D%NIJT,D%NKT) :: ZZDZ
 
-REAL, DIMENSION(D%NIT)              ::  ZTEST,ZDZ,ZWUP_MEAN    ! 
-REAL, DIMENSION(D%NIT)              ::  ZCOE,ZWCOE,ZBUCOE
-REAL, DIMENSION(D%NIT)              ::  ZDETR_BUO, ZDETR_RT
-REAL, DIMENSION(D%NIT)              ::  ZW_MAX               ! w**2  max of the updraft
-REAL, DIMENSION(D%NIT)              ::  ZZTOP                ! Top of the updraft
+REAL, DIMENSION(D%NIJT)              ::  ZTEST,ZDZ,ZWUP_MEAN    ! 
+REAL, DIMENSION(D%NIJT)              ::  ZCOE,ZWCOE,ZBUCOE
+REAL, DIMENSION(D%NIJT)              ::  ZDETR_BUO, ZDETR_RT
+REAL, DIMENSION(D%NIJT)              ::  ZW_MAX               ! w**2  max of the updraft
+REAL, DIMENSION(D%NIJT)              ::  ZZTOP                ! Top of the updraft
 !REAL, DIMENSION(SIZE(PTHM,1))              ::  ZQTM,ZQT_UP
 
 REAL  :: ZDEPTH_MAX1, ZDEPTH_MAX2 ! control auto-extinction process
 
 REAL  :: ZTMAX,ZRMAX, ZEPS  ! control value
 
-REAL, DIMENSION(D%NIT,D%NKT) :: ZSHEAR,ZDUDZ,ZDVDZ ! vertical wind shear
+REAL, DIMENSION(D%NIJT,D%NKT) :: ZSHEAR,ZDUDZ,ZDVDZ ! vertical wind shear
 !
-REAL, DIMENSION(D%NIT,D%NKT) :: ZWK
-REAL, DIMENSION(D%NIT,16)    :: ZBUF
+REAL, DIMENSION(D%NIJT,D%NKT) :: ZWK
+REAL, DIMENSION(D%NIJT,16)    :: ZBUF
 !
 REAL(KIND=JPRB) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('COMPUTE_UPDRAFT_RHCJ10',0,ZHOOK_HANDLE)
@@ -242,9 +242,9 @@ ZBUO      =0.
 !no ice cloud coded yet
 PRI_UP(:,:)=0.
 PFRAC_ICE_UP(:,:)=0.
-!$mnh_expand_array(JI=D%NIB:D%NIE,JK=1:D%NKT)
-PRSAT_UP(D%NIB:D%NIE,:)=PRVM(D%NIB:D%NIE,:) ! should be initialised correctly but is (normaly) not used
-!$mnh_end_expand_array(JI=D%NIB:D%NIE,JK=1:D%NKT)
+!$mnh_expand_array(JI=D%NIJB:D%NIJE,JK=1:D%NKT)
+PRSAT_UP(D%NIJB:D%NIJE,:)=PRVM(D%NIJB:D%NIJE,:) ! should be initialised correctly but is (normaly) not used
+!$mnh_end_expand_array(JI=D%NIJB:D%NIJE,JK=1:D%NKT)
 
 ! Initialisation of environment variables at t-dt
 
@@ -259,29 +259,29 @@ CALL MZM_MF(D, PTKEM(:,:), ZTKEM_F(:,:))
 !DO JSV=1,ISV
 !  IF (ONOMIXLG .AND. JSV >= KSV_LGBEG .AND. JSV<= KSV_LGEND) CYCLE
 ! *** SR merge AROME/Meso-nh: following two lines come from the AROME version
-!   ZSVM_F(D%NIB:D%NIE,KKB:IKU,JSV) = 0.5*(PSVM(D%NIB:D%NIE,KKB:IKU,JSV)+PSVM(D%NIB:D%NIE,1:IKU-1,JSV))
-!   ZSVM_F(D%NIB:D%NIE,1,JSV)       = ZSVM_F(D%NIB:D%NIE,KKB,JSV) 
+!   ZSVM_F(D%NIJB:D%NIJE,KKB:IKU,JSV) = 0.5*(PSVM(D%NIJB:D%NIJE,KKB:IKU,JSV)+PSVM(D%NIJB:D%NIJE,1:IKU-1,JSV))
+!   ZSVM_F(D%NIJB:D%NIJE,1,JSV)       = ZSVM_F(D%NIJB:D%NIJE,KKB,JSV) 
 ! *** the following single line comes from the Meso-NH version
-!  ZSVM_F(D%NIB:D%NIE,:,JSV) = MZM_MF(KKA,KKU,KKL,PSVM(D%NIB:D%NIE,:,JSV))
+!  ZSVM_F(D%NIJB:D%NIJE,:,JSV) = MZM_MF(KKA,KKU,KKL,PSVM(D%NIJB:D%NIJE,:,JSV))
 !END DO
 
 !          Initialisation of updraft characteristics 
-!$mnh_expand_array(JI=D%NIB:D%NIE,JK=1:D%NKT)
-PTHL_UP(D%NIB:D%NIE,:)=ZTHLM_F(D%NIB:D%NIE,:)
-PRT_UP(D%NIB:D%NIE,:)=ZRTM_F(D%NIB:D%NIE,:)
-PU_UP(D%NIB:D%NIE,:)=ZUM_F(D%NIB:D%NIE,:)
-PV_UP(D%NIB:D%NIE,:)=ZVM_F(D%NIB:D%NIE,:)
-!$mnh_end_expand_array(JI=D%NIB:D%NIE,JK=1:D%NKT)
-PSV_UP(D%NIB:D%NIE,:,:)=0.
+!$mnh_expand_array(JI=D%NIJB:D%NIJE,JK=1:D%NKT)
+PTHL_UP(D%NIJB:D%NIJE,:)=ZTHLM_F(D%NIJB:D%NIJE,:)
+PRT_UP(D%NIJB:D%NIJE,:)=ZRTM_F(D%NIJB:D%NIJE,:)
+PU_UP(D%NIJB:D%NIJE,:)=ZUM_F(D%NIJB:D%NIJE,:)
+PV_UP(D%NIJB:D%NIJE,:)=ZVM_F(D%NIJB:D%NIJE,:)
+!$mnh_end_expand_array(JI=D%NIJB:D%NIJE,JK=1:D%NKT)
+PSV_UP(D%NIJB:D%NIJE,:,:)=0.
 ! This updraft is not yet ready to use scalar variables
 !IF (ONOMIXLG .AND. JSV >= KSV_LGBEG .AND. JSV<= KSV_LGEND) then
-!    PSV_UP(D%NIB:D%NIE,:,:)=ZSVM_F(D%NIB:D%NIE,:,:)
+!    PSV_UP(D%NIJB:D%NIJE,:,:)=ZSVM_F(D%NIJB:D%NIJE,:,:)
 !ENDIF
 
 ! Computation or initialisation of updraft characteristics at the KKB level
 ! thetal_up,rt_up,thetaV_up, w,Buoyancy term and mass flux (PEMF)
 
-DO JI=D%NIB,D%NIE
+DO JI=D%NIJB,D%NIJE
   !PTHL_UP(JI,KKB)= ZTHLM_F(JI,KKB)+MAX(0.,MIN(ZTMAX,(PSFTH(JI)/SQRT(ZTKEM_F(JI,KKB)))*XALP_PERT))
   !PRT_UP(JI,KKB) = ZRTM_F(JI,KKB)+MAX(0.,MIN(ZRMAX,(PSFRV(JI)/SQRT(ZTKEM_F(JI,KKB)))*XALP_PERT)) 
   PTHL_UP(JI,D%NKB)= ZTHLM_F(JI,D%NKB)
@@ -297,35 +297,35 @@ CALL MZM_MF(D, PRVM(:,:), ZRVM_F(:,:))
 
 ! thetav at mass and flux levels 
 DO JK=1,D%NKT
-  DO JI=d%NIB,D%NIE
+  DO JI=d%NIB,D%NIJE
     ZTHVM_F(JI,JK)=ZTHM_F(JI,JK)*((1.+ZRVORD*ZRVM_F(JI,JK))/(1.+ZRTM_F(JI,JK)))
   ENDDO
 ENDDO
 
-!$mnh_expand_array(JI=D%NIB:D%NIE,JK=1:D%NKT)
-PTHV_UP(D%NIB:D%NIE,:)= ZTHVM_F(D%NIB:D%NIE,:)
-PRV_UP(D%NIB:D%NIE,:)= ZRVM_F(D%NIB:D%NIE,:)
-!$mnh_end_expand_array(JI=D%NIB:D%NIE,JK=1:D%NKT)
+!$mnh_expand_array(JI=D%NIJB:D%NIJE,JK=1:D%NKT)
+PTHV_UP(D%NIJB:D%NIJE,:)= ZTHVM_F(D%NIJB:D%NIJE,:)
+PRV_UP(D%NIJB:D%NIJE,:)= ZRVM_F(D%NIJB:D%NIJE,:)
+!$mnh_end_expand_array(JI=D%NIJB:D%NIJE,JK=1:D%NKT)
 
 ZW_UP2(:,:)=ZEPS
-!$mnh_expand_array(JI=D%NIB:D%NIE)
-!ZW_UP2(D%NIB:D%NIE,KKB) = MAX(0.0001,(3./6.)*ZTKEM_F(D%NIB:D%NIE,KKB))
-ZW_UP2(D%NIB:D%NIE,D%NKB) = MAX(0.0001,(2./3.)*ZTKEM_F(D%NIB:D%NIE,D%NKB))
-!$mnh_end_expand_array(JI=D%NIB:D%NIE)
+!$mnh_expand_array(JI=D%NIJB:D%NIJE)
+!ZW_UP2(D%NIJB:D%NIJE,KKB) = MAX(0.0001,(3./6.)*ZTKEM_F(D%NIJB:D%NIJE,KKB))
+ZW_UP2(D%NIJB:D%NIJE,D%NKB) = MAX(0.0001,(2./3.)*ZTKEM_F(D%NIJB:D%NIJE,D%NKB))
+!$mnh_end_expand_array(JI=D%NIJB:D%NIJE)
 
 ! Computation of non conservative variable for the KKB level of the updraft
 ! (all or nothing ajustement)
 
-!$mnh_expand_array(JI=D%NIB:D%NIE)
-PRC_UP(D%NIB:D%NIE,D%NKB)=0.
-PRI_UP(D%NIB:D%NIE,D%NKB)=0.
-!$mnh_end_expand_array(JI=D%NIB:D%NIE)
-CALL TH_R_FROM_THL_RT(CST,NEB,D%NIT,HFRAC_ICE,PFRAC_ICE_UP(:,D%NKB),ZPRES_F(:,D%NKB), &
+!$mnh_expand_array(JI=D%NIJB:D%NIJE)
+PRC_UP(D%NIJB:D%NIJE,D%NKB)=0.
+PRI_UP(D%NIJB:D%NIJE,D%NKB)=0.
+!$mnh_end_expand_array(JI=D%NIJB:D%NIJE)
+CALL TH_R_FROM_THL_RT(CST,NEB,D%NIJT,HFRAC_ICE,PFRAC_ICE_UP(:,D%NKB),ZPRES_F(:,D%NKB), &
              PTHL_UP(:,D%NKB),PRT_UP(:,D%NKB),ZTH_UP(:,D%NKB), &
              PRV_UP(:,D%NKB),PRC_UP(:,D%NKB),PRI_UP(:,D%NKB),ZRSATW(:),ZRSATI(:),OOCEAN=.FALSE.,&
-             PBUF=ZBUF, KB=D%NIB, KE=D%NIE)
+             PBUF=ZBUF, KB=D%NIJB, KE=D%NIJE)
 
-DO JI=D%NIB,D%NIE
+DO JI=D%NIJB,D%NIJE
   ! compute updraft thevav and buoyancy term at KKB level             
   PTHV_UP(JI,D%NKB) = ZTH_UP(JI,D%NKB)*((1+ZRVORD*PRV_UP(JI,D%NKB))/(1+PRT_UP(JI,D%NKB))) 
   ! compute mean rsat in updraft
@@ -335,43 +335,43 @@ ENDDO
 !Tout est commente pour tester dans un premier temps la separation en deux de la 
 !  boucle verticale, une pour w et une pour PEMF                                                            
 
-!$mnh_expand_array(JI=D%NIB:D%NIE,JK=1:D%NKT)
-ZG_O_THVREF(D%NIB:D%NIE,:)=CST%XG/ZTHVM_F(D%NIB:D%NIE,:)
-!$mnh_end_expand_array(JI=D%NIB:D%NIE,JK=1:D%NKT)
+!$mnh_expand_array(JI=D%NIJB:D%NIJE,JK=1:D%NKT)
+ZG_O_THVREF(D%NIJB:D%NIJE,:)=CST%XG/ZTHVM_F(D%NIJB:D%NIJE,:)
+!$mnh_end_expand_array(JI=D%NIJB:D%NIJE,JK=1:D%NKT)
 
 ! Calcul de la fermeture de Julien Pergaut comme limite max de PHY
 
 DO JK=D%NKB,D%NKE-D%NKL,D%NKL   !  Vertical loop
-  DO JI=D%NIB,D%NIE
+  DO JI=D%NIJB,D%NIJE
     ZZDZ(JI,JK)   = MAX(ZEPS,PZZ(JI,JK+D%NKL)-PZZ(JI,JK))  ! <== Delta Z between two flux level
   ENDDO
 ENDDO
 
 ! compute L_up
 GLMIX=.TRUE.
-!$mnh_expand_array(JI=D%NIB:D%NIE)
-ZTKEM_F(D%NIB:D%NIE,D%NKB)=0.
-!$mnh_end_expand_array(JI=D%NIB:D%NIE)
+!$mnh_expand_array(JI=D%NIJB:D%NIJE)
+ZTKEM_F(D%NIJB:D%NIJE,D%NKB)=0.
+!$mnh_end_expand_array(JI=D%NIJB:D%NIJE)
 !
 IF(TURB%CTURBLEN=='RM17') THEN
   CALL GZ_M_W_MF(D, PUM, PDZZ, ZWK)
   CALL MZF_MF(D, ZWK, ZDUDZ)
   CALL GZ_M_W_MF(D, PVM, PDZZ, ZWK)
   CALL MZF_MF(D, ZWK, ZDVDZ)
-  !$mnh_expand_array(JI=D%NIB:D%NIE,JK=1:D%NKT)
-  ZSHEAR(D%NIB:D%NIE,:) = SQRT(ZDUDZ(D%NIB:D%NIE,:)**2 + ZDVDZ(D%NIB:D%NIE,:)**2)
-  !$mnh_end_expand_array(JI=D%NIB:D%NIE,JK=1:D%NKT)
+  !$mnh_expand_array(JI=D%NIJB:D%NIJE,JK=1:D%NKT)
+  ZSHEAR(D%NIJB:D%NIJE,:) = SQRT(ZDUDZ(D%NIJB:D%NIJE,:)**2 + ZDVDZ(D%NIJB:D%NIJE,:)**2)
+  !$mnh_end_expand_array(JI=D%NIJB:D%NIJE,JK=1:D%NKT)
 ELSE
-  ZSHEAR(D%NIB:D%NIE,:) = 0. !no shear in bl89 mixing length
+  ZSHEAR(D%NIJB:D%NIJE,:) = 0. !no shear in bl89 mixing length
 END IF
 !
 CALL COMPUTE_BL89_ML(D, CST, CSTURB, PDZZ,ZTKEM_F(:,D%NKB),ZG_O_THVREF(:,D%NKB), &
                        ZTHVM_F,D%NKB,GLMIX,.TRUE.,ZSHEAR,ZLUP)
-!$mnh_expand_array(JI=D%NIB:D%NIE)
-ZLUP(D%NIB:D%NIE)=MAX(ZLUP(D%NIB:D%NIE),1.E-10)
-!$mnh_end_expand_array(JI=D%NIB:D%NIE)
+!$mnh_expand_array(JI=D%NIJB:D%NIJE)
+ZLUP(D%NIJB:D%NIJE)=MAX(ZLUP(D%NIJB:D%NIJE),1.E-10)
+!$mnh_end_expand_array(JI=D%NIJB:D%NIJE)
 
-DO JI=D%NIB,D%NIE
+DO JI=D%NIJB,D%NIJE
   ! Compute Buoyancy flux at the ground
   ZWTHVSURF = (ZTHVM_F(JI,D%NKB)/ZTHM_F(JI,D%NKB))*PSFTH(JI)+     &
               (0.61*ZTHM_F(JI,D%NKB))*PSFRV(JI)
@@ -419,7 +419,7 @@ DO JK=D%NKB,D%NKE-D%NKL,D%NKL
  
 ! to find the LCL (check if JK is LCL or not)
 
-  DO JI=D%NIB,D%NIE
+  DO JI=D%NIJB,D%NIJE
     IF ((PRC_UP(JI,JK)+PRI_UP(JI,JK)>0.).AND.(.NOT.(GTESTLCL(JI)))) THEN
       KKLCL(JI) = JK           
       GTESTLCL(JI)=.TRUE.
@@ -434,17 +434,17 @@ DO JK=D%NKB,D%NKE-D%NKL,D%NKL
 
   ! Compute theta_v of updraft at flux level JK    
     
-    !$mnh_expand_array(JI=D%NIB:D%NIE)
-    ZRC_UP(D%NIB:D%NIE)   =PRC_UP(D%NIB:D%NIE,JK) ! guess
-    ZRI_UP(D%NIB:D%NIE)   =PRI_UP(D%NIB:D%NIE,JK) ! guess 
-    ZRV_UP(D%NIB:D%NIE)   =PRV_UP(D%NIB:D%NIE,JK)
-    !$mnh_end_expand_array(JI=D%NIB:D%NIE)
-    CALL TH_R_FROM_THL_RT(CST,NEB, D%NIT, HFRAC_ICE,PFRAC_ICE_UP(:,JK),&
+    !$mnh_expand_array(JI=D%NIJB:D%NIJE)
+    ZRC_UP(D%NIJB:D%NIJE)   =PRC_UP(D%NIJB:D%NIJE,JK) ! guess
+    ZRI_UP(D%NIJB:D%NIJE)   =PRI_UP(D%NIJB:D%NIJE,JK) ! guess 
+    ZRV_UP(D%NIJB:D%NIJE)   =PRV_UP(D%NIJB:D%NIJE,JK)
+    !$mnh_end_expand_array(JI=D%NIJB:D%NIJE)
+    CALL TH_R_FROM_THL_RT(CST,NEB, D%NIJT, HFRAC_ICE,PFRAC_ICE_UP(:,JK),&
                PPABSM(:,JK),PTHL_UP(:,JK),PRT_UP(:,JK),&
                ZTH_UP(:,JK),ZRV_UP,ZRC_UP,ZRI_UP,ZRSATW(:),ZRSATI(:),OOCEAN=.FALSE.,&
-               PBUF=ZBUF, KB=D%NIB, KE=D%NIE)
+               PBUF=ZBUF, KB=D%NIJB, KE=D%NIJE)
     
-  DO JI=D%NIB,D%NIE
+  DO JI=D%NIJB,D%NIJE
     IF (GTEST(JI)) THEN
       PTHV_UP(JI,JK)    = ZTH_UP(JI,JK)*(1.+ZRVORD*ZRV_UP(JI))/(1.+PRT_UP(JI,JK))
       ZBUO(JI,JK)       = ZG_O_THVREF(JI,JK)*(PTHV_UP(JI,JK) - ZTHVM_F(JI,JK))    
@@ -496,7 +496,7 @@ DO JK=D%NKB,D%NKE-D%NKL,D%NKL
 
   IF(OMIXUV) THEN
     IF(JK/=D%NKB) THEN
-      DO JI=D%NIB,D%NIE
+      DO JI=D%NIJB,D%NIJE
         IF(GTEST(JI)) THEN
           PU_UP(JI,JK+D%NKL) = (PU_UP (JI,JK)*(1-0.5*ZMIX2(JI)) + PUM(JI,JK)*ZMIX2(JI)+ &
                             0.5*PARAMMF%XPRES_UV*(PZZ(JI,JK+D%NKL)-PZZ(JI,JK))*&
@@ -511,7 +511,7 @@ DO JK=D%NKB,D%NKE-D%NKL,D%NKL
         ENDIF
       ENDDO
     ELSE
-      DO JI=D%NIB,D%NIE
+      DO JI=D%NIJB,D%NIJE
         IF(GTEST(JI)) THEN
           PU_UP(JI,JK+D%NKL) = (PU_UP (JI,JK)*(1-0.5*ZMIX2(JI)) + PUM(JI,JK)*ZMIX2(JI)+ &
                             0.5*PARAMMF%XPRES_UV*(PZZ(JI,JK+D%NKL)-PZZ(JI,JK))*&
@@ -530,24 +530,24 @@ DO JK=D%NKB,D%NKE-D%NKL,D%NKL
 !  DO JSV=1,ISV 
 !     IF (ONOMIXLG .AND. JSV >= KSV_LGBEG .AND. JSV<= KSV_LGEND) CYCLE
 !      WHERE(GTEST) 
-!           PSV_UP(D%NIB:D%NIE,JK+KKL,JSV) = (PSV_UP (D%NIB:D%NIE,JK,JSV)*(1-0.5*ZMIX2(D%NIB:D%NIE)) + &
-!                        PSVM(D%NIB:D%NIE,JK,JSV)*ZMIX2(D%NIB:D%NIE))  /(1+0.5*ZMIX2(D%NIB:D%NIE))
+!           PSV_UP(D%NIJB:D%NIJE,JK+KKL,JSV) = (PSV_UP (D%NIJB:D%NIJE,JK,JSV)*(1-0.5*ZMIX2(D%NIJB:D%NIJE)) + &
+!                        PSVM(D%NIJB:D%NIJE,JK,JSV)*ZMIX2(D%NIJB:D%NIJE))  /(1+0.5*ZMIX2(D%NIJB:D%NIJE))
 !      ENDWHERE                        
 !  ENDDO  
   
   
   ! Compute non cons. var. at level JK+KKL
-  !$mnh_expand_array(JI=D%NIB:D%NIE)
-  ZRC_UP(D%NIB:D%NIE)=PRC_UP(D%NIB:D%NIE,JK) ! guess = level just below
-  ZRI_UP(D%NIB:D%NIE)=PRI_UP(D%NIB:D%NIE,JK) ! guess = level just below
-  ZRV_UP(D%NIB:D%NIE)=PRV_UP(D%NIB:D%NIE,JK)
-  !$mnh_end_expand_array(JI=D%NIB:D%NIE)
-  CALL TH_R_FROM_THL_RT(CST,NEB, D%NIT, HFRAC_ICE,PFRAC_ICE_UP(:,JK+D%NKL),ZPRES_F(:,JK+D%NKL), &
+  !$mnh_expand_array(JI=D%NIJB:D%NIJE)
+  ZRC_UP(D%NIJB:D%NIJE)=PRC_UP(D%NIJB:D%NIJE,JK) ! guess = level just below
+  ZRI_UP(D%NIJB:D%NIJE)=PRI_UP(D%NIJB:D%NIJE,JK) ! guess = level just below
+  ZRV_UP(D%NIJB:D%NIJE)=PRV_UP(D%NIJB:D%NIJE,JK)
+  !$mnh_end_expand_array(JI=D%NIJB:D%NIJE)
+  CALL TH_R_FROM_THL_RT(CST,NEB, D%NIJT, HFRAC_ICE,PFRAC_ICE_UP(:,JK+D%NKL),ZPRES_F(:,JK+D%NKL), &
           PTHL_UP(:,JK+D%NKL),PRT_UP(:,JK+D%NKL),ZTH_UP(:,JK+D%NKL),              &
           ZRV_UP(:),ZRC_UP(:),ZRI_UP(:),ZRSATW(:),ZRSATI(:),OOCEAN=.FALSE.,&
-          PBUF=ZBUF, KB=D%NIB, KE=D%NIE)
+          PBUF=ZBUF, KB=D%NIJB, KE=D%NIJE)
 
-  DO JI=D%NIB,D%NIE
+  DO JI=D%NIJB,D%NIJE
     IF(GTEST(JI)) THEN
       !ZT_UP(JI) = ZTH_UP(JI,JK+KKL)*PEXNM(JI,JK+KKL)
       !ZCP(JI) = XCPD + XCL * ZRC_UP(JI)
@@ -561,7 +561,7 @@ DO JK=D%NKB,D%NKE-D%NKL,D%NKL
       PRSAT_UP(JI,JK+D%NKL) = ZRSATW(JI)*(1-PFRAC_ICE_UP(JI,JK+D%NKL)) + ZRSATI(JI)*PFRAC_ICE_UP(JI,JK+D%NKL)
 
       ! Compute the updraft theta_v, buoyancy and w**2 for level JK+1   
-      !PTHV_UP(D%NIB:D%NIE,JK+KKL) = PTH_UP(D%NIB:D%NIE,JK+KKL)*((1+ZRVORD*PRV_UP(D%NIB:D%NIE,JK+KKL))/(1+PRT_UP(D%NIB:D%NIE,JK+KKL)))
+      !PTHV_UP(D%NIJB:D%NIJE,JK+KKL) = PTH_UP(D%NIJB:D%NIJE,JK+KKL)*((1+ZRVORD*PRV_UP(D%NIJB:D%NIJE,JK+KKL))/(1+PRT_UP(D%NIJB:D%NIJE,JK+KKL)))
       !PTHV_UP(JI,JK+KKL) = ZTH_UP(JI,JK+KKL)*(1.+0.608*PRV_UP(JI,JK+KKL) - PRC_UP(JI,JK+KKL))
       !! A corriger pour utiliser q et non r !!!!      
       !ZMIX1(JI)=ZZDZ(JI,JK)*(PENTR(JI,JK)-PDETR(JI,JK))
@@ -570,13 +570,13 @@ DO JK=D%NKB,D%NKE-D%NKL,D%NKL
     ENDIF
   ENDDO
 
-  DO JI=D%NIB,D%NIB
+  DO JI=D%NIJB,D%NIJB
     IF(GTEST(JI)) THEN
       PEMF(JI,JK+D%NKL)=PEMF(JI,JK)*EXP(ZMIX1(JI))
     ENDIF
   ENDDO
 
-  DO JI=D%NIB,D%NIE
+  DO JI=D%NIJB,D%NIJE
     IF(GTEST(JI)) THEN
       ! Updraft fraction must be smaller than XFRAC_UP_MAX
       PFRAC_UP(JI,JK+D%NKL)=MIN(PARAMMF%XFRAC_UP_MAX, &
@@ -586,7 +586,7 @@ DO JK=D%NKB,D%NKE-D%NKL,D%NKL
   ENDDO
 
 ! Test if the updraft has reach the ETL
-  DO JI=D%NIB,D%NIE
+  DO JI=D%NIJB,D%NIJE
     IF (GTEST(JI) .AND. (PBUO_INTEG(JI,JK)<=0.)) THEN
       KKETL(JI) = JK+D%NKL
     ENDIF
@@ -594,7 +594,7 @@ DO JK=D%NKB,D%NKE-D%NKL,D%NKL
 
 
 ! Test is we have reached the top of the updraft
-  DO JI=D%NIB,D%NIB
+  DO JI=D%NIJB,D%NIJB
     IF (GTEST(JI) .AND. ((ZW_UP2(JI,JK+D%NKL)<=ZEPS).OR.(PEMF(JI,JK+D%NKL)<=ZEPS))) THEN
       ZW_UP2   (JI,JK+D%NKL)=ZEPS
       PEMF     (JI,JK+D%NKL)=0.
@@ -612,12 +612,12 @@ DO JK=D%NKB,D%NKE-D%NKL,D%NKL
 
 ENDDO   ! Fin de la boucle verticale 
 
-!$mnh_expand_array(JI=D%NIB:D%NIE,JK=1:D%NKT)
-PW_UP(D%NIB:D%NIE,:)=SQRT(ZW_UP2(D%NIB:D%NIE,:))
-!$mnh_end_expand_array(JI=D%NIB:D%NIE,JK=1:D%NKT)
-!$mnh_expand_array(JI=D%NIB:D%NIE)
-PEMF(D%NIB:D%NIE,D%NKB) =0.
-!$mnh_end_expand_array(JI=D%NIB:D%NIE)
+!$mnh_expand_array(JI=D%NIJB:D%NIJE,JK=1:D%NKT)
+PW_UP(D%NIJB:D%NIJE,:)=SQRT(ZW_UP2(D%NIJB:D%NIJE,:))
+!$mnh_end_expand_array(JI=D%NIJB:D%NIJE,JK=1:D%NKT)
+!$mnh_expand_array(JI=D%NIJB:D%NIJE)
+PEMF(D%NIJB:D%NIJE,D%NKB) =0.
+!$mnh_end_expand_array(JI=D%NIJB:D%NIJE)
 
 ! Limits the shallow convection scheme when cloud heigth is higher than 3000m.
 ! To do this, mass flux is multiplied by a coefficient decreasing linearly
@@ -625,22 +625,22 @@ PEMF(D%NIB:D%NIE,D%NKB) =0.
 ! This way, all MF fluxes are diminished by this amount.
 ! Diagnosed cloud fraction is also multiplied by the same coefficient.
 !
-DO JI=D%NIB,D%NIE
+DO JI=D%NIJB,D%NIJE
    PDEPTH(JI) = MAX(0., PZZ(JI,KKCTL(JI)) -  PZZ(JI,KKLCL(JI)) )
 ENDDO
 
-!$mnh_expand_array(JI=D%NIB:D%NIE)
-GWORK1(D%NIB:D%NIE)= (GTESTLCL(D%NIB:D%NIE) .AND. (PDEPTH(D%NIB:D%NIE) > ZDEPTH_MAX1) )
-!$mnh_end_expand_array(JI=D%NIB:D%NIE)
+!$mnh_expand_array(JI=D%NIJB:D%NIJE)
+GWORK1(D%NIJB:D%NIJE)= (GTESTLCL(D%NIJB:D%NIJE) .AND. (PDEPTH(D%NIJB:D%NIJE) > ZDEPTH_MAX1) )
+!$mnh_end_expand_array(JI=D%NIJB:D%NIJE)
 DO JK=1,D%NKT
-  !$mnh_expand_array(JI=D%NIB:D%NIE)
-  GWORK2(D%NIB:D%NIE,JK) = GWORK1(D%NIB:D%NIE)
-  ZCOEF(D%NIB:D%NIE,JK) = (1.-(PDEPTH(D%NIB:D%NIE)-ZDEPTH_MAX1)/(ZDEPTH_MAX2-ZDEPTH_MAX1))
-  ZCOEF(D%NIB:D%NIE,JK)=MIN(MAX(ZCOEF(D%NIB:D%NIE,JK),0.),1.)
-  !$mnh_end_expand_array(JI=D%NIB:D%NIE)
+  !$mnh_expand_array(JI=D%NIJB:D%NIJE)
+  GWORK2(D%NIJB:D%NIJE,JK) = GWORK1(D%NIJB:D%NIJE)
+  ZCOEF(D%NIJB:D%NIJE,JK) = (1.-(PDEPTH(D%NIJB:D%NIJE)-ZDEPTH_MAX1)/(ZDEPTH_MAX2-ZDEPTH_MAX1))
+  ZCOEF(D%NIJB:D%NIJE,JK)=MIN(MAX(ZCOEF(D%NIJB:D%NIJE,JK),0.),1.)
+  !$mnh_end_expand_array(JI=D%NIJB:D%NIJE)
 ENDDO
 DO JK=1, D%NKT
-  DO JI=D%NIB,D%NIE
+  DO JI=D%NIJB,D%NIJE
     IF (GWORK2(JI,JK)) THEN
       PEMF(JI,JK)     = PEMF(JI,JK)     * ZCOEF(JI,JK) 
       PFRAC_UP(JI,JK) = PFRAC_UP(JI,JK) * ZCOEF(JI,JK) 
diff --git a/src/common/turb/mode_mf_turb.F90 b/src/common/turb/mode_mf_turb.F90
index 537e16c14db54119da557d425da69494ccd0b387..3c13c549c7911116b8adfcd53727b3930d60f4a3 100644
--- a/src/common/turb/mode_mf_turb.F90
+++ b/src/common/turb/mode_mf_turb.F90
@@ -85,39 +85,39 @@ INTEGER,                INTENT(IN)   :: KSV_LGEND ! last  index of lag. tracer
 REAL,                   INTENT(IN)   :: PIMPL       ! degree of implicitness
 REAL,                 INTENT(IN)     ::  PTSTEP   ! Dynamical timestep 
 !
-REAL, DIMENSION(D%NIT,D%NKT), INTENT(IN)   :: PDZZ        ! metric coefficients
+REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN)   :: PDZZ        ! metric coefficients
 
-REAL, DIMENSION(D%NIT,D%NKT), INTENT(IN)   :: PRHODJ      ! dry density * Grid size
+REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN)   :: PRHODJ      ! dry density * Grid size
 
 !   Conservative var. at t-dt
-REAL, DIMENSION(D%NIT,D%NKT), INTENT(IN) ::  PTHLM        ! conservative pot. temp.
-REAL, DIMENSION(D%NIT,D%NKT), INTENT(IN) ::  PRTM         ! water var.  where 
+REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) ::  PTHLM        ! conservative pot. temp.
+REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) ::  PRTM         ! water var.  where 
 !  Virtual potential temperature at t-dt
-REAL, DIMENSION(D%NIT,D%NKT), INTENT(IN) ::  PTHVM 
+REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) ::  PTHVM 
 !  Momentum at t-dt
-REAL, DIMENSION(D%NIT,D%NKT), INTENT(IN) ::  PUM
-REAL, DIMENSION(D%NIT,D%NKT), INTENT(IN) ::  PVM
+REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) ::  PUM
+REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) ::  PVM
 !  scalar variables at t-dt
-REAL, DIMENSION(D%NIT,D%NKT,KSV), INTENT(IN) ::  PSVM
+REAL, DIMENSION(D%NIJT,D%NKT,KSV), INTENT(IN) ::  PSVM
 !
 ! Tendencies of conservative variables
-REAL, DIMENSION(D%NIT,D%NKT),   INTENT(OUT) ::  PTHLDT
+REAL, DIMENSION(D%NIJT,D%NKT),   INTENT(OUT) ::  PTHLDT
 
-REAL, DIMENSION(D%NIT,D%NKT),   INTENT(OUT) ::  PRTDT 
+REAL, DIMENSION(D%NIJT,D%NKT),   INTENT(OUT) ::  PRTDT 
 ! Tendencies of momentum
-REAL, DIMENSION(D%NIT,D%NKT),   INTENT(OUT) ::  PUDT
-REAL, DIMENSION(D%NIT,D%NKT),   INTENT(OUT) ::  PVDT
+REAL, DIMENSION(D%NIJT,D%NKT),   INTENT(OUT) ::  PUDT
+REAL, DIMENSION(D%NIJT,D%NKT),   INTENT(OUT) ::  PVDT
 ! Tendencies of scalar variables
-REAL, DIMENSION(D%NIT,D%NKT,KSV), INTENT(OUT) ::  PSVDT
+REAL, DIMENSION(D%NIJT,D%NKT,KSV), INTENT(OUT) ::  PSVDT
 
 
 ! Updraft characteritics
-REAL, DIMENSION(D%NIT,D%NKT), INTENT(IN)   ::  PEMF,PTHL_UP,PTHV_UP,PRT_UP,PU_UP,PV_UP
-REAL, DIMENSION(D%NIT,D%NKT,KSV), INTENT(IN) ::  PSV_UP
+REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN)   ::  PEMF,PTHL_UP,PTHV_UP,PRT_UP,PU_UP,PV_UP
+REAL, DIMENSION(D%NIJT,D%NKT,KSV), INTENT(IN) ::  PSV_UP
 ! Fluxes
-REAL, DIMENSION(D%NIT,D%NKT), INTENT(OUT)  ::  PFLXZTHMF,PFLXZTHVMF,PFLXZRMF,PFLXZUMF,PFLXZVMF
+REAL, DIMENSION(D%NIJT,D%NKT), INTENT(OUT)  ::  PFLXZTHMF,PFLXZTHVMF,PFLXZRMF,PFLXZUMF,PFLXZVMF
 
-REAL, DIMENSION(D%NIT,D%NKT,KSV), INTENT(OUT)::  PFLXZSVMF
+REAL, DIMENSION(D%NIJT,D%NKT,KSV), INTENT(OUT)::  PFLXZSVMF
 !
 !
 !
@@ -126,7 +126,7 @@ REAL, DIMENSION(D%NIT,D%NKT,KSV), INTENT(OUT)::  PFLXZSVMF
 !       0.2  declaration of local variables
 !
 
-REAL, DIMENSION(D%NIT,D%NKT) :: ZVARS
+REAL, DIMENSION(D%NIJT,D%NKT) :: ZVARS
 INTEGER :: JSV          !number of scalar variables and Loop counter
 INTEGER :: JI, JK
 REAL(KIND=JPRB) :: ZHOOK_HANDLE
@@ -155,19 +155,19 @@ CALL MZM_MF(D, PTHLM(:,:), PFLXZTHMF(:,:))
 CALL MZM_MF(D, PRTM(:,:), PFLXZRMF(:,:))
 CALL MZM_MF(D, PTHVM(:,:), PFLXZTHVMF(:,:))
 
-!$mnh_expand_array(JI=D%NIB:D%NIE,JK=D%NKTB:D%NKTE)
-PFLXZTHMF(D%NIB:D%NIE,:) = PEMF(D%NIB:D%NIE,:)*(PTHL_UP(D%NIB:D%NIE,:)-PFLXZTHMF(D%NIB:D%NIE,:))
-PFLXZRMF(D%NIB:D%NIE,:) =  PEMF(D%NIB:D%NIE,:)*(PRT_UP(D%NIB:D%NIE,:)-PFLXZRMF(D%NIB:D%NIE,:))
-PFLXZTHVMF(D%NIB:D%NIE,:) = PEMF(D%NIB:D%NIE,:)*(PTHV_UP(D%NIB:D%NIE,:)-PFLXZTHVMF(D%NIB:D%NIE,:))
-!$mnh_end_expand_array(JI=D%NIB:D%NIE,JK=D%NKTB:D%NKTE)
+!$mnh_expand_array(JI=D%NIJB:D%NIJE,JK=D%NKTB:D%NKTE)
+PFLXZTHMF(D%NIJB:D%NIJE,:) = PEMF(D%NIJB:D%NIJE,:)*(PTHL_UP(D%NIJB:D%NIJE,:)-PFLXZTHMF(D%NIJB:D%NIJE,:))
+PFLXZRMF(D%NIJB:D%NIJE,:) =  PEMF(D%NIJB:D%NIJE,:)*(PRT_UP(D%NIJB:D%NIJE,:)-PFLXZRMF(D%NIJB:D%NIJE,:))
+PFLXZTHVMF(D%NIJB:D%NIJE,:) = PEMF(D%NIJB:D%NIJE,:)*(PTHV_UP(D%NIJB:D%NIJE,:)-PFLXZTHVMF(D%NIJB:D%NIJE,:))
+!$mnh_end_expand_array(JI=D%NIJB:D%NIJE,JK=D%NKTB:D%NKTE)
 
 IF (OMIXUV) THEN
   CALL MZM_MF(D, PUM(:,:), PFLXZUMF(:,:))
   CALL MZM_MF(D, PVM(:,:), PFLXZVMF(:,:))
-  !$mnh_expand_array(JI=D%NIB:D%NIE,JK=D%NKTB:D%NKTE)
-  PFLXZUMF(D%NIB:D%NIE,:) =  PEMF(D%NIB:D%NIE,:)*(PU_UP(D%NIB:D%NIE,:)-PFLXZUMF(D%NIB:D%NIE,:))
-  PFLXZVMF(D%NIB:D%NIE,:) =  PEMF(D%NIB:D%NIE,:)*(PV_UP(D%NIB:D%NIE,:)-PFLXZVMF(D%NIB:D%NIE,:))
-  !$mnh_end_expand_array(JI=D%NIB:D%NIE,JK=D%NKTB:D%NKTE)
+  !$mnh_expand_array(JI=D%NIJB:D%NIJE,JK=D%NKTB:D%NKTE)
+  PFLXZUMF(D%NIJB:D%NIJE,:) =  PEMF(D%NIJB:D%NIJE,:)*(PU_UP(D%NIJB:D%NIJE,:)-PFLXZUMF(D%NIJB:D%NIJE,:))
+  PFLXZVMF(D%NIJB:D%NIJE,:) =  PEMF(D%NIJB:D%NIJE,:)*(PV_UP(D%NIJB:D%NIJE,:)-PFLXZVMF(D%NIJB:D%NIJE,:))
+  !$mnh_end_expand_array(JI=D%NIJB:D%NIJE,JK=D%NKTB:D%NKTE)
 ELSE
   PFLXZUMF(:,:) = 0.
   PFLXZVMF(:,:) = 0.
@@ -190,10 +190,10 @@ CALL TRIDIAG_MASSFLUX(D,PTHLM,PFLXZTHMF,-PEMF,PTSTEP,PIMPL,  &
                       PDZZ,PRHODJ,ZVARS )
 ! compute new flux and THL tendency
 CALL MZM_MF(D, ZVARS(:,:), PFLXZTHMF(:,:))
-!$mnh_expand_array(JI=D%NIB:D%NIE,JK=D%NKTB:D%NKTE)
-PFLXZTHMF(D%NIB:D%NIE,:) = PEMF(D%NIB:D%NIE,:)*(PTHL_UP(D%NIB:D%NIE,:)-PFLXZTHMF(D%NIB:D%NIE,:))
-PTHLDT(D%NIB:D%NIE,:)= (ZVARS(D%NIB:D%NIE,:)-PTHLM(D%NIB:D%NIE,:))/PTSTEP
-!$mnh_end_expand_array(JI=D%NIB:D%NIE,JK=D%NKTB:D%NKTE)
+!$mnh_expand_array(JI=D%NIJB:D%NIJE,JK=D%NKTB:D%NKTE)
+PFLXZTHMF(D%NIJB:D%NIJE,:) = PEMF(D%NIJB:D%NIJE,:)*(PTHL_UP(D%NIJB:D%NIJE,:)-PFLXZTHMF(D%NIJB:D%NIJE,:))
+PTHLDT(D%NIJB:D%NIJE,:)= (ZVARS(D%NIJB:D%NIJE,:)-PTHLM(D%NIJB:D%NIJE,:))/PTSTEP
+!$mnh_end_expand_array(JI=D%NIJB:D%NIJE,JK=D%NKTB:D%NKTE)
 
 !
 ! 3.2 Compute the tendency for the conservative mixing ratio
@@ -202,10 +202,10 @@ CALL TRIDIAG_MASSFLUX(D,PRTM(:,:),PFLXZRMF,-PEMF,PTSTEP,PIMPL,  &
                                  PDZZ,PRHODJ,ZVARS )
 ! compute new flux and RT tendency
 CALL MZM_MF(D, ZVARS(:,:), PFLXZRMF(:,:))
-!$mnh_expand_array(JI=D%NIB:D%NIE,JK=D%NKTB:D%NKTE)
-PFLXZRMF(D%NIB:D%NIE,:) =  PEMF(D%NIB:D%NIE,:)*(PRT_UP(D%NIB:D%NIE,:)-PFLXZRMF(D%NIB:D%NIE,:))
-PRTDT(D%NIB:D%NIE,:) = (ZVARS(D%NIB:D%NIE,:)-PRTM(D%NIB:D%NIE,:))/PTSTEP
-!$mnh_end_expand_array(JI=D%NIB:D%NIE,JK=D%NKTB:D%NKTE)
+!$mnh_expand_array(JI=D%NIJB:D%NIJE,JK=D%NKTB:D%NKTE)
+PFLXZRMF(D%NIJB:D%NIJE,:) =  PEMF(D%NIJB:D%NIJE,:)*(PRT_UP(D%NIJB:D%NIJE,:)-PFLXZRMF(D%NIJB:D%NIJE,:))
+PRTDT(D%NIJB:D%NIJE,:) = (ZVARS(D%NIJB:D%NIJE,:)-PRTM(D%NIJB:D%NIJE,:))/PTSTEP
+!$mnh_end_expand_array(JI=D%NIJB:D%NIJE,JK=D%NKTB:D%NKTE)
 !
 
 IF (OMIXUV) THEN
@@ -218,10 +218,10 @@ IF (OMIXUV) THEN
                                  PDZZ,PRHODJ,ZVARS )
   ! compute new flux and U tendency
   CALL MZM_MF(D, ZVARS(:,:), PFLXZUMF(:,:))
-  !$mnh_expand_array(JI=D%NIB:D%NIE,JK=D%NKTB:D%NKTE)
-  PFLXZUMF(D%NIB:D%NIE,:) = PEMF(D%NIB:D%NIE,:)*(PU_UP(D%NIB:D%NIE,:)-PFLXZUMF(D%NIB:D%NIE,:))
-  PUDT(D%NIB:D%NIE,:)= (ZVARS(D%NIB:D%NIE,:)-PUM(D%NIB:D%NIE,:))/PTSTEP
-  !$mnh_end_expand_array(JI=D%NIB:D%NIE,JK=D%NKTB:D%NKTE)
+  !$mnh_expand_array(JI=D%NIJB:D%NIJE,JK=D%NKTB:D%NKTE)
+  PFLXZUMF(D%NIJB:D%NIJE,:) = PEMF(D%NIJB:D%NIJE,:)*(PU_UP(D%NIJB:D%NIJE,:)-PFLXZUMF(D%NIJB:D%NIJE,:))
+  PUDT(D%NIJB:D%NIJE,:)= (ZVARS(D%NIJB:D%NIJE,:)-PUM(D%NIJB:D%NIJE,:))/PTSTEP
+  !$mnh_end_expand_array(JI=D%NIJB:D%NIJE,JK=D%NKTB:D%NKTE)
   !
   !
   ! 3.4 Compute the tendency for the (non conservative but treated as it for the time beiing)
@@ -232,10 +232,10 @@ IF (OMIXUV) THEN
                                  PDZZ,PRHODJ,ZVARS )
   ! compute new flux and V tendency
   CALL MZM_MF(D, ZVARS(:,:), PFLXZVMF(:,:))
-  !$mnh_expand_array(JI=D%NIB:D%NIE,JK=D%NKTB:D%NKTE)
-  PFLXZVMF(D%NIB:D%NIE,:) = PEMF(D%NIB:D%NIE,:)*(PV_UP(D%NIB:D%NIE,:)-PFLXZVMF(D%NIB:D%NIE,:))
-  PVDT(D%NIB:D%NIE,:)= (ZVARS(D%NIB:D%NIE,:)-PVM(D%NIB:D%NIE,:))/PTSTEP
-  !$mnh_end_expand_array(JI=D%NIB:D%NIE,JK=D%NKTB:D%NKTE)
+  !$mnh_expand_array(JI=D%NIJB:D%NIJE,JK=D%NKTB:D%NKTE)
+  PFLXZVMF(D%NIJB:D%NIJE,:) = PEMF(D%NIJB:D%NIJE,:)*(PV_UP(D%NIJB:D%NIJE,:)-PFLXZVMF(D%NIJB:D%NIJE,:))
+  PVDT(D%NIJB:D%NIJE,:)= (ZVARS(D%NIJB:D%NIJE,:)-PVM(D%NIJB:D%NIJE,:))/PTSTEP
+  !$mnh_end_expand_array(JI=D%NIJB:D%NIJE,JK=D%NKTB:D%NKTE)
 ELSE
   PUDT(:,:)=0.
   PVDT(:,:)=0.
@@ -249,9 +249,9 @@ DO JSV=1,KSV
   !   ( Resulting fluxes are in flux level (w-point) as PEMF and PTHL_UP )
 
   CALL MZM_MF(D, PSVM(:,:,JSV), PFLXZSVMF(:,:,JSV))
-  !$mnh_expand_array(JI=D%NIB:D%NIE,JK=D%NKTB:D%NKTE)
-  PFLXZSVMF(D%NIB:D%NIE,:,JSV) = PEMF(D%NIB:D%NIE,:)*(PSV_UP(D%NIB:D%NIE,:,JSV)-PFLXZSVMF(D%NIB:D%NIE,:,JSV))
-  !$mnh_end_expand_array(JI=D%NIB:D%NIE,JK=D%NKTB:D%NKTE)
+  !$mnh_expand_array(JI=D%NIJB:D%NIJE,JK=D%NKTB:D%NKTE)
+  PFLXZSVMF(D%NIJB:D%NIJE,:,JSV) = PEMF(D%NIJB:D%NIJE,:)*(PSV_UP(D%NIJB:D%NIJE,:,JSV)-PFLXZSVMF(D%NIJB:D%NIJE,:,JSV))
+  !$mnh_end_expand_array(JI=D%NIJB:D%NIJE,JK=D%NKTB:D%NKTE)
   !
   ! 3.5 Compute the tendency for scalar variables
   !     (PDZZ and flux in w-point and PRHODJ is mass point, result in mass point)
@@ -260,10 +260,10 @@ DO JSV=1,KSV
                         -PEMF,PTSTEP,PIMPL,PDZZ,PRHODJ,ZVARS )
   ! compute new flux and Sv tendency
   CALL MZM_MF(D, ZVARS, PFLXZSVMF(:,:,JSV))
-  !$mnh_expand_array(JI=D%NIB:D%NIE,JK=D%NKTB:D%NKTE)
-  PFLXZSVMF(D%NIB:D%NIE,:,JSV) = PEMF(D%NIB:D%NIE,:)*(PSV_UP(D%NIB:D%NIE,:,JSV)-PFLXZSVMF(D%NIB:D%NIE,:,JSV))
-  PSVDT(D%NIB:D%NIE,:,JSV)= (ZVARS(D%NIB:D%NIE,:)-PSVM(D%NIB:D%NIE,:,JSV))/PTSTEP
-  !$mnh_end_expand_array(JI=D%NIB:D%NIE,JK=D%NKTB:D%NKTE)
+  !$mnh_expand_array(JI=D%NIJB:D%NIJE,JK=D%NKTB:D%NKTE)
+  PFLXZSVMF(D%NIJB:D%NIJE,:,JSV) = PEMF(D%NIJB:D%NIJE,:)*(PSV_UP(D%NIJB:D%NIJE,:,JSV)-PFLXZSVMF(D%NIJB:D%NIJE,:,JSV))
+  PSVDT(D%NIJB:D%NIJE,:,JSV)= (ZVARS(D%NIJB:D%NIJE,:)-PSVM(D%NIJB:D%NIJE,:,JSV))/PTSTEP
+  !$mnh_end_expand_array(JI=D%NIJB:D%NIJE,JK=D%NKTB:D%NKTE)
 
 ENDDO
 !
diff --git a/src/common/turb/mode_mf_turb_expl.F90 b/src/common/turb/mode_mf_turb_expl.F90
index cace0eb3ac7af50ab043dd2e25d2a56ba4063c0b..6f275cf85580ce0b82ff02e66e224f25155690d9 100644
--- a/src/common/turb/mode_mf_turb_expl.F90
+++ b/src/common/turb/mode_mf_turb_expl.F90
@@ -68,36 +68,36 @@ TYPE(DIMPHYEX_t),       INTENT(IN)   :: D
 TYPE(PARAM_MFSHALL_t),  INTENT(IN)   :: PARAMMF
 LOGICAL,                INTENT(IN)   :: OMIXUV      ! True if mixing of momentum
 
-REAL, DIMENSION(D%NIT,D%NKT), INTENT(IN)   :: PRHODJ      ! dry density * Grid size
+REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN)   :: PRHODJ      ! dry density * Grid size
 
 !   Conservative var. at t-dt
-REAL, DIMENSION(D%NIT,D%NKT), INTENT(IN) ::  PTHLM        ! conservative pot. temp.
-REAL, DIMENSION(D%NIT,D%NKT), INTENT(IN) ::  PRTM         ! water var.  where 
+REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) ::  PTHLM        ! conservative pot. temp.
+REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) ::  PRTM         ! water var.  where 
 
 !  Virtual potential temperature at t-dt
-REAL, DIMENSION(D%NIT,D%NKT), INTENT(IN) ::  PTHVM 
+REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) ::  PTHVM 
 !  Momentum at t-dt
-REAL, DIMENSION(D%NIT,D%NKT), INTENT(IN) ::  PUM
-REAL, DIMENSION(D%NIT,D%NKT), INTENT(IN) ::  PVM
+REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) ::  PUM
+REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) ::  PVM
 !
 ! Tendencies of conservative variables
-REAL, DIMENSION(D%NIT,D%NKT),   INTENT(OUT) ::  PTHLDT
+REAL, DIMENSION(D%NIJT,D%NKT),   INTENT(OUT) ::  PTHLDT
 
-REAL, DIMENSION(D%NIT,D%NKT),   INTENT(OUT) ::  PRTDT 
+REAL, DIMENSION(D%NIJT,D%NKT),   INTENT(OUT) ::  PRTDT 
 
 ! Tendencies of momentum
-REAL, DIMENSION(D%NIT,D%NKT),   INTENT(OUT) ::  PUDT
-REAL, DIMENSION(D%NIT,D%NKT),   INTENT(OUT) ::  PVDT
+REAL, DIMENSION(D%NIJT,D%NKT),   INTENT(OUT) ::  PUDT
+REAL, DIMENSION(D%NIJT,D%NKT),   INTENT(OUT) ::  PVDT
 
 ! Updraft characteritics
-REAL, DIMENSION(D%NIT,D%NKT), INTENT(IN)   ::  PEMF,PTHL_UP,PTHV_UP,PRT_UP,PU_UP,PV_UP
+REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN)   ::  PEMF,PTHL_UP,PTHV_UP,PRT_UP,PU_UP,PV_UP
 
 ! Fluxes
-REAL, DIMENSION(D%NIT,D%NKT), INTENT(OUT)  ::  PFLXZTHLMF,PFLXZTHVMF,PFLXZRMF,PFLXZUMF,PFLXZVMF
+REAL, DIMENSION(D%NIJT,D%NKT), INTENT(OUT)  ::  PFLXZTHLMF,PFLXZTHVMF,PFLXZRMF,PFLXZUMF,PFLXZVMF
 
-REAL, DIMENSION(D%NIT,D%NKT) :: ZFLXZTHSMF,ZTHS_UP,ZTHSM  ! Theta S flux
-REAL, DIMENSION(D%NIT,D%NKT) :: ZQT_UP,ZQTM,ZTHSDT,ZQTDT
-REAL, DIMENSION(D%NIT,D%NKT) :: ZTHLM_F,ZRTM_F
+REAL, DIMENSION(D%NIJT,D%NKT) :: ZFLXZTHSMF,ZTHS_UP,ZTHSM  ! Theta S flux
+REAL, DIMENSION(D%NIJT,D%NKT) :: ZQT_UP,ZQTM,ZTHSDT,ZQTDT
+REAL, DIMENSION(D%NIJT,D%NKT) :: ZTHLM_F,ZRTM_F
 
 INTEGER                              :: JK, JI            ! loop counter
 REAL(KIND=JPRB) :: ZHOOK_HANDLE
@@ -130,31 +130,31 @@ PVDT   = 0.
 
 CALL MZM_MF(D, PRTM (:,:), ZRTM_F(:,:))
 CALL MZM_MF(D, PTHLM(:,:), ZTHLM_F(:,:))
-!$mnh_expand_array(JI=D%NIB:D%NIE,JK=D%NKTB:D%NKTE)
-ZQTM(D%NIB:D%NIE,:)   = ZRTM_F(D%NIB:D%NIE,:)/(1.+ZRTM_F(D%NIB:D%NIE,:))
-ZQT_UP(D%NIB:D%NIE,:) = PRT_UP(D%NIB:D%NIE,:)/(1.+PRT_UP(D%NIB:D%NIE,:))
-ZTHS_UP(D%NIB:D%NIE,:)= PTHL_UP(D%NIB:D%NIE,:)*(1.+PARAMMF%XLAMBDA_MF*ZQT_UP(D%NIB:D%NIE,:))
-ZTHSM(D%NIB:D%NIE,:)  = ZTHLM_F(D%NIB:D%NIE,:)*(1.+PARAMMF%XLAMBDA_MF*ZQTM(D%NIB:D%NIE,:))
-!$mnh_end_expand_array(JI=D%NIB:D%NIE,JK=D%NKTB:D%NKTE)
+!$mnh_expand_array(JI=D%NIJB:D%NIJE,JK=D%NKTB:D%NKTE)
+ZQTM(D%NIJB:D%NIJE,:)   = ZRTM_F(D%NIJB:D%NIJE,:)/(1.+ZRTM_F(D%NIJB:D%NIJE,:))
+ZQT_UP(D%NIJB:D%NIJE,:) = PRT_UP(D%NIJB:D%NIJE,:)/(1.+PRT_UP(D%NIJB:D%NIJE,:))
+ZTHS_UP(D%NIJB:D%NIJE,:)= PTHL_UP(D%NIJB:D%NIJE,:)*(1.+PARAMMF%XLAMBDA_MF*ZQT_UP(D%NIJB:D%NIJE,:))
+ZTHSM(D%NIJB:D%NIJE,:)  = ZTHLM_F(D%NIJB:D%NIJE,:)*(1.+PARAMMF%XLAMBDA_MF*ZQTM(D%NIJB:D%NIJE,:))
+!$mnh_end_expand_array(JI=D%NIJB:D%NIJE,JK=D%NKTB:D%NKTE)
 
 CALL MZM_MF(D, PTHLM(:,:), PFLXZTHLMF(:,:))
 CALL MZM_MF(D, PRTM(:,:), PFLXZRMF(:,:))
 CALL MZM_MF(D, PTHVM(:,:), PFLXZTHVMF(:,:))
-!$mnh_expand_array(JI=D%NIB:D%NIE,JK=D%NKTB:D%NKTE)
-PFLXZTHLMF(D%NIB:D%NIE,:)  = PEMF(D%NIB:D%NIE,:)*(PTHL_UP(D%NIB:D%NIE,:)-PFLXZTHLMF(D%NIB:D%NIE,:))  ! ThetaL
-PFLXZRMF(D%NIB:D%NIE,:)    = PEMF(D%NIB:D%NIE,:)*(PRT_UP(D%NIB:D%NIE,:)-PFLXZRMF(D%NIB:D%NIE,:))  ! Rt
-PFLXZTHVMF(D%NIB:D%NIE,:)  = PEMF(D%NIB:D%NIE,:)*(PTHV_UP(D%NIB:D%NIE,:)-PFLXZTHVMF(D%NIB:D%NIE,:))  ! ThetaV
+!$mnh_expand_array(JI=D%NIJB:D%NIJE,JK=D%NKTB:D%NKTE)
+PFLXZTHLMF(D%NIJB:D%NIJE,:)  = PEMF(D%NIJB:D%NIJE,:)*(PTHL_UP(D%NIJB:D%NIJE,:)-PFLXZTHLMF(D%NIJB:D%NIJE,:))  ! ThetaL
+PFLXZRMF(D%NIJB:D%NIJE,:)    = PEMF(D%NIJB:D%NIJE,:)*(PRT_UP(D%NIJB:D%NIJE,:)-PFLXZRMF(D%NIJB:D%NIJE,:))  ! Rt
+PFLXZTHVMF(D%NIJB:D%NIJE,:)  = PEMF(D%NIJB:D%NIJE,:)*(PTHV_UP(D%NIJB:D%NIJE,:)-PFLXZTHVMF(D%NIJB:D%NIJE,:))  ! ThetaV
 
-ZFLXZTHSMF(D%NIB:D%NIE,:)  = PEMF(D%NIB:D%NIE,:)*(ZTHS_UP(D%NIB:D%NIE,:)-ZTHSM(D%NIB:D%NIE,:))    ! Theta S flux
-!$mnh_end_expand_array(JI=D%NIB:D%NIE,JK=D%NKTB:D%NKTE)
+ZFLXZTHSMF(D%NIJB:D%NIJE,:)  = PEMF(D%NIJB:D%NIJE,:)*(ZTHS_UP(D%NIJB:D%NIJE,:)-ZTHSM(D%NIJB:D%NIJE,:))    ! Theta S flux
+!$mnh_end_expand_array(JI=D%NIJB:D%NIJE,JK=D%NKTB:D%NKTE)
 
 IF (OMIXUV) THEN
   CALL MZM_MF(D, PUM(:,:), PFLXZUMF(:,:))
   CALL MZM_MF(D, PVM(:,:), PFLXZVMF(:,:))
-  !$mnh_expand_array(JI=D%NIB:D%NIE,JK=D%NKTB:D%NKTE)
-  PFLXZUMF(D%NIB:D%NIE,:) =  PEMF(D%NIB:D%NIE,:)*(PU_UP(D%NIB:D%NIE,:)-PFLXZUMF(D%NIB:D%NIE,:))  ! U
-  PFLXZVMF(D%NIB:D%NIE,:) =  PEMF(D%NIB:D%NIE,:)*(PV_UP(D%NIB:D%NIE,:)-PFLXZVMF(D%NIB:D%NIE,:))  ! V
-  !$mnh_end_expand_array(JI=D%NIB:D%NIE,JK=D%NKTB:D%NKTE)
+  !$mnh_expand_array(JI=D%NIJB:D%NIJE,JK=D%NKTB:D%NKTE)
+  PFLXZUMF(D%NIJB:D%NIJE,:) =  PEMF(D%NIJB:D%NIJE,:)*(PU_UP(D%NIJB:D%NIJE,:)-PFLXZUMF(D%NIJB:D%NIJE,:))  ! U
+  PFLXZVMF(D%NIJB:D%NIJE,:) =  PEMF(D%NIJB:D%NIJE,:)*(PV_UP(D%NIJB:D%NIJE,:)-PFLXZVMF(D%NIJB:D%NIJE,:))  ! V
+  !$mnh_end_expand_array(JI=D%NIJB:D%NIJE,JK=D%NKTB:D%NKTE)
 ELSE
   PFLXZUMF(:,:) = 0.
   PFLXZVMF(:,:) = 0.
@@ -168,7 +168,7 @@ ENDIF
 !          --------------------------------------------
 
 DO JK=D%NKB,D%NKE-D%NKL,D%NKL
-  DO JI=D%NIB,D%NIE
+  DO JI=D%NIJB,D%NIJE
     !PTHLDT(JI,JK) = (PFLXZTHLMF(JI,JK  ) - PFLXZTHLMF(JI,JK+D%NKL)) / PRHODJ(JI,JK)
     PRTDT(JI,JK) = (PFLXZRMF(JI,JK) - PFLXZRMF(JI,JK+D%NKL)) / PRHODJ(JI,JK)
     ZQTDT(JI,JK) = PRTDT(JI,JK)/(1.+ ZRTM_F(JI,JK)*ZRTM_F(JI,JK))
@@ -179,7 +179,7 @@ END DO
 
 IF (OMIXUV) THEN
   DO JK=D%NKB,D%NKE-D%NKL,D%NKL
-    DO JI=D%NIB,D%NIE
+    DO JI=D%NIJB,D%NIJE
       PUDT(JI,JK) = (PFLXZUMF(JI,JK) - PFLXZUMF(JI,JK+D%NKL)) / PRHODJ(JI,JK)
       PVDT(JI,JK) = (PFLXZVMF(JI,JK) - PFLXZVMF(JI,JK+D%NKL)) / PRHODJ(JI,JK)
     ENDDO
diff --git a/src/common/turb/mode_thl_rt_from_th_r_mf.F90 b/src/common/turb/mode_thl_rt_from_th_r_mf.F90
index c83a0ff578f714f84542d789806b55590b454cce..055c6b5ee3c78862868a27b9a63fb61fcf28ef45 100644
--- a/src/common/turb/mode_thl_rt_from_th_r_mf.F90
+++ b/src/common/turb/mode_thl_rt_from_th_r_mf.F90
@@ -63,12 +63,12 @@ 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(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)   :: PEXN    ! exner function
+REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN)   :: PTH      ! theta
+REAL, DIMENSION(D%NIJT,D%NKT,KRR), INTENT(IN) :: PR       ! water species
+REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN)   :: PEXN    ! exner function
 
-REAL, DIMENSION(D%NIT,D%NKT), INTENT(OUT)  :: PTHL     ! th_l
-REAL, DIMENSION(D%NIT,D%NKT), INTENT(OUT)  :: PRT      ! total non precip. water
+REAL, DIMENSION(D%NIJT,D%NKT), INTENT(OUT)  :: PTHL     ! th_l
+REAL, DIMENSION(D%NIJT,D%NKT), INTENT(OUT)  :: PRT      ! total non precip. water
 !
 !-------------------------------------------------------------------------------
 !
@@ -76,65 +76,65 @@ REAL, DIMENSION(D%NIT,D%NKT), INTENT(OUT)  :: PRT      ! total non precip. water
 !
 
 !----------------------------------------------------------------------------
-REAL, DIMENSION(D%NIT,D%NKT) :: ZCP, ZT
-REAL, DIMENSION(D%NIT,D%NKT) :: ZLVOCPEXN, ZLSOCPEXN
+REAL, DIMENSION(D%NIJT,D%NKT) :: ZCP, ZT
+REAL, DIMENSION(D%NIJT,D%NKT) :: ZLVOCPEXN, ZLSOCPEXN
 INTEGER :: JRR, JI, JK
 REAL(KIND=JPRB) :: ZHOOK_HANDLE
 !----------------------------------------------------------------------------
 !
 !
 IF (LHOOK) CALL DR_HOOK('THL_RT_FRM_TH_R_MF',0,ZHOOK_HANDLE)
-!$mnh_expand_array(JI=D%NIB:D%NIE,JK=1:D%NKT)
+!$mnh_expand_array(JI=D%NIJB:D%NIJE,JK=1:D%NKT)
 !temperature
-ZT(D%NIB:D%NIE,:) = PTH(D%NIB:D%NIE,:) * PEXN(D%NIB:D%NIE,:)
+ZT(D%NIJB:D%NIJE,:) = PTH(D%NIJB:D%NIJE,:) * PEXN(D%NIJB:D%NIJE,:)
 
 !Cp
-ZCP(D%NIB:D%NIE,:)=CST%XCPD
-IF (KRR > 0) ZCP(D%NIB:D%NIE,:) = ZCP(D%NIB:D%NIE,:) + CST%XCPV * PR(D%NIB:D%NIE,:,1)
-!$mnh_end_expand_array(JI=D%NIB:D%NIE,JK=1:D%NKT)
+ZCP(D%NIJB:D%NIJE,:)=CST%XCPD
+IF (KRR > 0) ZCP(D%NIJB:D%NIJE,:) = ZCP(D%NIJB:D%NIJE,:) + CST%XCPV * PR(D%NIJB:D%NIJE,:,1)
+!$mnh_end_expand_array(JI=D%NIJB:D%NIJE,JK=1:D%NKT)
 DO JRR = 2,1+KRRL  ! loop on the liquid components
-  !$mnh_expand_array(JI=D%NIB:D%NIE,JK=1:D%NKT)
-  ZCP(D%NIB:D%NIE,:)  = ZCP(D%NIB:D%NIE,:) + CST%XCL * PR(D%NIB:D%NIE,:,JRR)
-  !$mnh_end_expand_array(JI=D%NIB:D%NIE,JK=1:D%NKT)
+  !$mnh_expand_array(JI=D%NIJB:D%NIJE,JK=1:D%NKT)
+  ZCP(D%NIJB:D%NIJE,:)  = ZCP(D%NIJB:D%NIJE,:) + CST%XCL * PR(D%NIJB:D%NIJE,:,JRR)
+  !$mnh_end_expand_array(JI=D%NIJB:D%NIJE,JK=1:D%NKT)
 END DO
 DO JRR = 2+KRRL,1+KRRL+KRRI ! loop on the solid components
-  !$mnh_expand_array(JI=D%NIB:D%NIE,JK=1:D%NKT)
-  ZCP(D%NIB:D%NIE,:)  = ZCP(D%NIB:D%NIE,:)  + CST%XCI * PR(D%NIB:D%NIE,:,JRR)
-  !$mnh_end_expand_array(JI=D%NIB:D%NIE,JK=1:D%NKT)
+  !$mnh_expand_array(JI=D%NIJB:D%NIJE,JK=1:D%NKT)
+  ZCP(D%NIJB:D%NIJE,:)  = ZCP(D%NIJB:D%NIJE,:)  + CST%XCI * PR(D%NIJB:D%NIJE,:,JRR)
+  !$mnh_end_expand_array(JI=D%NIJB:D%NIJE,JK=1:D%NKT)
 END DO
 
 IF ( KRRL >= 1 ) THEN
   IF ( KRRI >= 1 ) THEN
-    !$mnh_expand_array(JI=D%NIB:D%NIE,JK=1:D%NKT)
+    !$mnh_expand_array(JI=D%NIJB:D%NIJE,JK=1:D%NKT)
     !ZLVOCPEXN and ZLSOCPEXN
-    ZLVOCPEXN(D%NIB:D%NIE,:)=(CST%XLVTT + (CST%XCPV-CST%XCL) *  (ZT(D%NIB:D%NIE,:)-CST%XTT) ) & 
-                            &/ ZCP(D%NIB:D%NIE,:) / PEXN(D%NIB:D%NIE,:)
-    ZLSOCPEXN(D%NIB:D%NIE,:)=(CST%XLSTT + (CST%XCPV-CST%XCI) *  (ZT(D%NIB:D%NIE,:)-CST%XTT) ) &
-                            &/ ZCP(D%NIB:D%NIE,:) / PEXN(D%NIB:D%NIE,:)
+    ZLVOCPEXN(D%NIJB:D%NIJE,:)=(CST%XLVTT + (CST%XCPV-CST%XCL) *  (ZT(D%NIJB:D%NIJE,:)-CST%XTT) ) & 
+                            &/ ZCP(D%NIJB:D%NIJE,:) / PEXN(D%NIJB:D%NIJE,:)
+    ZLSOCPEXN(D%NIJB:D%NIJE,:)=(CST%XLSTT + (CST%XCPV-CST%XCI) *  (ZT(D%NIJB:D%NIJE,:)-CST%XTT) ) &
+                            &/ ZCP(D%NIJB:D%NIJE,:) / PEXN(D%NIJB:D%NIJE,:)
     ! Rnp 
-    PRT(D%NIB:D%NIE,:)  = PR(D%NIB:D%NIE,:,1)  + PR(D%NIB:D%NIE,:,2)  + PR(D%NIB:D%NIE,:,4)
+    PRT(D%NIJB:D%NIJE,:)  = PR(D%NIJB:D%NIJE,:,1)  + PR(D%NIJB:D%NIJE,:,2)  + PR(D%NIJB:D%NIJE,:,4)
     ! Theta_l 
-    PTHL(D%NIB:D%NIE,:)  = PTH(D%NIB:D%NIE,:)  - ZLVOCPEXN(D%NIB:D%NIE,:) * PR(D%NIB:D%NIE,:,2) &
-                           - ZLSOCPEXN(D%NIB:D%NIE,:) * PR(D%NIB:D%NIE,:,4)
-    !$mnh_end_expand_array(JI=D%NIB:D%NIE,JK=1:D%NKT)
+    PTHL(D%NIJB:D%NIJE,:)  = PTH(D%NIJB:D%NIJE,:)  - ZLVOCPEXN(D%NIJB:D%NIJE,:) * PR(D%NIJB:D%NIJE,:,2) &
+                           - ZLSOCPEXN(D%NIJB:D%NIJE,:) * PR(D%NIJB:D%NIJE,:,4)
+    !$mnh_end_expand_array(JI=D%NIJB:D%NIJE,JK=1:D%NKT)
   ELSE
-    !$mnh_expand_array(JI=D%NIB:D%NIE,JK=1:D%NKT)
+    !$mnh_expand_array(JI=D%NIJB:D%NIJE,JK=1:D%NKT)
     !ZLVOCPEXN
-    ZLVOCPEXN(D%NIB:D%NIE,:)=(CST%XLVTT + (CST%XCPV-CST%XCL) *  (ZT(D%NIB:D%NIE,:)-CST%XTT) ) &
-                            &/ ZCP(D%NIB:D%NIE,:) / PEXN(D%NIB:D%NIE,:)
+    ZLVOCPEXN(D%NIJB:D%NIJE,:)=(CST%XLVTT + (CST%XCPV-CST%XCL) *  (ZT(D%NIJB:D%NIJE,:)-CST%XTT) ) &
+                            &/ ZCP(D%NIJB:D%NIJE,:) / PEXN(D%NIJB:D%NIJE,:)
     ! Rnp
-    PRT(D%NIB:D%NIE,:)  = PR(D%NIB:D%NIE,:,1)  + PR(D%NIB:D%NIE,:,2) 
+    PRT(D%NIJB:D%NIJE,:)  = PR(D%NIJB:D%NIJE,:,1)  + PR(D%NIJB:D%NIJE,:,2) 
     ! Theta_l
-    PTHL(D%NIB:D%NIE,:) = PTH(D%NIB:D%NIE,:)  - ZLVOCPEXN(D%NIB:D%NIE,:) * PR(D%NIB:D%NIE,:,2)
-    !$mnh_end_expand_array(JI=D%NIB:D%NIE,JK=1:D%NKT)
+    PTHL(D%NIJB:D%NIJE,:) = PTH(D%NIJB:D%NIJE,:)  - ZLVOCPEXN(D%NIJB:D%NIJE,:) * PR(D%NIJB:D%NIJE,:,2)
+    !$mnh_end_expand_array(JI=D%NIJB:D%NIJE,JK=1:D%NKT)
   END IF
 ELSE
-  !$mnh_expand_array(JI=D%NIB:D%NIE,JK=1:D%NKT)
+  !$mnh_expand_array(JI=D%NIJB:D%NIJE,JK=1:D%NKT)
   ! Rnp = rv
-  PRT(D%NIB:D%NIE,:)  = PR(D%NIB:D%NIE,:,1)
+  PRT(D%NIJB:D%NIJE,:)  = PR(D%NIJB:D%NIJE,:,1)
   ! Theta_l = Theta
-  PTHL(D%NIB:D%NIE,:) = PTH(D%NIB:D%NIE,:)
-  !$mnh_end_expand_array(JI=D%NIB:D%NIE,JK=1:D%NKT)
+  PTHL(D%NIJB:D%NIJE,:) = PTH(D%NIJB:D%NIJE,:)
+  !$mnh_end_expand_array(JI=D%NIJB:D%NIJE,JK=1:D%NKT)
 END IF
 IF (LHOOK) CALL DR_HOOK('THL_RT_FRM_TH_R_MF',1,ZHOOK_HANDLE)
 END SUBROUTINE THL_RT_FROM_TH_R_MF
diff --git a/src/common/turb/mode_tridiag_massflux.F90 b/src/common/turb/mode_tridiag_massflux.F90
index 88fd02999a71cf1e3b35a2bfd5ada7cbdda82348..c2145ba59cb306a42e5d5d362f85c7466ec927a2 100644
--- a/src/common/turb/mode_tridiag_massflux.F90
+++ b/src/common/turb/mode_tridiag_massflux.F90
@@ -131,27 +131,27 @@ IMPLICIT NONE
 !*       0.1 declarations of arguments
 !
 TYPE(DIMPHYEX_t),       INTENT(IN)   :: D
-REAL, DIMENSION(D%NIT,D%NKT), INTENT(IN) :: PVARM   ! variable at t-1      at mass point
-REAL, DIMENSION(D%NIT,D%NKT), INTENT(IN) :: PF      ! flux in dT/dt=-dF/dz at flux point
-REAL, DIMENSION(D%NIT,D%NKT), INTENT(IN) :: PDFDT   ! dF/dT                at flux point
+REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PVARM   ! variable at t-1      at mass point
+REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PF      ! flux in dT/dt=-dF/dz at flux point
+REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PDFDT   ! dF/dT                at flux point
 REAL,                   INTENT(IN) :: PTSTEP  ! Double time step
 REAL,                   INTENT(IN) :: PIMPL   ! implicit weight
-REAL, DIMENSION(D%NIT,D%NKT), INTENT(IN) :: PDZZ    ! Dz                   at flux point
-REAL, DIMENSION(D%NIT,D%NKT), INTENT(IN) :: PRHODJ  ! (dry rho)*J          at mass point
+REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PDZZ    ! Dz                   at flux point
+REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PRHODJ  ! (dry rho)*J          at mass point
 !
-REAL, DIMENSION(D%NIT,D%NKT), INTENT(OUT):: PVARP   ! variable at t+1      at mass point
+REAL, DIMENSION(D%NIJT,D%NKT), INTENT(OUT):: PVARP   ! variable at t+1      at mass point
 !
 !
 !*       0.2 declarations of local variables
 !
-REAL, DIMENSION(D%NIT,D%NKT)  :: ZRHODJ_DFDT_O_DZ
-REAL, DIMENSION(D%NIT,D%NKT)  :: ZMZM_RHODJ
-REAL, DIMENSION(D%NIT,D%NKT)  :: ZA, ZB, ZC
-REAL, DIMENSION(D%NIT,D%NKT)  :: ZY ,ZGAM 
+REAL, DIMENSION(D%NIJT,D%NKT)  :: ZRHODJ_DFDT_O_DZ
+REAL, DIMENSION(D%NIJT,D%NKT)  :: ZMZM_RHODJ
+REAL, DIMENSION(D%NIJT,D%NKT)  :: ZA, ZB, ZC
+REAL, DIMENSION(D%NIJT,D%NKT)  :: ZY ,ZGAM 
                                          ! RHS of the equation, 3D work array
-REAL, DIMENSION(D%NIT)                :: ZBET
+REAL, DIMENSION(D%NIJT)                :: ZBET
                                          ! 2D work array
-INTEGER                              :: JK            ! loop counter
+INTEGER                              :: JK, JI            ! loop counter
 !
 ! ---------------------------------------------------------------------------
 !                                              
@@ -172,30 +172,38 @@ ZY=0.
 !*      2.  COMPUTE THE RIGHT HAND SIDE
 !           ---------------------------
 !
-ZY(:,D%NKB) = PRHODJ(:,D%NKB)*PVARM(:,D%NKB)/PTSTEP             &
-    - ZMZM_RHODJ(:,D%NKB+D%NKL) * PF(:,D%NKB+D%NKL)/PDZZ(:,D%NKB+D%NKL)     &
-    + ZMZM_RHODJ(:,D%NKB  ) * PF(:,D%NKB  )/PDZZ(:,D%NKB  )     &
-    + ZRHODJ_DFDT_O_DZ(:,D%NKB+D%NKL) * 0.5*PIMPL * PVARM(:,D%NKB+D%NKL)    &
-    + ZRHODJ_DFDT_O_DZ(:,D%NKB+D%NKL) * 0.5*PIMPL * PVARM(:,D%NKB  )
+!$mnh_expand_array(JI=D%NIJB:D%NIJE)
+ZY(D%NIJB:D%NIJE,D%NKB) = PRHODJ(D%NIJB:D%NIJE,D%NKB)*PVARM(D%NIJB:D%NIJE,D%NKB)/PTSTEP             &
+    - ZMZM_RHODJ(D%NIJB:D%NIJE,D%NKB+D%NKL) * PF(D%NIJB:D%NIJE,D%NKB+D%NKL)/PDZZ(D%NIJB:D%NIJE,D%NKB+D%NKL)     &
+    + ZMZM_RHODJ(D%NIJB:D%NIJE,D%NKB  ) * PF(D%NIJB:D%NIJE,D%NKB  )/PDZZ(D%NIJB:D%NIJE,D%NKB  )     &
+    + ZRHODJ_DFDT_O_DZ(D%NIJB:D%NIJE,D%NKB+D%NKL) * 0.5*PIMPL * PVARM(D%NIJB:D%NIJE,D%NKB+D%NKL)    &
+    + ZRHODJ_DFDT_O_DZ(D%NIJB:D%NIJE,D%NKB+D%NKL) * 0.5*PIMPL * PVARM(D%NIJB:D%NIJE,D%NKB  )
+!$mnh_end_expand_array(JI=D%NIJB:D%NIJE)
 !
 DO JK=1+D%NKTB,D%NKTE-1
-  ZY(:,JK) = PRHODJ(:,JK)*PVARM(:,JK)/PTSTEP          &
-    - ZMZM_RHODJ(:,JK+D%NKL) * PF(:,JK+D%NKL)/PDZZ(:,JK+D%NKL)    &
-    + ZMZM_RHODJ(:,JK  ) * PF(:,JK  )/PDZZ(:,JK  )    &
-    + ZRHODJ_DFDT_O_DZ(:,JK+D%NKL) * 0.5*PIMPL * PVARM(:,JK+D%NKL)  &
-    + ZRHODJ_DFDT_O_DZ(:,JK+D%NKL) * 0.5*PIMPL * PVARM(:,JK  )  &
-    - ZRHODJ_DFDT_O_DZ(:,JK  ) * 0.5*PIMPL * PVARM(:,JK  )  &
-    - ZRHODJ_DFDT_O_DZ(:,JK  ) * 0.5*PIMPL * PVARM(:,JK-D%NKL)
+  !$mnh_expand_array(JI=D%NIJB:D%NIJE)
+  ZY(D%NIJB:D%NIJE,JK) = PRHODJ(D%NIJB:D%NIJE,JK)*PVARM(D%NIJB:D%NIJE,JK)/PTSTEP          &
+    - ZMZM_RHODJ(D%NIJB:D%NIJE,JK+D%NKL) * PF(D%NIJB:D%NIJE,JK+D%NKL)/PDZZ(D%NIJB:D%NIJE,JK+D%NKL)    &
+    + ZMZM_RHODJ(D%NIJB:D%NIJE,JK  ) * PF(D%NIJB:D%NIJE,JK  )/PDZZ(D%NIJB:D%NIJE,JK  )    &
+    + ZRHODJ_DFDT_O_DZ(D%NIJB:D%NIJE,JK+D%NKL) * 0.5*PIMPL * PVARM(D%NIJB:D%NIJE,JK+D%NKL)  &
+    + ZRHODJ_DFDT_O_DZ(D%NIJB:D%NIJE,JK+D%NKL) * 0.5*PIMPL * PVARM(D%NIJB:D%NIJE,JK  )  &
+    - ZRHODJ_DFDT_O_DZ(D%NIJB:D%NIJE,JK  ) * 0.5*PIMPL * PVARM(D%NIJB:D%NIJE,JK  )  &
+    - ZRHODJ_DFDT_O_DZ(D%NIJB:D%NIJE,JK  ) * 0.5*PIMPL * PVARM(D%NIJB:D%NIJE,JK-D%NKL)
+  !$mnh_end_expand_array(JI=D%NIJB:D%NIJE)
 END DO
 ! 
 IF (D%NKE==D%NKU) THEN
-  ZY(:,D%NKE) = PRHODJ(:,D%NKE)*PVARM(:,D%NKE)/PTSTEP 
+  !$mnh_expand_array(JI=D%NIJB:D%NIJE)
+  ZY(D%NIJB:D%NIJE,D%NKE) = PRHODJ(D%NIJB:D%NIJE,D%NKE)*PVARM(D%NIJB:D%NIJE,D%NKE)/PTSTEP
+  !$mnh_end_expand_array(JI=D%NIJB:D%NIJE)
 ELSE
-  ZY(:,D%NKE) = PRHODJ(:,D%NKE)*PVARM(:,D%NKE)/PTSTEP &
-   - ZMZM_RHODJ(:,D%NKE+D%NKL) * PF(:,D%NKE+D%NKL)/PDZZ(:,D%NKE+D%NKL) &
-   + ZMZM_RHODJ(:,D%NKE  ) * PF(:,D%NKE  )/PDZZ(:,D%NKE  ) &
-   - ZRHODJ_DFDT_O_DZ(:,D%NKE ) * 0.5*PIMPL * PVARM(:,D%NKE  ) &
-   - ZRHODJ_DFDT_O_DZ(:,D%NKE ) * 0.5*PIMPL * PVARM(:,D%NKE-D%NKL)
+  !$mnh_expand_array(JI=D%NIJB:D%NIJE)
+  ZY(D%NIJB:D%NIJE,D%NKE) = PRHODJ(D%NIJB:D%NIJE,D%NKE)*PVARM(D%NIJB:D%NIJE,D%NKE)/PTSTEP &
+   - ZMZM_RHODJ(D%NIJB:D%NIJE,D%NKE+D%NKL) * PF(D%NIJB:D%NIJE,D%NKE+D%NKL)/PDZZ(D%NIJB:D%NIJE,D%NKE+D%NKL) &
+   + ZMZM_RHODJ(D%NIJB:D%NIJE,D%NKE  ) * PF(D%NIJB:D%NIJE,D%NKE  )/PDZZ(D%NIJB:D%NIJE,D%NKE  ) &
+   - ZRHODJ_DFDT_O_DZ(D%NIJB:D%NIJE,D%NKE ) * 0.5*PIMPL * PVARM(D%NIJB:D%NIJE,D%NKE  ) &
+   - ZRHODJ_DFDT_O_DZ(D%NIJB:D%NIJE,D%NKE ) * 0.5*PIMPL * PVARM(D%NIJB:D%NIJE,D%NKE-D%NKL)
+  !$mnh_end_expand_array(JI=D%NIJB:D%NIJE)
 ENDIF
 !
 !
@@ -207,50 +215,64 @@ IF ( PIMPL > 1.E-10 ) THEN
 !*       3.1 arrays A, B, C
 !            --------------
 !
-  ZB(:,D%NKB) =   PRHODJ(:,D%NKB)/PTSTEP                   &
-                + ZRHODJ_DFDT_O_DZ(:,D%NKB+D%NKL) * 0.5*PIMPL
-  ZC(:,D%NKB) =   ZRHODJ_DFDT_O_DZ(:,D%NKB+D%NKL) * 0.5*PIMPL
+  !$mnh_expand_array(JI=D%NIJB:D%NIJE)
+  ZB(D%NIJB:D%NIJE,D%NKB) =   PRHODJ(D%NIJB:D%NIJE,D%NKB)/PTSTEP                   &
+                + ZRHODJ_DFDT_O_DZ(D%NIJB:D%NIJE,D%NKB+D%NKL) * 0.5*PIMPL
+  ZC(D%NIJB:D%NIJE,D%NKB) =   ZRHODJ_DFDT_O_DZ(D%NIJB:D%NIJE,D%NKB+D%NKL) * 0.5*PIMPL
+  !$mnh_end_expand_array(JI=D%NIJB:D%NIJE)
 
   DO JK=1+D%NKTB,D%NKTE-1
-    ZA(:,JK) = - ZRHODJ_DFDT_O_DZ(:,JK  ) * 0.5*PIMPL
-    ZB(:,JK) =   PRHODJ(:,JK)/PTSTEP                   &
-                 + ZRHODJ_DFDT_O_DZ(:,JK+D%NKL) * 0.5*PIMPL &
-                 - ZRHODJ_DFDT_O_DZ(:,JK  ) * 0.5*PIMPL
-    ZC(:,JK) =   ZRHODJ_DFDT_O_DZ(:,JK+D%NKL) * 0.5*PIMPL
+    !$mnh_expand_array(JI=D%NIJB:D%NIJE)
+    ZA(D%NIJB:D%NIJE,JK) = - ZRHODJ_DFDT_O_DZ(D%NIJB:D%NIJE,JK  ) * 0.5*PIMPL
+    ZB(D%NIJB:D%NIJE,JK) =   PRHODJ(D%NIJB:D%NIJE,JK)/PTSTEP                   &
+                 + ZRHODJ_DFDT_O_DZ(D%NIJB:D%NIJE,JK+D%NKL) * 0.5*PIMPL &
+                 - ZRHODJ_DFDT_O_DZ(D%NIJB:D%NIJE,JK  ) * 0.5*PIMPL
+    ZC(D%NIJB:D%NIJE,JK) =   ZRHODJ_DFDT_O_DZ(D%NIJB:D%NIJE,JK+D%NKL) * 0.5*PIMPL
+    !$mnh_end_expand_array(JI=D%NIJB:D%NIJE)
   END DO
-
-  ZA(:,D%NKE) = - ZRHODJ_DFDT_O_DZ(:,D%NKE  ) * 0.5*PIMPL
-  ZB(:,D%NKE) =   PRHODJ(:,D%NKE)/PTSTEP                   &
-                - ZRHODJ_DFDT_O_DZ(:,D%NKE  ) * 0.5*PIMPL
+  !$mnh_expand_array(JI=D%NIJB:D%NIJE)
+  ZA(D%NIJB:D%NIJE,D%NKE) = - ZRHODJ_DFDT_O_DZ(D%NIJB:D%NIJE,D%NKE  ) * 0.5*PIMPL
+  ZB(D%NIJB:D%NIJE,D%NKE) =   PRHODJ(D%NIJB:D%NIJE,D%NKE)/PTSTEP                   &
+                - ZRHODJ_DFDT_O_DZ(D%NIJB:D%NIJE,D%NKE  ) * 0.5*PIMPL
+  !$mnh_end_expand_array(JI=D%NIJB:D%NIJE)
 !
 !*       3.2 going up
 !            --------
 !
-  ZBET(:) = ZB(:,D%NKB)  ! bet = b(D%NKB)
-  PVARP(:,D%NKB) = ZY(:,D%NKB) / ZBET(:)
+  !$mnh_expand_array(JI=D%NIJB:D%NIJE)
+  ZBET(D%NIJB:D%NIJE) = ZB(D%NIJB:D%NIJE,D%NKB)  ! bet = b(D%NKB)
+  PVARP(D%NIJB:D%NIJE,D%NKB) = ZY(D%NIJB:D%NIJE,D%NKB) / ZBET(D%NIJB:D%NIJE)
+  !$mnh_end_expand_array(JI=D%NIJB:D%NIJE)
 
   !
   DO JK = D%NKB+D%NKL,D%NKE-D%NKL,D%NKL
-    ZGAM(:,JK) = ZC(:,JK-D%NKL) / ZBET(:)
+    !$mnh_expand_array(JI=D%NIJB:D%NIJE)
+    ZGAM(D%NIJB:D%NIJE,JK) = ZC(D%NIJB:D%NIJE,JK-D%NKL) / ZBET(D%NIJB:D%NIJE)
                                                     ! gam(k) = c(k-1) / bet
-    ZBET(:)    = ZB(:,JK) - ZA(:,JK) * ZGAM(:,JK)
+    ZBET(D%NIJB:D%NIJE)    = ZB(D%NIJB:D%NIJE,JK) - ZA(D%NIJB:D%NIJE,JK) * ZGAM(D%NIJB:D%NIJE,JK)
                                                     ! bet = b(k) - a(k)* gam(k)  
-    PVARP(:,JK)= ( ZY(:,JK) - ZA(:,JK) * PVARP(:,JK-D%NKL) ) / ZBET(:)
+    PVARP(D%NIJB:D%NIJE,JK)= ( ZY(D%NIJB:D%NIJE,JK) - ZA(D%NIJB:D%NIJE,JK) * PVARP(D%NIJB:D%NIJE,JK-D%NKL) ) / ZBET(D%NIJB:D%NIJE)
                                         ! res(k) = (y(k) -a(k)*res(k-1))/ bet 
+    !$mnh_end_expand_array(JI=D%NIJB:D%NIJE)
   END DO 
+  !$mnh_expand_array(JI=D%NIJB:D%NIJE)
   ! special treatment for the last level
-  ZGAM(:,D%NKE) = ZC(:,D%NKE-D%NKL) / ZBET(:)
+  ZGAM(D%NIJB:D%NIJE,D%NKE) = ZC(D%NIJB:D%NIJE,D%NKE-D%NKL) / ZBET(D%NIJB:D%NIJE)
                                                     ! gam(k) = c(k-1) / bet
-  ZBET(:)     = ZB(:,D%NKE) - ZA(:,D%NKE) * ZGAM(:,D%NKE)
+  ZBET(D%NIJB:D%NIJE)     = ZB(D%NIJB:D%NIJE,D%NKE) - ZA(D%NIJB:D%NIJE,D%NKE) * ZGAM(D%NIJB:D%NIJE,D%NKE)
                                                     ! bet = b(k) - a(k)* gam(k)  
-  PVARP(:,D%NKE)= ( ZY(:,D%NKE) - ZA(:,D%NKE) * PVARP(:,D%NKE-D%NKL) ) / ZBET(:)
+  PVARP(D%NIJB:D%NIJE,D%NKE)= ( ZY(D%NIJB:D%NIJE,D%NKE) - ZA(D%NIJB:D%NIJE,D%NKE) * PVARP(D%NIJB:D%NIJE,D%NKE-D%NKL) ) / &
+                              &ZBET(D%NIJB:D%NIJE)
                                        ! res(k) = (y(k) -a(k)*res(k-1))/ bet 
+  !$mnh_end_expand_array(JI=D%NIJB:D%NIJE)
 !
 !*       3.3 going down
 !            ----------
 !
   DO JK = D%NKE-D%NKL,D%NKB,-D%NKL
-    PVARP(:,JK) = PVARP(:,JK) - ZGAM(:,JK+D%NKL) * PVARP(:,JK+D%NKL)
+    !$mnh_expand_array(JI=D%NIJB:D%NIJE)
+    PVARP(D%NIJB:D%NIJE,JK) = PVARP(D%NIJB:D%NIJE,JK) - ZGAM(D%NIJB:D%NIJE,JK+D%NKL) * PVARP(D%NIJB:D%NIJE,JK+D%NKL)
+    !$mnh_end_expand_array(JI=D%NIJB:D%NIJE)
   END DO
 !
 !
@@ -258,7 +280,9 @@ ELSE
   !!! EXPLICIT FORMULATION
   !
   DO JK=D%NKTB,D%NKTE
-    PVARP(:,JK) = ZY(:,JK) * PTSTEP / PRHODJ(:,JK)
+    !$mnh_expand_array(JI=D%NIJB:D%NIJE)
+    PVARP(D%NIJB:D%NIJE,JK) = ZY(D%NIJB:D%NIJE,JK) * PTSTEP / PRHODJ(D%NIJB:D%NIJE,JK)
+    !$mnh_end_expand_array(JI=D%NIJB:D%NIJE)
   ENDDO
   !
 END IF 
@@ -267,8 +291,10 @@ END IF
 !*       4.  FILL THE UPPER AND LOWER EXTERNAL VALUES
 !            ----------------------------------------
 !
-PVARP(:,D%NKA)=PVARP(:,D%NKB)
-PVARP(:,D%NKU)=PVARP(:,D%NKE)
+!$mnh_expand_array(JI=D%NIJB:D%NIJE)
+PVARP(D%NIJB:D%NIJE,D%NKA)=PVARP(D%NIJB:D%NIJE,D%NKB)
+PVARP(D%NIJB:D%NIJE,D%NKU)=PVARP(D%NIJB:D%NIJE,D%NKE)
+!$mnh_end_expand_array(JI=D%NIJB:D%NIJE)
 !
 !-------------------------------------------------------------------------------
 !
diff --git a/src/common/turb/modi_shallow_mf.F90 b/src/common/turb/modi_shallow_mf.F90
index 7271a8b0864437564fa5b5704a89603d5921dec9..2fc3b6b45b3aa78a57bf60e8e9c29d86e34f6ddd 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%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
+REAL, DIMENSION(D%NIJT,D%NKT),   INTENT(IN) ::  PZZ         ! Height of flux point
+REAL, DIMENSION(D%NIJT,D%NKT),   INTENT(IN) ::  PDZZ        ! Metric coefficients
+REAL, DIMENSION(D%NIJT,D%NKT),   INTENT(IN) ::  PRHODJ      ! dry density * Grid size
+REAL, DIMENSION(D%NIJT,D%NKT),   INTENT(IN) ::  PRHODREF    ! dry density of the
                                                      ! reference state
-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%NIJT,D%NKT),   INTENT(IN) ::  PPABSM      ! Pressure at time t-1
+REAL, DIMENSION(D%NIJT,D%NKT),   INTENT(IN) ::  PEXNM       ! Exner function 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%NIJT),         INTENT(IN) ::  PSFTH,PSFRV ! normal surface fluxes of theta and Rv 
+REAL, DIMENSION(D%NIJT,D%NKT),   INTENT(IN) ::  PTHM        ! Theta at t-dt
+REAL, DIMENSION(D%NIJT,KRR),     INTENT(IN) ::  PRM         ! water var. at t-dt
+REAL, DIMENSION(D%NIJT,D%NKT),   INTENT(IN) ::  PUM,PVM     ! wind components at t-dt
+REAL, DIMENSION(D%NIJT,D%NKT),   INTENT(IN) ::  PTKEM       ! tke at t-dt
 
-REAL, DIMENSION(D%NIT,D%NKT,KSV), INTENT(IN) ::  PSVM        ! scalar variable a t-dt
+REAL, DIMENSION(D%NIJT,D%NKT,KSV), INTENT(IN) ::  PSVM        ! scalar variable a t-dt
 
-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%NIJT,D%NKT),   INTENT(OUT)::  PDUDT_MF     ! tendency of U   by massflux scheme
+REAL, DIMENSION(D%NIJT,D%NKT),   INTENT(OUT)::  PDVDT_MF     ! tendency of V   by massflux scheme
+REAL, DIMENSION(D%NIJT,D%NKT),   INTENT(OUT)::  PDTHLDT_MF   ! tendency of thl by massflux scheme
+REAL, DIMENSION(D%NIJT,D%NKT),   INTENT(OUT)::  PDRTDT_MF    ! tendency of rt  by massflux scheme
+REAL, DIMENSION(D%NIJT,D%NKT,KSV), INTENT(OUT)::  PDSVDT_MF    ! tendency of Sv  by massflux scheme
 
-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, DIMENSION(D%NIJT,D%NKT),   INTENT(OUT)   ::  PSIGMF,PRC_MF,PRI_MF,PCF_MF ! cloud info for the cloud scheme
+REAL, DIMENSION(D%NIJT,D%NKT), INTENT(OUT)     ::  PFLXZTHVMF           ! Thermal production for TKE scheme
+REAL, DIMENSION(D%NIJT,D%NKT), INTENT(OUT)     ::  PFLXZTHMF
+REAL, DIMENSION(D%NIJT,D%NKT), INTENT(OUT)     ::  PFLXZRMF
+REAL, DIMENSION(D%NIJT,D%NKT), INTENT(OUT)     ::  PFLXZUMF
+REAL, DIMENSION(D%NIJT,D%NKT), INTENT(OUT)     ::  PFLXZVMF
+REAL, DIMENSION(D%NIJT,D%NKT), INTENT(INOUT) ::  PTHL_UP   ! Thl updraft characteristics
+REAL, DIMENSION(D%NIJT,D%NKT), INTENT(INOUT) ::  PRT_UP    ! Rt  updraft characteristics
+REAL, DIMENSION(D%NIJT,D%NKT), INTENT(OUT) ::  PRV_UP    ! Vapor updraft characteristics
+REAL, DIMENSION(D%NIJT,D%NKT), INTENT(INOUT) ::  PU_UP     ! U wind updraft characteristics
+REAL, DIMENSION(D%NIJT,D%NKT), INTENT(INOUT) ::  PV_UP     ! V wind updraft characteristics
+REAL, DIMENSION(D%NIJT,D%NKT), INTENT(INOUT) ::  PRC_UP    ! cloud content updraft characteristics
+REAL, DIMENSION(D%NIJT,D%NKT), INTENT(INOUT) ::  PRI_UP    ! ice content   updraft characteristics
+REAL, DIMENSION(D%NIJT,D%NKT), INTENT(INOUT) ::  PTHV_UP   ! Thv   updraft characteristics
+REAL, DIMENSION(D%NIJT,D%NKT), INTENT(INOUT) ::  PW_UP     ! vertical speed updraft characteristics
+REAL, DIMENSION(D%NIJT,D%NKT), INTENT(INOUT) ::  PFRAC_UP  ! updraft fraction
+REAL, DIMENSION(D%NIJT,D%NKT), INTENT(INOUT) ::  PEMF      ! updraft mass flux
+REAL, DIMENSION(D%NIJT,D%NKT), INTENT(OUT) ::  PDETR     ! updraft detrainment
+REAL, DIMENSION(D%NIJT,D%NKT), INTENT(OUT) ::  PENTR     ! updraft entrainment
+INTEGER,DIMENSION(D%NIJT),     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 c59028930612593fdcec07a62d02b97dc047fcec..988798bb662451a1ab928f630e8cbbe2a2398147 100644
--- a/src/common/turb/shallow_mf.F90
+++ b/src/common/turb/shallow_mf.F90
@@ -118,70 +118,70 @@ 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%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
+REAL, DIMENSION(D%NIJT,D%NKT),   INTENT(IN) ::  PZZ         ! Height of flux point
+REAL, DIMENSION(D%NIJT,D%NKT),   INTENT(IN) ::  PDZZ        ! Metric coefficients
+REAL, DIMENSION(D%NIJT,D%NKT),   INTENT(IN) ::  PRHODJ      ! dry density * Grid size
+REAL, DIMENSION(D%NIJT,D%NKT),   INTENT(IN) ::  PRHODREF    ! dry density of the
                                                      ! reference state
-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%NIJT,D%NKT),   INTENT(IN) ::  PPABSM      ! Pressure at time t-1
+REAL, DIMENSION(D%NIJT,D%NKT),   INTENT(IN) ::  PEXNM       ! Exner function 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,D%NKT,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%NIJT),   INTENT(IN)   ::  PSFTH,PSFRV ! normal surface fluxes of theta and Rv 
+REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN)   ::  PTHM        ! Theta at t-dt
+REAL, DIMENSION(D%NIJT,D%NKT,KRR), INTENT(IN) ::  PRM         ! water var. at t-dt
+REAL, DIMENSION(D%NIJT,D%NKT),   INTENT(IN) ::  PUM,PVM     ! wind components at t-dt
+REAL, DIMENSION(D%NIJT,D%NKT),   INTENT(IN) ::  PTKEM       ! tke at t-dt
 
-REAL, DIMENSION(D%NIT,D%NKT,KSV), INTENT(IN) ::  PSVM        ! scalar variable a t-dt
+REAL, DIMENSION(D%NIJT,D%NKT,KSV), INTENT(IN) ::  PSVM        ! scalar variable a t-dt
 
-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%NIJT,D%NKT),   INTENT(OUT)::  PDUDT_MF     ! tendency of U   by massflux scheme
+REAL, DIMENSION(D%NIJT,D%NKT),   INTENT(OUT)::  PDVDT_MF     ! tendency of V   by massflux scheme
+REAL, DIMENSION(D%NIJT,D%NKT),   INTENT(OUT)::  PDTHLDT_MF   ! tendency of thl by massflux scheme
+REAL, DIMENSION(D%NIJT,D%NKT),   INTENT(OUT)::  PDRTDT_MF    ! tendency of rt  by massflux scheme
+REAL, DIMENSION(D%NIJT,D%NKT,KSV), INTENT(OUT)::  PDSVDT_MF    ! tendency of Sv  by massflux scheme
 
-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(INOUT) ::  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, DIMENSION(D%NIJT,D%NKT), INTENT(OUT)     ::  PSIGMF,PRC_MF,PRI_MF,PCF_MF ! cloud info for the cloud scheme
+REAL, DIMENSION(D%NIJT,D%NKT), INTENT(OUT)     ::  PFLXZTHVMF           ! Thermal production for TKE scheme
+REAL, DIMENSION(D%NIJT,D%NKT), INTENT(OUT)     ::  PFLXZTHMF
+REAL, DIMENSION(D%NIJT,D%NKT), INTENT(OUT)     ::  PFLXZRMF
+REAL, DIMENSION(D%NIJT,D%NKT), INTENT(OUT)     ::  PFLXZUMF
+REAL, DIMENSION(D%NIJT,D%NKT), INTENT(OUT)     ::  PFLXZVMF
+REAL, DIMENSION(D%NIJT,D%NKT), INTENT(INOUT) ::  PTHL_UP   ! Thl updraft characteristics
+REAL, DIMENSION(D%NIJT,D%NKT), INTENT(INOUT) ::  PRT_UP    ! Rt  updraft characteristics
+REAL, DIMENSION(D%NIJT,D%NKT), INTENT(INOUT) ::  PRV_UP    ! Vapor updraft characteristics
+REAL, DIMENSION(D%NIJT,D%NKT), INTENT(INOUT) ::  PU_UP     ! U wind updraft characteristics
+REAL, DIMENSION(D%NIJT,D%NKT), INTENT(INOUT) ::  PV_UP     ! V wind updraft characteristics
+REAL, DIMENSION(D%NIJT,D%NKT), INTENT(INOUT) ::  PRC_UP    ! cloud content updraft characteristics
+REAL, DIMENSION(D%NIJT,D%NKT), INTENT(INOUT) ::  PRI_UP    ! ice content   updraft characteristics
+REAL, DIMENSION(D%NIJT,D%NKT), INTENT(INOUT) ::  PTHV_UP   ! Thv   updraft characteristics
+REAL, DIMENSION(D%NIJT,D%NKT), INTENT(INOUT) ::  PW_UP     ! vertical speed updraft characteristics
+REAL, DIMENSION(D%NIJT,D%NKT), INTENT(INOUT) ::  PFRAC_UP  ! updraft fraction
+REAL, DIMENSION(D%NIJT,D%NKT), INTENT(INOUT) ::  PEMF      ! updraft mass flux
+REAL, DIMENSION(D%NIJT,D%NKT), INTENT(OUT) ::  PDETR     ! updraft detrainment
+REAL, DIMENSION(D%NIJT,D%NKT), INTENT(OUT) ::  PENTR     ! updraft entrainment
+INTEGER,DIMENSION(D%NIJT), INTENT(OUT) :: KKLCL,KKETL,KKCTL ! level of LCL,ETL and CTL
 REAL,                 INTENT(IN)  :: PDX, PDY
 !
 !                     0.2  Declaration of local variables
 !
-REAL, DIMENSION(D%NIT,D%NKT) ::     &
+REAL, DIMENSION(D%NIJT,D%NKT) ::     &
           ZTHLM,                                  & !
           ZRTM,                                   & !
           ZTHVM,                                  & !
           ZEMF_O_RHODREF,                         & ! entrainment/detrainment
           ZBUO_INTEG                                ! integrated buoyancy
-REAL, DIMENSION(D%NIT,D%NKT) :: ZFRAC_ICE
-REAL, DIMENSION(D%NIT,D%NKT) :: ZWK
+REAL, DIMENSION(D%NIJT,D%NKT) :: ZFRAC_ICE
+REAL, DIMENSION(D%NIJT,D%NKT) :: ZWK
 
-REAL, DIMENSION(D%NIT,D%NKT,KSV) ::  &
+REAL, DIMENSION(D%NIJT,D%NKT,KSV) ::  &
                                           ZSV_UP,&  ! updraft scalar var.
                                           ZFLXZSVMF ! Flux     
-REAL, DIMENSION(D%NIT) :: ZDEPTH             ! Deepness of cloud
-REAL, DIMENSION(D%NIT,D%NKT) :: ZFRAC_ICE_UP ! liquid/solid fraction in updraft
-REAL, DIMENSION(D%NIT,D%NKT) :: ZRSAT_UP ! Rsat in updraft
+REAL, DIMENSION(D%NIJT) :: ZDEPTH             ! Deepness of cloud
+REAL, DIMENSION(D%NIJT,D%NKT) :: ZFRAC_ICE_UP ! liquid/solid fraction in updraft
+REAL, DIMENSION(D%NIJT,D%NKT) :: ZRSAT_UP ! Rsat in updraft
 
 LOGICAL :: GENTR_DETR  ! flag to recompute entrainment, detrainment and mass flux
-INTEGER, DIMENSION(D%NIT,D%NKT) :: IERR
+INTEGER, DIMENSION(D%NIJT,D%NKT) :: IERR
 INTEGER :: JI, JK
 !
 REAL(KIND=JPRB) :: ZHOOK_HANDLE
@@ -201,15 +201,15 @@ ENDIF
 ! Thermodynamics functions
 ZFRAC_ICE(:,:) = 0.
 IF (KRR.GE.4) THEN
-  !$mnh_expand_where(JI=D%NIB:D%NIE,JK=D%NKTB:D%NKTE)
-  WHERE(PRM(D%NIB:D%NIE,:,2)+PRM(D%NIB:D%NIE,:,4) > 1.E-20)
-    ZFRAC_ICE(D%NIB:D%NIE,:) = PRM(D%NIB:D%NIE,:,4) / (PRM(D%NIB:D%NIE,:,2)+PRM(D%NIB:D%NIE,:,4))
+  !$mnh_expand_where(JI=D%NIJB:D%NIJE,JK=D%NKTB:D%NKTE)
+  WHERE(PRM(D%NIJB:D%NIJE,:,2)+PRM(D%NIJB:D%NIJE,:,4) > 1.E-20)
+    ZFRAC_ICE(D%NIJB:D%NIJE,:) = PRM(D%NIJB:D%NIJE,:,4) / (PRM(D%NIJB:D%NIJE,:,2)+PRM(D%NIJB:D%NIJE,:,4))
   ENDWHERE
-  !$mnh_end_expand_where(JI=D%NIB:D%NIE,JK=D%NKTB:D%NKTE)
+  !$mnh_end_expand_where(JI=D%NIJB:D%NIJE,JK=D%NKTB:D%NKTE)
 ENDIF
-!$mnh_expand_array(JI=D%NIB:D%NIE,JK=D%NKTB:D%NKTE)
-ZWK(D%NIB:D%NIE,:)=PTHM(D%NIB:D%NIE,:)*PEXNM(D%NIB:D%NIE,:)
-!$mnh_end_expand_array(JI=D%NIB:D%NIE,JK=D%NKTB:D%NKTE)
+!$mnh_expand_array(JI=D%NIJB:D%NIJE,JK=D%NKTB:D%NKTE)
+ZWK(D%NIJB:D%NIJE,:)=PTHM(D%NIJB:D%NIJE,:)*PEXNM(D%NIJB:D%NIJE,:)
+!$mnh_end_expand_array(JI=D%NIJB:D%NIJE,JK=D%NKTB:D%NKTE)
 CALL COMPUTE_FRAC_ICE(HFRAC_ICE,NEB,ZFRAC_ICE(:,:),ZWK(:,:), IERR(:,:))
 
 ! Conservative variables at t-dt
@@ -218,9 +218,9 @@ CALL THL_RT_FROM_TH_R_MF(D, CST, KRR,KRRL,KRRI,    &
                          ZTHLM, ZRTM       )
 
 ! Virtual potential temperature at t-dt
-!$mnh_expand_array(JI=D%NIB:D%NIE,JK=D%NKTB:D%NKTE)
-ZTHVM(D%NIB:D%NIE,:) = PTHM(D%NIB:D%NIE,:)*((1.+CST%XRV / CST%XRD *PRM(D%NIB:D%NIE,:,1))/(1.+ZRTM(D%NIB:D%NIE,:))) 
-!$mnh_end_expand_array(JI=D%NIB:D%NIE,JK=D%NKTB:D%NKTE)
+!$mnh_expand_array(JI=D%NIJB:D%NIJE,JK=D%NKTB:D%NKTE)
+ZTHVM(D%NIJB:D%NIJE,:) = PTHM(D%NIJB:D%NIJE,:)*((1.+CST%XRV / CST%XRD *PRM(D%NIJB:D%NIJE,:,1))/(1.+ZRTM(D%NIJB:D%NIJE,:))) 
+!$mnh_end_expand_array(JI=D%NIJB:D%NIJE,JK=D%NKTB:D%NKTE)
 ! 
 !!! 2. Compute updraft
 !!!    ---------------
@@ -291,9 +291,9 @@ CALL COMPUTE_MF_CLOUD(D, CST, PARAMMF, KRR, KRRL, KRRI, &
 !!! 3. Compute fluxes of conservative variables and their divergence = tendency
 !!!    ------------------------------------------------------------------------
 !
-!$mnh_expand_array(JI=D%NIB:D%NIE,JK=D%NKTB:D%NKTE)
-ZEMF_O_RHODREF(D%NIB:D%NIE,:)=PEMF(D%NIB:D%NIE,:)/PRHODREF(D%NIB:D%NIE,:)
-!$mnh_end_expand_array(JI=D%NIB:D%NIE,JK=D%NKTB:D%NKTE)
+!$mnh_expand_array(JI=D%NIJB:D%NIJE,JK=D%NKTB:D%NKTE)
+ZEMF_O_RHODREF(D%NIJB:D%NIJE,:)=PEMF(D%NIJB:D%NIJE,:)/PRHODREF(D%NIJB:D%NIJE,:)
+!$mnh_end_expand_array(JI=D%NIJB:D%NIJE,JK=D%NKTB:D%NKTE)
 
 IF ( PIMPL_MF > 1.E-10 ) THEN  
   CALL MF_TURB(D, KSV, OMIXUV,                     &
diff --git a/src/common/turb/shuman_mf.F90 b/src/common/turb/shuman_mf.F90
index 2618e4052fbb194b1e577006eaa3cac0a972ebac..567347cbe7dc59c80935119686968b482808db3b 100644
--- a/src/common/turb/shuman_mf.F90
+++ b/src/common/turb/shuman_mf.F90
@@ -12,8 +12,8 @@ SUBROUTINE DZF_MF(D, PA, PDZF)
 USE MODD_DIMPHYEX,        ONLY: DIMPHYEX_t
 IMPLICIT NONE
 TYPE(DIMPHYEX_t),             INTENT(IN)  :: D
-REAL, DIMENSION(D%NIT,D%NKT), INTENT(IN)  :: PA     ! variable at flux side
-REAL, DIMENSION(D%NIT,D%NKT), INTENT(OUT) :: PDZF   ! result at mass
+REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN)  :: PA     ! variable at flux side
+REAL, DIMENSION(D%NIJT,D%NKT), INTENT(OUT) :: PDZF   ! result at mass
                                                  ! localization
 END SUBROUTINE DZF_MF
 !
@@ -21,8 +21,8 @@ SUBROUTINE DZM_MF(D, PA, PDZM)
 USE MODD_DIMPHYEX,        ONLY: DIMPHYEX_t
 IMPLICIT NONE
 TYPE(DIMPHYEX_t),             INTENT(IN)  :: D
-REAL, DIMENSION(D%NIT,D%NKT), INTENT(IN)  :: PA     ! variable at mass localization
-REAL, DIMENSION(D%NIT,D%NKT), INTENT(OUT) :: PDZM   ! result at flux
+REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN)  :: PA     ! variable at mass localization
+REAL, DIMENSION(D%NIJT,D%NKT), INTENT(OUT) :: PDZM   ! result at flux
                                                  ! side
 END SUBROUTINE DZM_MF
 !
@@ -30,8 +30,8 @@ SUBROUTINE MZF_MF(D, PA, PMZF)
 USE MODD_DIMPHYEX,        ONLY: DIMPHYEX_t
 IMPLICIT NONE
 TYPE(DIMPHYEX_t),             INTENT(IN)  :: D
-REAL, DIMENSION(D%NIT,D%NKT), INTENT(IN)  :: PA     ! variable at flux side
-REAL, DIMENSION(D%NIT,D%NKT), INTENT(OUT) :: PMZF   ! result at mass
+REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN)  :: PA     ! variable at flux side
+REAL, DIMENSION(D%NIJT,D%NKT), INTENT(OUT) :: PMZF   ! result at mass
                                                  ! localization
 END SUBROUTINE MZF_MF
 !
@@ -39,17 +39,17 @@ SUBROUTINE MZM_MF(D, PA, PMZM)
 USE MODD_DIMPHYEX,        ONLY: DIMPHYEX_t
 IMPLICIT NONE
 TYPE(DIMPHYEX_t),             INTENT(IN)  :: D
-REAL, DIMENSION(D%NIT,D%NKT), INTENT(IN)  :: PA     ! variable at mass localization
-REAL, DIMENSION(D%NIT,D%NKT), INTENT(OUT) :: PMZM   ! result at flux localization
+REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN)  :: PA     ! variable at mass localization
+REAL, DIMENSION(D%NIJT,D%NKT), INTENT(OUT) :: PMZM   ! result at flux localization
 END SUBROUTINE MZM_MF
 !
 SUBROUTINE GZ_M_W_MF(D, PY, PDZZ, PGZ_M_W)
 USE MODD_DIMPHYEX,        ONLY: DIMPHYEX_t
 IMPLICIT NONE
 TYPE(DIMPHYEX_t),             INTENT(IN)  :: D
-REAL, DIMENSION(D%NIT,D%NKT), INTENT(IN)  :: PDZZ ! Metric coefficient d*zz
-REAL, DIMENSION(D%NIT,D%NKT), INTENT(IN)  :: PY   ! variable at mass localization
-REAL, DIMENSION(D%NIT,D%NKT), INTENT(OUT) :: PGZ_M_W  ! result at flux side
+REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN)  :: PDZZ ! Metric coefficient d*zz
+REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN)  :: PY   ! variable at mass localization
+REAL, DIMENSION(D%NIJT,D%NKT), INTENT(OUT) :: PGZ_M_W  ! result at flux side
 END SUBROUTINE GZ_M_W_MF
 !
 END INTERFACE
@@ -110,14 +110,14 @@ IMPLICIT NONE
 !              ------------------------------------
 !
 TYPE(DIMPHYEX_t),             INTENT(IN)  :: D
-REAL, DIMENSION(D%NIT,D%NKT), INTENT(IN)  :: PA     ! variable at flux side
-REAL, DIMENSION(D%NIT,D%NKT), INTENT(OUT) :: PMZF   ! result at mass
+REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN)  :: PA     ! variable at flux side
+REAL, DIMENSION(D%NIJT,D%NKT), INTENT(OUT) :: PMZF   ! result at mass
                                                  ! localization
 !
 !*       0.2   Declarations of local variables
 !              -------------------------------
 !
-INTEGER :: JK             ! Loop index in z direction
+INTEGER :: JK, JI
 !
 !
 !-------------------------------------------------------------------------------
@@ -126,10 +126,14 @@ INTEGER :: JK             ! Loop index in z direction
 !              ------------------
 !
 DO JK=2,D%NKT-1
-  PMZF(:,JK) = 0.5*( PA(:,JK)+PA(:,JK+D%NKL) )
+  !$mnh_expand_array(JI=D%NIJB:D%NIJE)
+  PMZF(D%NIJB:D%NIJE,JK) = 0.5*( PA(D%NIJB:D%NIJE,JK)+PA(D%NIJB:D%NIJE,JK+D%NKL) )
+  !$mnh_end_expand_array(JI=D%NIJB:D%NIJE)
 END DO
-PMZF(:,D%NKA) = 0.5*( PA(:,D%NKA)+PA(:,D%NKA+D%NKL) )
-PMZF(:,D%NKU) = PA(:,D%NKU)
+!$mnh_expand_array(JI=D%NIJB:D%NIJE)
+PMZF(D%NIJB:D%NIJE,D%NKA) = 0.5*( PA(D%NIJB:D%NIJE,D%NKA)+PA(D%NIJB:D%NIJE,D%NKA+D%NKL) )
+PMZF(D%NIJB:D%NIJE,D%NKU) = PA(D%NIJB:D%NIJE,D%NKU)
+!$mnh_end_expand_array(JI=D%NIJB:D%NIJE)
 !
 !-------------------------------------------------------------------------------
 !
@@ -188,13 +192,13 @@ IMPLICIT NONE
 !              ------------------------------------
 !
 TYPE(DIMPHYEX_t),             INTENT(IN)  :: D
-REAL, DIMENSION(D%NIT,D%NKT), INTENT(IN)  :: PA     ! variable at mass localization
-REAL, DIMENSION(D%NIT,D%NKT), INTENT(OUT) :: PMZM   ! result at flux localization
+REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN)  :: PA     ! variable at mass localization
+REAL, DIMENSION(D%NIJT,D%NKT), INTENT(OUT) :: PMZM   ! result at flux localization
 !
 !*       0.2   Declarations of local variables
 !              -------------------------------
 !
-INTEGER :: JK             ! Loop index in z direction
+INTEGER :: JK, JI
 !
 !
 !-------------------------------------------------------------------------------
@@ -203,10 +207,14 @@ INTEGER :: JK             ! Loop index in z direction
 !              ------------------
 !
 DO JK=2,D%NKT-1
-  PMZM(:,JK) = 0.5*( PA(:,JK)+PA(:,JK-D%NKL) )
+  !$mnh_expand_array(JI=D%NIJB:D%NIJE)
+  PMZM(D%NIJB:D%NIJE,JK) = 0.5*( PA(D%NIJB:D%NIJE,JK)+PA(D%NIJB:D%NIJE,JK-D%NKL) )
+  !$mnh_end_expand_array(JI=D%NIJB:D%NIJE)
 END DO
-PMZM(:,D%NKA) = PA(:,D%NKA)
-PMZM(:,D%NKU) = 0.5*( PA(:,D%NKU)+PA(:,D%NKU-D%NKL) )
+!$mnh_expand_array(JI=D%NIJB:D%NIJE)
+PMZM(D%NIJB:D%NIJE,D%NKA) = PA(D%NIJB:D%NIJE,D%NKA)
+PMZM(D%NIJB:D%NIJE,D%NKU) = 0.5*( PA(D%NIJB:D%NIJE,D%NKU)+PA(D%NIJB:D%NIJE,D%NKU-D%NKL) )
+!$mnh_end_expand_array(JI=D%NIJB:D%NIJE)
 !
 !-------------------------------------------------------------------------------
 !
@@ -265,14 +273,14 @@ IMPLICIT NONE
 !              ------------------------------------
 !
 TYPE(DIMPHYEX_t),             INTENT(IN)  :: D
-REAL, DIMENSION(D%NIT,D%NKT), INTENT(IN)  :: PA     ! variable at flux side
-REAL, DIMENSION(D%NIT,D%NKT), INTENT(OUT) :: PDZF   ! result at mass
+REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN)  :: PA     ! variable at flux side
+REAL, DIMENSION(D%NIJT,D%NKT), INTENT(OUT) :: PDZF   ! result at mass
                                                  ! localization
 !
 !*       0.2   Declarations of local variables
 !              -------------------------------
 !
-INTEGER :: JK           ! Loop index in z direction
+INTEGER :: JK, JI
 !
 !-------------------------------------------------------------------------------
 !
@@ -280,10 +288,14 @@ INTEGER :: JK           ! Loop index in z direction
 !              ------------------
 !
 DO JK=2,D%NKT-1
-  PDZF(:,JK) = PA(:,JK+D%NKL) - PA(:,JK)
+  !$mnh_expand_array(JI=D%NIJB:D%NIJE)
+  PDZF(D%NIJB:D%NIJE,JK) = PA(D%NIJB:D%NIJE,JK+D%NKL) - PA(D%NIJB:D%NIJE,JK)
+  !$mnh_end_expand_array(JI=D%NIJB:D%NIJE)
 END DO
-PDZF(:,D%NKA) = PA(:,D%NKA+D%NKL) - PA(:,D%NKA)
-PDZF(:,D%NKU) = 0.
+!$mnh_expand_array(JI=D%NIJB:D%NIJE)
+PDZF(D%NIJB:D%NIJE,D%NKA) = PA(D%NIJB:D%NIJE,D%NKA+D%NKL) - PA(D%NIJB:D%NIJE,D%NKA)
+PDZF(D%NIJB:D%NIJE,D%NKU) = 0.
+!$mnh_end_expand_array(JI=D%NIJB:D%NIJE)
 !
 !-------------------------------------------------------------------------------
 !
@@ -342,14 +354,14 @@ IMPLICIT NONE
 !              ------------------------------------
 !
 TYPE(DIMPHYEX_t),             INTENT(IN)  :: D
-REAL, DIMENSION(D%NIT,D%NKT), INTENT(IN)  :: PA     ! variable at mass localization
-REAL, DIMENSION(D%NIT,D%NKT), INTENT(OUT) :: PDZM   ! result at flux
+REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN)  :: PA     ! variable at mass localization
+REAL, DIMENSION(D%NIJT,D%NKT), INTENT(OUT) :: PDZM   ! result at flux
                                                  ! side
 !
 !*       0.2   Declarations of local variables
 !              -------------------------------
 !
-INTEGER :: JK            ! Loop index in z direction
+INTEGER :: JK, JI
 !
 !-------------------------------------------------------------------------------
 !
@@ -357,10 +369,14 @@ INTEGER :: JK            ! Loop index in z direction
 !              ------------------
 !
 DO JK=2,D%NKT-1
-  PDZM(:,JK) = PA(:,JK) - PA(:,JK-D%NKL)
+  !$mnh_expand_array(JI=D%NIJB:D%NIJE)
+  PDZM(D%NIJB:D%NIJE,JK) = PA(D%NIJB:D%NIJE,JK) - PA(D%NIJB:D%NIJE,JK-D%NKL)
+  !$mnh_end_expand_array(JI=D%NIJB:D%NIJE)
 END DO
-PDZM(:,D%NKA) = 0.
-PDZM(:,D%NKU) = PA(:,D%NKU) - PA(:,D%NKU-D%NKL)
+!$mnh_expand_array(JI=D%NIJB:D%NIJE)
+PDZM(D%NIJB:D%NIJE,D%NKA) = 0.
+PDZM(D%NIJB:D%NIJE,D%NKU) = PA(D%NIJB:D%NIJE,D%NKU) - PA(D%NIJB:D%NIJE,D%NKU-D%NKL)
+!$mnh_end_expand_array(JI=D%NIJB:D%NIJE)
 !
 !-------------------------------------------------------------------------------
 !
@@ -420,24 +436,28 @@ IMPLICIT NONE
 !              ------------------------------------
 !
 TYPE(DIMPHYEX_t),             INTENT(IN)  :: D
-REAL, DIMENSION(D%NIT,D%NKT), INTENT(IN)  :: PDZZ ! Metric coefficient d*zz
-REAL, DIMENSION(D%NIT,D%NKT), INTENT(IN)  :: PY   ! variable at mass localization
-REAL, DIMENSION(D%NIT,D%NKT), INTENT(OUT) :: PGZ_M_W  ! result at flux side
+REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN)  :: PDZZ ! Metric coefficient d*zz
+REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN)  :: PY   ! variable at mass localization
+REAL, DIMENSION(D%NIJT,D%NKT), INTENT(OUT) :: PGZ_M_W  ! result at flux side
 !
 !*       0.2   Declarations of local variables
 !              -------------------------------
 !
-INTEGER  JK
+INTEGER  JK, JI
 !-------------------------------------------------------------------------------
 !
 !*       1.    COMPUTE THE GRADIENT ALONG Z
 !              -----------------------------
 !
 DO JK=2,D%NKT-1
-  PGZ_M_W(:,JK) = (PY(:,JK) - PY(:,JK-D%NKL)) / PDZZ(:,JK)
+  !$mnh_expand_array(JI=D%NIJB:D%NIJE)
+  PGZ_M_W(D%NIJB:D%NIJE,JK) = (PY(D%NIJB:D%NIJE,JK) - PY(D%NIJB:D%NIJE,JK-D%NKL)) / PDZZ(D%NIJB:D%NIJE,JK)
+  !$mnh_end_expand_array(JI=D%NIJB:D%NIJE)
 END DO
-PGZ_M_W(:,D%NKA) = 0.
-PGZ_M_W(:,D%NKU) = (PY(:,D%NKU) - PY(:,D%NKU-D%NKL)) / PDZZ(:,D%NKU)
+!$mnh_expand_array(JI=D%NIJB:D%NIJE)
+PGZ_M_W(D%NIJB:D%NIJE,D%NKA) = 0.
+PGZ_M_W(D%NIJB:D%NIJE,D%NKU) = (PY(D%NIJB:D%NIJE,D%NKU) - PY(D%NIJB:D%NIJE,D%NKU-D%NKL)) / PDZZ(D%NIJB:D%NIJE,D%NKU)
+!$mnh_end_expand_array(JI=D%NIJB:D%NIJE)
 !
 !-------------------------------------------------------------------------------
 !
diff --git a/src/mesonh/aux/mode_fill_dimphyexn.F90 b/src/mesonh/aux/mode_fill_dimphyexn.F90
index 416d34ce3a3d4683cd03d1f595a005d8e6ea16ee..1f5cc3c3c3381f78a01fc9e4a6cc8c6e62028e83 100644
--- a/src/mesonh/aux/mode_fill_dimphyexn.F90
+++ b/src/mesonh/aux/mode_fill_dimphyexn.F90
@@ -6,7 +6,7 @@
 MODULE MODE_FILL_DIMPHYEX
 IMPLICIT NONE
 CONTAINS
-SUBROUTINE FILL_DIMPHYEX(YDDIMPHYEX, KIT, KJT, KKT, LTURB, OHPACK)
+SUBROUTINE FILL_DIMPHYEX(YDDIMPHYEX, KIT, KJT, KKT, LTURB)
 !     #########################
 !
 !!
@@ -48,38 +48,23 @@ TYPE(DIMPHYEX_t), INTENT(OUT) :: YDDIMPHYEX ! Structure to fill in
 INTEGER, INTENT(IN) :: KIT, KJT, KKT ! Array dimensions
 LOGICAL, INTENT(IN), OPTIONAL :: LTURB ! Flag to replace array dimensions I/JB and I/JE to the full array size
                                        ! needed if computation in HALO points (e.g. in turbulence)
-LOGICAL, OPTIONAL, INTENT(IN) :: OHPACK ! True to pack both horizontal dimension into a single one
 LOGICAL :: YTURB
 !
 !*       0.2  declaration of local variables
 !
 REAL(KIND=JPRB) :: ZHOOK_HANDLE
-LOGICAL :: LHPACK
 !-------------------------------------------------------------------------------
 !
 IF (LHOOK) CALL DR_HOOK('FILL_DIMPHYEX', 0, ZHOOK_HANDLE)
 !
-IF(PRESENT(OHPACK)) THEN
-  LHPACK=OHPACK
-ELSE
-  LHPACK=.FALSE.
-ENDIF
-IF(LHPACK) THEN
-  !Both horizontal dimensions are packed into a single one
-  !Computations are done on the entire array
-  YDDIMPHYEX%NIT=KIT*KJT
-  YDDIMPHYEX%NJT=1
-  YDDIMPHYEX%NIB=1
-  YDDIMPHYEX%NJB=1
-  YDDIMPHYEX%NIE=KIT*KJT
-  YDDIMPHYEX%NJE=1
-ELSE
-  !Computations are done only on the physical domain
-  YDDIMPHYEX%NIT=KIT
-  YDDIMPHYEX%NJT=KJT
-  CALL GET_INDICE_ll(YDDIMPHYEX%NIB, YDDIMPHYEX%NJB,&
-                    &YDDIMPHYEX%NIE, YDDIMPHYEX%NJE)
-ENDIF
+YDDIMPHYEX%NIT=KIT
+YDDIMPHYEX%NJT=KJT
+YDDIMPHYEX%NIJT=KIT*KJT
+CALL GET_INDICE_ll(YDDIMPHYEX%NIB, YDDIMPHYEX%NJB,&
+                  &YDDIMPHYEX%NIE, YDDIMPHYEX%NJE)
+!
+YDDIMPHYEX%NIJB=1
+YDDIMPHYEX%NIJE=KIT*KJT
 !
 YDDIMPHYEX%NKL=1
 YDDIMPHYEX%NKT=KKT
diff --git a/src/mesonh/ext/shallow_mf_pack.f90 b/src/mesonh/ext/shallow_mf_pack.f90
index 73a1810be3d509d037a26c52efe5a0157d25a465..ab426cbaadf688b3e8d2718ee5aac39259aa2fcb 100644
--- a/src/mesonh/ext/shallow_mf_pack.f90
+++ b/src/mesonh/ext/shallow_mf_pack.f90
@@ -272,7 +272,7 @@ TYPE(DIMPHYEX_t) :: YLDIMPHYEXPACK
 !------------------------------------------------------------------------
 
 !!! 1. Initialisation
-CALL FILL_DIMPHYEX(YLDIMPHYEXPACK, SIZE(PZZ,1), SIZE(PZZ,2), SIZE(PZZ,3), OHPACK=.TRUE.)
+CALL FILL_DIMPHYEX(YLDIMPHYEXPACK, SIZE(PZZ,1), SIZE(PZZ,2), SIZE(PZZ,3))
 
 ! Internal Domain
 IIU=SIZE(PTHM,1)