diff --git a/docs/TODO b/docs/TODO
index c9f936aa706ab8ae252da5d08ea182403a10b458..1cbb2622d674b3cbb3ffc02f63d5b702f344bf3f 100644
--- a/docs/TODO
+++ b/docs/TODO
@@ -59,6 +59,13 @@ Pb identifiés à corriger plus tard:
     - 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 LLMICR
     - mettre le code des interpolations linéaires et bi-linéaires dans des routines avec deux implémentations: avec et sans packing
+  - shuman, turb, shuman_mf, apl_arome
+    - peut-on remettre à jour la partie sous le sol des variables pronostiques avant d'entrer dans EDKFi dans Méso-NH? Si oui, on devrait pouvoir
+      récrire les shuman_mf pour qu'ils produisent les mêmes résultats qu'aujourd'hui mais sans utiliser les valeurs sous le sol ou dans "l'espace infini"
+    - si les shuman_mf sont récrits, on doit pouvoir limiter les calculs à NKTB:NKTE dans EDKF (gain de temps calcul sur Méso-NH)
+    - ces nouveaux shuman_mf (renommés phy) pourrait (?) être utilisés dans la turbulence => une seule version de shuman pour toute la physique
+    - après ce travail, il serait possible de réétudier la possibilité de limiter les calculs dans la turb à NKTB:NKTE
+    - ce qui permettrait de supprimer les variables avec niveaux supplémentaires dans apl_arome
 
 Nettoyage ultérieur :
 - Budgets/LES
diff --git a/src/common/turb/mode_compute_bl89_ml.F90 b/src/common/turb/mode_compute_bl89_ml.F90
index 75b7dd18543d85b62dce489ef17d79ffe8eb4b8e..714e9a41c0bc6c615bdc99995ab18a1ef9a44471 100644
--- a/src/common/turb/mode_compute_bl89_ml.F90
+++ b/src/common/turb/mode_compute_bl89_ml.F90
@@ -91,11 +91,11 @@ IF (LHOOK) CALL DR_HOOK('COMPUTE_BL89_ML',0,ZHOOK_HANDLE)
 !
 CALL DZM_MF(D, PVPT(:,:), ZDELTVPT(:,:))
 ZDELTVPT(D%NIJB:D%NIJE,D%NKA)=0.
-!$mnh_expand_where(JI=D%NIJB:D%NIJE,JK=D%NKTB:D%NKTE)
-WHERE (ABS(ZDELTVPT(D%NIJB:D%NIJE,:))<CSTURB%XLINF)
-  ZDELTVPT(D%NIJB:D%NIJE,:)=CSTURB%XLINF
+!$mnh_expand_where(JI=D%NIJB:D%NIJE,JK=1:D%NKT)
+WHERE (ABS(ZDELTVPT(D%NIJB:D%NIJE,1:D%NKT))<CSTURB%XLINF)
+  ZDELTVPT(D%NIJB:D%NIJE,1:D%NKT)=CSTURB%XLINF
 END WHERE
-!$mnh_end_expand_where(JI=D%NIJB:D%NIJE,JK=D%NKTB:D%NKTE)
+!$mnh_end_expand_where(JI=D%NIJB:D%NIJE,JK=1:D%NKT)
 !
 CALL MZM_MF(D, PVPT(:,:), ZHLVPT(:,:))
 !
diff --git a/src/common/turb/mode_compute_mf_cloud_bigaus.F90 b/src/common/turb/mode_compute_mf_cloud_bigaus.F90
index b4153303b6e97173d96266d934d47dcacc7389b1..9117475143f5f7e09bdcdcda2ae065b4b9225b81 100644
--- a/src/common/turb/mode_compute_mf_cloud_bigaus.F90
+++ b/src/common/turb/mode_compute_mf_cloud_bigaus.F90
@@ -160,31 +160,33 @@ DO JK=D%NKA,D%NKU,D%NKL
                (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%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)
+!$mnh_expand_array(JI=D%NIJB:D%NIJE,JK=1:D%NKT)
+ZSIGMF(D%NIJB:D%NIJE,1:D%NKT)=SQRT(MAX(ABS(ZSIGMF(D%NIJB:D%NIJE,1:D%NKT)), 1.E-40))
+!$mnh_end_expand_array(JI=D%NIJB:D%NIJE,JK=1:D%NKT)
 !
 !*      2. PDF integration
 !          ------------------------------------------------
 !
-!$mnh_expand_array(JI=D%NIJB:D%NIJE,JK=D%NKTB:D%NKTE)
+!$mnh_expand_array(JI=D%NIJB:D%NIJE,JK=1:D%NKT)
 !The mean of the distribution is ZRT_UP
 !Computation of ZA and ZGAM (=efrc(ZA)) coefficient
-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,:))
+ZA(D%NIJB:D%NIJE,1:D%NKT)=(ZRSAT_UP_M(D%NIJB:D%NIJE,1:D%NKT)-ZRT_UP_M(D%NIJB:D%NIJE,1:D%NKT))/&
+                         &(sqrt(2.)*ZSIGMF(D%NIJB:D%NIJE,1:D%NKT))
 
 !Approximation of erf function
-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))
+ZGAM(D%NIJB:D%NIJE,1:D%NKT)=1-SIGN(1., ZA(D%NIJB:D%NIJE,1:D%NKT))*SQRT(1-EXP(-4*ZA(D%NIJB:D%NIJE,1:D%NKT)**2/CST%XPI))
 
 !computation of cloud fraction
-PCF_MF(D%NIJB:D%NIJE,:)=MAX( 0., MIN(1.,0.5*ZGAM(D%NIJB:D%NIJE,:) * ZALPHA_UP_M(D%NIJB:D%NIJE,:)))
+PCF_MF(D%NIJB:D%NIJE,1:D%NKT)=MAX( 0., MIN(1.,0.5*ZGAM(D%NIJB:D%NIJE,1:D%NKT) * ZALPHA_UP_M(D%NIJB:D%NIJE,1:D%NKT)))
 
 !computation of condensate, then PRC and PRI
-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)
+ZCOND(D%NIJB:D%NIJE,1:D%NKT)=(EXP(-ZA(D%NIJB:D%NIJE,1:D%NKT)**2)-&
+                             &ZA(D%NIJB:D%NIJE,1:D%NKT)*SQRT(CST%XPI)*ZGAM(D%NIJB:D%NIJE,1:D%NKT))* &
+                    &ZSIGMF(D%NIJB:D%NIJE,1:D%NKT)/SQRT(2.*CST%XPI) * ZALPHA_UP_M(D%NIJB:D%NIJE,1:D%NKT)
+ZCOND(D%NIJB:D%NIJE,1:D%NKT)=MAX(ZCOND(D%NIJB:D%NIJE,1:D%NKT), 0.) !due to approximation of ZGAM value, ZCOND could be slightly negative
+PRC_MF(D%NIJB:D%NIJE,1:D%NKT)=(1.-ZFRAC_ICE_UP_M(D%NIJB:D%NIJE,1:D%NKT)) * ZCOND(D%NIJB:D%NIJE,1:D%NKT)
+PRI_MF(D%NIJB:D%NIJE,1:D%NKT)=(   ZFRAC_ICE_UP_M(D%NIJB:D%NIJE,1:D%NKT)) * ZCOND(D%NIJB:D%NIJE,1:D%NKT)
+!$mnh_end_expand_array(JI=D%NIJB:D%NIJE,JK=1:D%NKT)
 !
 IF (LHOOK) CALL DR_HOOK('COMPUTE_MF_CLOUD_BIGAUS',1,ZHOOK_HANDLE)
 
diff --git a/src/common/turb/mode_compute_mf_cloud_stat.F90 b/src/common/turb/mode_compute_mf_cloud_stat.F90
index 7fff7687a1ffbc2172dd84938b69c3a611e66b39..81cdabbb396eff7fb774a1e4dcb939645cdb7ec6 100644
--- a/src/common/turb/mode_compute_mf_cloud_stat.F90
+++ b/src/common/turb/mode_compute_mf_cloud_stat.F90
@@ -124,27 +124,27 @@ IF (KRRL > 0)  THEN
     CALL MZM_MF(D, PTHLM(:,:), ZFLXZ(:,:))
     CALL GZ_M_W_MF(D, PTHLM(:,:), PDZZ(:,:), ZWK(:,:))
     IF (OSTATNW) THEN
-      !$mnh_expand_array(JI=D%NIJB:D%NIJE,JK=D%NKTB:D%NKTE)
-      ZFLXZ(D%NIJB:D%NIJE,:) = -2 * CSTURB%XCTV* PARAMMF%XTAUSIGMF * PEMF(D%NIJB:D%NIJE,:)* &
-                           & (PTHL_UP(D%NIJB:D%NIJE,:)-ZFLXZ(D%NIJB:D%NIJE,:)) * ZWK(D%NIJB:D%NIJE,:)
-      !$mnh_end_expand_array(JI=D%NIJB:D%NIJE,JK=D%NKTB:D%NKTE)
+      !$mnh_expand_array(JI=D%NIJB:D%NIJE,JK=1:D%NKT)
+      ZFLXZ(D%NIJB:D%NIJE,1:D%NKT) = -2 * CSTURB%XCTV* PARAMMF%XTAUSIGMF * PEMF(D%NIJB:D%NIJE,1:D%NKT)* &
+                           & (PTHL_UP(D%NIJB:D%NIJE,1:D%NKT)-ZFLXZ(D%NIJB:D%NIJE,1:D%NKT)) * ZWK(D%NIJB:D%NIJE,1:D%NKT)
+      !$mnh_end_expand_array(JI=D%NIJB:D%NIJE,JK=1:D%NKT)
     ELSE
-      !$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,:)
-      !$mnh_end_expand_array(JI=D%NIJB:D%NIJE,JK=D%NKTB:D%NKTE)
+      !$mnh_expand_array(JI=D%NIJB:D%NIJE,JK=1:D%NKT)
+      ZFLXZ(D%NIJB:D%NIJE,1:D%NKT) = -2 * PARAMMF%XTAUSIGMF * PEMF(D%NIJB:D%NIJE,1:D%NKT)* &
+                           & (PTHL_UP(D%NIJB:D%NIJE,1:D%NKT)-ZFLXZ(D%NIJB:D%NIJE,1:D%NKT)) * ZWK(D%NIJB:D%NIJE,1:D%NKT)
+      !$mnh_end_expand_array(JI=D%NIJB:D%NIJE,JK=1:D%NKT)
     END IF
     !
     !   Avoid negative values
-    !$mnh_expand_array(JI=D%NIJB:D%NIJE,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)
+    !$mnh_expand_array(JI=D%NIJB:D%NIJE,JK=1:D%NKT)
+    ZFLXZ(D%NIJB:D%NIJE,1:D%NKT) = MAX(0.,ZFLXZ(D%NIJB:D%NIJE,1:D%NKT))
+    !$mnh_end_expand_array(JI=D%NIJB:D%NIJE,JK=1:D%NKT)
 
 
     CALL MZF_MF(D, ZFLXZ(:,:), PSIGMF(:,:))
-    !$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)
+    !$mnh_expand_array(JI=D%NIJB:D%NIJE,JK=1:D%NKT)
+    PSIGMF(D%NIJB:D%NIJE,1:D%NKT) = PSIGMF(D%NIJB:D%NIJE,1:D%NKT) * ZATHETA(D%NIJB:D%NIJE,1:D%NKT)**2
+    !$mnh_end_expand_array(JI=D%NIJB:D%NIJE,JK=1:D%NKT)
 
 !
 !
@@ -156,49 +156,50 @@ IF (KRRL > 0)  THEN
     CALL MZM_MF(D, PRTM(:,:), ZFLXZ2(:,:))
     CALL GZ_M_W_MF(D, PRTM(:,:), PDZZ(:,:), ZWK2(:,:))
     IF (OSTATNW) THEN
-      !$mnh_expand_array(JI=D%NIJB:D%NIJE,JK=D%NKTB:D%NKTE)
-      ZFLXZ2(D%NIJB:D%NIJE,:) = -2 * CSTURB%XCTV * PARAMMF%XTAUSIGMF * PEMF(D%NIJB:D%NIJE,:)* &
-                           & (PRT_UP(D%NIJB:D%NIJE,:)-ZFLXZ2(D%NIJB:D%NIJE,:)) * ZWK2(D%NIJB:D%NIJE,:)
-      !$mnh_end_expand_array(JI=D%NIJB:D%NIJE,JK=D%NKTB:D%NKTE)
+      !$mnh_expand_array(JI=D%NIJB:D%NIJE,JK=1:D%NKT)
+      ZFLXZ2(D%NIJB:D%NIJE,1:D%NKT) = -2 * CSTURB%XCTV * PARAMMF%XTAUSIGMF * PEMF(D%NIJB:D%NIJE,1:D%NKT)* &
+                           & (PRT_UP(D%NIJB:D%NIJE,1:D%NKT)-ZFLXZ2(D%NIJB:D%NIJE,1:D%NKT)) * ZWK2(D%NIJB:D%NIJE,1:D%NKT)
+      !$mnh_end_expand_array(JI=D%NIJB:D%NIJE,JK=1:D%NKT)
     ELSE
-      !$mnh_expand_array(JI=D%NIJB:D%NIJE,JK=D%NKTB:D%NKTE)
-      ZFLXZ2(D%NIJB:D%NIJE,:) = -2 * PARAMMF%XTAUSIGMF * PEMF(D%NIJB:D%NIJE,:)* &
-                           & (PRT_UP(D%NIJB:D%NIJE,:)-ZFLXZ2(D%NIJB:D%NIJE,:)) * ZWK2(D%NIJB:D%NIJE,:) 
-      !$mnh_end_expand_array(JI=D%NIJB:D%NIJE,JK=D%NKTB:D%NKTE)
+      !$mnh_expand_array(JI=D%NIJB:D%NIJE,JK=1:D%NKT)
+      ZFLXZ2(D%NIJB:D%NIJE,1:D%NKT) = -2 * PARAMMF%XTAUSIGMF * PEMF(D%NIJB:D%NIJE,1:D%NKT)* &
+                           & (PRT_UP(D%NIJB:D%NIJE,1:D%NKT)-ZFLXZ2(D%NIJB:D%NIJE,1:D%NKT)) * ZWK2(D%NIJB:D%NIJE,1:D%NKT) 
+      !$mnh_end_expand_array(JI=D%NIJB:D%NIJE,JK=1:D%NKT)
     END IF
     !
     !   Avoid negative values
-    !$mnh_expand_array(JI=D%NIJB:D%NIJE,JK=D%NKTB:D%NKTE)
-    ZFLXZ2(D%NIJB:D%NIJE,:) = MAX(0.,ZFLXZ2(D%NIJB:D%NIJE,:))
-    !$mnh_end_expand_array(JI=D%NIJB:D%NIJE,JK=D%NKTB:D%NKTE)
+    !$mnh_expand_array(JI=D%NIJB:D%NIJE,JK=1:D%NKT)
+    ZFLXZ2(D%NIJB:D%NIJE,1:D%NKT) = MAX(0.,ZFLXZ2(D%NIJB:D%NIJE,1:D%NKT))
+    !$mnh_end_expand_array(JI=D%NIJB:D%NIJE,JK=1:D%NKT)
 
     CALL MZF_MF(D, ZFLXZ2(:,:), ZWK2(:,:))
-    !$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 * ZWK2(D%NIJB:D%NIJE,:)
-    !$mnh_end_expand_array(JI=D%NIJB:D%NIJE,JK=D%NKTB:D%NKTE)
+    !$mnh_expand_array(JI=D%NIJB:D%NIJE,JK=1:D%NKT)
+    PSIGMF(D%NIJB:D%NIJE,1:D%NKT) = PSIGMF(D%NIJB:D%NIJE,1:D%NKT) + ZAMOIST(D%NIJB:D%NIJE,1:D%NKT) **2 *ZWK2(D%NIJB:D%NIJE,1:D%NKT)
+    !$mnh_end_expand_array(JI=D%NIJB:D%NIJE,JK=1:D%NKT)
     IF (OSTATNW) THEN
       !wc Now including convection covariance contribution in case of OSTATNW=TRUE
       !
       !       1.2.2 contribution from <Rnp Thl>
-      !$mnh_expand_array(JI=D%NIJB:D%NIJE,JK=D%NKTB:D%NKTE)
-      ZFLXZ3(D%NIJB:D%NIJE,:) = - CSTURB%XCTV * PARAMMF%XTAUSIGMF * &
-                    (PEMF(D%NIJB:D%NIJE,:)*(PRT_UP(D%NIJB:D%NIJE,:)-ZFLXZ2(D%NIJB:D%NIJE,:)) * &
-                                   ZWK(D%NIJB:D%NIJE,:) + &
-                                   PEMF(D%NIJB:D%NIJE,:)*(PTHL_UP(D%NIJB:D%NIJE,:)-ZFLXZ(D%NIJB:D%NIJE,:)) * &
-                                   ZWK2(D%NIJB:D%NIJE,:))
-      !$mnh_end_expand_array(JI=D%NIJB:D%NIJE,JK=D%NKTB:D%NKTE)
+      !$mnh_expand_array(JI=D%NIJB:D%NIJE,JK=1:D%NKT)
+      ZFLXZ3(D%NIJB:D%NIJE,1:D%NKT) = - CSTURB%XCTV * PARAMMF%XTAUSIGMF * &
+                    (PEMF(D%NIJB:D%NIJE,1:D%NKT)*(PRT_UP(D%NIJB:D%NIJE,1:D%NKT)-ZFLXZ2(D%NIJB:D%NIJE,1:D%NKT)) * &
+                                   ZWK(D%NIJB:D%NIJE,1:D%NKT) + &
+                                   PEMF(D%NIJB:D%NIJE,1:D%NKT)*(PTHL_UP(D%NIJB:D%NIJE,1:D%NKT)-ZFLXZ(D%NIJB:D%NIJE,1:D%NKT)) * &
+                                   ZWK2(D%NIJB:D%NIJE,1:D%NKT))
+      !$mnh_end_expand_array(JI=D%NIJB:D%NIJE,JK=1:D%NKT)
       CALL MZF_MF(D, ZFLXZ3, ZFLXZ)
-      !$mnh_expand_array(JI=D%NIJB:D%NIJE,JK=D%NKTB:D%NKTE)
-      PSIGMF(D%NIJB:D%NIJE,:) = PSIGMF(D%NIJB:D%NIJE,:) - &
-                                MIN(0.,2.*ZAMOIST(D%NIJB:D%NIJE,:)*ZATHETA(D%NIJB:D%NIJE,:)*ZFLXZ(D%NIJB:D%NIJE,:))
-      !$mnh_end_expand_array(JI=D%NIJB:D%NIJE,JK=D%NKTB:D%NKTE)
+      !$mnh_expand_array(JI=D%NIJB:D%NIJE,JK=1:D%NKT)
+      PSIGMF(D%NIJB:D%NIJE,1:D%NKT) = PSIGMF(D%NIJB:D%NIJE,1:D%NKT) - &
+                                MIN(0.,2.*ZAMOIST(D%NIJB:D%NIJE,1:D%NKT)*ZATHETA(D%NIJB:D%NIJE,1:D%NKT)*&
+                                      &ZFLXZ(D%NIJB:D%NIJE,1:D%NKT))
+      !$mnh_end_expand_array(JI=D%NIJB:D%NIJE,JK=1:D%NKT)
     ENDIF
 !
 !        1.3  Vertical part of Sigma_s
 !
-    !$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)
+    !$mnh_expand_array(JI=D%NIJB:D%NIJE,JK=1:D%NKT)
+    PSIGMF(D%NIJB:D%NIJE,1:D%NKT) =  SQRT( MAX (PSIGMF(D%NIJB:D%NIJE,1:D%NKT) , 0.) )
+    !$mnh_end_expand_array(JI=D%NIJB:D%NIJE,JK=1:D%NKT)
 ELSE
   PSIGMF(:,:) = 0.
 END IF
diff --git a/src/common/turb/mode_compute_updraft.F90 b/src/common/turb/mode_compute_updraft.F90
index 8b14a7c6f9bb51b078109d746917159002da2273..baf52171f96f89a9d1977906b4664d9a5b15fa48 100644
--- a/src/common/turb/mode_compute_updraft.F90
+++ b/src/common/turb/mode_compute_updraft.F90
@@ -280,7 +280,7 @@ IF (OENTR_DETR) THEN
 
   PFRAC_ICE_UP(:,:)=0.
   !$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
+  PRSAT_UP(D%NIJB:D%NIJE,1:D%NKT)=PRVM(D%NIJB:D%NIJE,1:D%NKT) ! 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
@@ -304,13 +304,13 @@ END DO
 !                     
 !          Initialisation of updraft characteristics 
 !$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,:)
+PTHL_UP(D%NIJB:D%NIJE,1:D%NKT)=ZTHLM_F(D%NIJB:D%NIJE,1:D%NKT)
+PRT_UP(D%NIJB:D%NIJE,1:D%NKT)=ZRTM_F(D%NIJB:D%NIJE,1:D%NKT)
+PU_UP(D%NIJB:D%NIJE,1:D%NKT)=ZUM_F(D%NIJB:D%NIJE,1:D%NKT)
+PV_UP(D%NIJB:D%NIJE,1:D%NKT)=ZVM_F(D%NIJB:D%NIJE,1:D%NKT)
 !$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,:,:)
+PSV_UP(D%NIJB:D%NIJE,1:D%NKT,:)=ZSVM_F(D%NIJB:D%NIJE,1:D%NKT,:)
 !$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
@@ -330,12 +330,12 @@ IF (OENTR_DETR) THEN
 
   !$mnh_expand_array(JI=D%NIJB:D%NIJE,JK=1:D%NKT)
   ! thetav at mass and flux levels
-  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,:)))
+  ZTHVM_F(D%NIJB:D%NIJE,1:D%NKT)=ZTHM_F(D%NIJB:D%NIJE,1:D%NKT)* &
+                                    &((1.+ZRVORD*ZRVM_F(D%NIJB:D%NIJE,1:D%NKT))/(1.+ZRTM_F(D%NIJB:D%NIJE,1:D%NKT)))
+  ZTHVM(D%NIJB:D%NIJE,1:D%NKT)=PTHM(D%NIJB:D%NIJE,1:D%NKT)* &
+                                    &((1.+ZRVORD*PRVM(D%NIJB:D%NIJE,1:D%NKT))/(1.+PRTM(D%NIJB:D%NIJE,1:D%NKT)))
 
-  PTHV_UP(D%NIJB:D%NIJE,:)=ZTHVM_F(D%NIJB:D%NIJE,:)
+  PTHV_UP(D%NIJB:D%NIJE,1:D%NKT)=ZTHVM_F(D%NIJB:D%NIJE,1:D%NKT)
   !$mnh_end_expand_array(JI=D%NIJB:D%NIJE,JK=1:D%NKT)
 
   ZW_UP2(:,:)=0.
@@ -364,7 +364,7 @@ IF (OENTR_DETR) THEN
   !
 
   !$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,:)
+  ZG_O_THVREF(D%NIJB:D%NIJE,1:D%NKT)=CST%XG/ZTHVM_F(D%NIJB:D%NIJE,1:D%NKT)
   !$mnh_end_expand_array(JI=D%NIJB:D%NIJE,JK=1:D%NKT)
 
   ! compute L_up
@@ -379,7 +379,7 @@ IF (OENTR_DETR) THEN
     CALL GZ_M_W_MF(D, PVM, PDZZ, ZWK)
     CALL MZF_MF(D, ZWK, ZDVDZ)
     !$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)
+    ZSHEAR(D%NIJB:D%NIJE,1:D%NKT) = SQRT(ZDUDZ(D%NIJB:D%NIJE,1:D%NKT)**2 + ZDVDZ(D%NIJB:D%NIJE,1:D%NKT)**2)
     !$mnh_end_expand_array(JI=D%NIJB:D%NIJE,JK=1:D%NKT)
   ELSE
     ZSHEAR = 0. !no shear in bl89 mixing length
@@ -657,7 +657,7 @@ ENDDO
 IF(OENTR_DETR) THEN
 
   !$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,:))
+  PW_UP(D%NIJB:D%NIJE,1:D%NKT)=SQRT(ZW_UP2(D%NIJB:D%NIJE,1:D%NKT))
   !$mnh_end_expand_array(JI=D%NIJB:D%NIJE,JK=1:D%NKT)
 
   !$mnh_expand_array(JI=D%NIJB:D%NIJE)
@@ -685,9 +685,9 @@ IF(OENTR_DETR) THEN
     !$mnh_end_expand_array(JI=D%NIJB:D%NIJE)
   ENDDO
   !$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,:)
+  WHERE (GWORK2(D%NIJB:D%NIJE,1:D%NKT)) 
+    PEMF(D%NIJB:D%NIJE,1:D%NKT)     = PEMF(D%NIJB:D%NIJE,1:D%NKT)     * ZCOEF(D%NIJB:D%NIJE,1:D%NKT)
+    PFRAC_UP(D%NIJB:D%NIJE,1:D%NKT) = PFRAC_UP(D%NIJB:D%NIJE,1:D%NKT) * ZCOEF(D%NIJB:D%NIJE,1:D%NKT)
   ENDWHERE
   !$mnh_end_expand_where(JI=D%NIJB:D%NIJE,JK=1:D%NKT)
 ENDIF
diff --git a/src/common/turb/mode_compute_updraft_raha.F90 b/src/common/turb/mode_compute_updraft_raha.F90
index 8a4705cb429aa690964be656eabca7ceb36ae678..d27917446ff250e9f940f118016fd8aa5b7d1606 100644
--- a/src/common/turb/mode_compute_updraft_raha.F90
+++ b/src/common/turb/mode_compute_updraft_raha.F90
@@ -237,7 +237,7 @@ ZBUO(:,:)      =0.
 PRI_UP(:,:)=0.
 PFRAC_ICE_UP(:,:)=0.
 !$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
+PRSAT_UP(D%NIJB:D%NIJE,1:D%NKT)=PRVM(D%NIJB:D%NIJE,1:D%NKT) ! 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
@@ -257,10 +257,10 @@ CALL MZM_MF(D, PTKEM(:,:), ZTKEM_F(:,:))
 
 !          Initialisation of updraft characteristics 
 !$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,:)
+PTHL_UP(D%NIJB:D%NIJE,1:D%NKT)=ZTHLM_F(D%NIJB:D%NIJE,1:D%NKT)
+PRT_UP(D%NIJB:D%NIJE,1:D%NKT)=ZRTM_F(D%NIJB:D%NIJE,1:D%NKT)
+PU_UP(D%NIJB:D%NIJE,1:D%NKT)=ZUM_F(D%NIJB:D%NIJE,1:D%NKT)
+PV_UP(D%NIJB:D%NIJE,1:D%NKT)=ZVM_F(D%NIJB:D%NIJE,1:D%NKT)
 !$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
@@ -287,11 +287,12 @@ CALL MZM_MF(D, PRVM(:,:), ZRVM_F(:,:))
 
 !$mnh_expand_array(JI=D%NIJB:D%NIJE,JK=1:D%NKT)
 ! thetav at mass and flux levels 
-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,:)))
+ZTHVM_F(D%NIJB:D%NIJE,1:D%NKT)=ZTHM_F(D%NIJB:D%NIJE,1:D%NKT)*((1.+ZRVORD*ZRVM_F(D%NIJB:D%NIJE,1:D%NKT))/&
+                                                             &(1.+ZRTM_F(D%NIJB:D%NIJE,1:D%NKT)))
+ZTHVM(D%NIJB:D%NIJE,1:D%NKT)=PTHM(D%NIJB:D%NIJE,1:D%NKT)*((1.+ZRVORD*PRVM(D%NIJB:D%NIJE,1:D%NKT))/(1.+PRTM(D%NIJB:D%NIJE,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,:)
+PTHV_UP(D%NIJB:D%NIJE,1:D%NKT)= ZTHVM_F(D%NIJB:D%NIJE,1:D%NKT)
+PRV_UP(D%NIJB:D%NIJE,1:D%NKT) = ZRVM_F(D%NIJB:D%NIJE,1:D%NKT)
 !$mnh_end_expand_array(JI=D%NIJB:D%NIJE,JK=1:D%NKT)
 
 ZW_UP2(:,:)=ZEPS
@@ -323,7 +324,7 @@ PRSAT_UP(D%NIJB:D%NIJE,D%NKB) = ZRSATW(D%NIJB:D%NIJE)*(1-PFRAC_ICE_UP(D%NIJB:D%N
 !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%NIJB:D%NIJE,JK=1:D%NKT)
-ZG_O_THVREF(D%NIJB:D%NIJE,:)=CST%XG/ZTHVM_F(D%NIJB:D%NIJE,:)
+ZG_O_THVREF(D%NIJB:D%NIJE,1:D%NKT)=CST%XG/ZTHVM_F(D%NIJB:D%NIJE,1:D%NKT)
 !$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
@@ -612,7 +613,7 @@ DO JK=D%NKB+D%NKL,D%NKE-D%NKL,D%NKL !  Vertical loop
 ENDDO
 
 !$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,:))
+PW_UP(D%NIJB:D%NIJE,1:D%NKT)=SQRT(ZW_UP2(D%NIJB:D%NIJE,1:D%NKT))
 !$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.
@@ -639,9 +640,9 @@ DO JK=1,D%NKT
   !$mnh_end_expand_array(JI=D%NIJB:D%NIJE)
 ENDDO
 !$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,:)
+WHERE (GWORK2(D%NIJB:D%NIJE,1:D%NKT)) 
+  PEMF(D%NIJB:D%NIJE,1:D%NKT)     = PEMF(D%NIJB:D%NIJE,1:D%NKT)     * ZCOEF(D%NIJB:D%NIJE,1:D%NKT)
+  PFRAC_UP(D%NIJB:D%NIJE,1:D%NKT) = PFRAC_UP(D%NIJB:D%NIJE,1:D%NKT) * ZCOEF(D%NIJB:D%NIJE,1:D%NKT)
 ENDWHERE
 !$mnh_end_expand_where(JI=D%NIJB:D%NIJE,JK=1:D%NKT)
 
diff --git a/src/common/turb/mode_compute_updraft_rhcj10.F90 b/src/common/turb/mode_compute_updraft_rhcj10.F90
index 84cf4e7ebc17e54c00bb7be618b6b46bf9ed6ef1..4a293bd8d211a5af5313ef9142c9ce030975e028 100644
--- a/src/common/turb/mode_compute_updraft_rhcj10.F90
+++ b/src/common/turb/mode_compute_updraft_rhcj10.F90
@@ -243,7 +243,7 @@ ZBUO      =0.
 PRI_UP(:,:)=0.
 PFRAC_ICE_UP(:,:)=0.
 !$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
+PRSAT_UP(D%NIJB:D%NIJE,1:D%NKT)=PRVM(D%NIJB:D%NIJE,1:D%NKT) ! 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
@@ -267,12 +267,12 @@ CALL MZM_MF(D, PTKEM(:,:), ZTKEM_F(:,:))
 
 !          Initialisation of updraft characteristics 
 !$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,:)
+PTHL_UP(D%NIJB:D%NIJE,1:D%NKT)=ZTHLM_F(D%NIJB:D%NIJE,1:D%NKT)
+PRT_UP(D%NIJB:D%NIJE,1:D%NKT)=ZRTM_F(D%NIJB:D%NIJE,1:D%NKT)
+PU_UP(D%NIJB:D%NIJE,1:D%NKT)=ZUM_F(D%NIJB:D%NIJE,1:D%NKT)
+PV_UP(D%NIJB:D%NIJE,1:D%NKT)=ZVM_F(D%NIJB:D%NIJE,1:D%NKT)
 !$mnh_end_expand_array(JI=D%NIJB:D%NIJE,JK=1:D%NKT)
-PSV_UP(D%NIJB:D%NIJE,:,:)=0.
+PSV_UP(D%NIJB:D%NIJE,1:D%NKT,:)=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%NIJB:D%NIJE,:,:)=ZSVM_F(D%NIJB:D%NIJE,:,:)
@@ -303,8 +303,8 @@ DO JK=1,D%NKT
 ENDDO
 
 !$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,:)
+PTHV_UP(D%NIJB:D%NIJE,1:D%NKT)= ZTHVM_F(D%NIJB:D%NIJE,1:D%NKT)
+PRV_UP(D%NIJB:D%NIJE,1:D%NKT)= ZRVM_F(D%NIJB:D%NIJE,1:D%NKT)
 !$mnh_end_expand_array(JI=D%NIJB:D%NIJE,JK=1:D%NKT)
 
 ZW_UP2(:,:)=ZEPS
@@ -336,7 +336,7 @@ ENDDO
 !  boucle verticale, une pour w et une pour PEMF                                                            
 
 !$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,:)
+ZG_O_THVREF(D%NIJB:D%NIJE,1:D%NKT)=CST%XG/ZTHVM_F(D%NIJB:D%NIJE,1:D%NKT)
 !$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
@@ -359,7 +359,7 @@ IF(TURB%CTURBLEN=='RM17') THEN
   CALL GZ_M_W_MF(D, PVM, PDZZ, ZWK)
   CALL MZF_MF(D, ZWK, ZDVDZ)
   !$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)
+  ZSHEAR(D%NIJB:D%NIJE,1:D%NKT) = SQRT(ZDUDZ(D%NIJB:D%NIJE,1:D%NKT)**2 + ZDVDZ(D%NIJB:D%NIJE,1:D%NKT)**2)
   !$mnh_end_expand_array(JI=D%NIJB:D%NIJE,JK=1:D%NKT)
 ELSE
   ZSHEAR(D%NIJB:D%NIJE,:) = 0. !no shear in bl89 mixing length
@@ -613,7 +613,7 @@ DO JK=D%NKB,D%NKE-D%NKL,D%NKL
 ENDDO   ! Fin de la boucle verticale 
 
 !$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,:))
+PW_UP(D%NIJB:D%NIJE,1:D%NKT)=SQRT(ZW_UP2(D%NIJB:D%NIJE,1:D%NKT))
 !$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.
diff --git a/src/common/turb/mode_mf_turb.F90 b/src/common/turb/mode_mf_turb.F90
index 3c13c549c7911116b8adfcd53727b3930d60f4a3..8483046707840ef4e4ce2fbc0b64845c07df5b90 100644
--- a/src/common/turb/mode_mf_turb.F90
+++ b/src/common/turb/mode_mf_turb.F90
@@ -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%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)
+!$mnh_expand_array(JI=D%NIJB:D%NIJE,JK=1:D%NKT)
+PFLXZTHMF(D%NIJB:D%NIJE,1:D%NKT) = PEMF(D%NIJB:D%NIJE,1:D%NKT)*(PTHL_UP(D%NIJB:D%NIJE,1:D%NKT)-PFLXZTHMF(D%NIJB:D%NIJE,1:D%NKT))
+PFLXZRMF(D%NIJB:D%NIJE,1:D%NKT) =  PEMF(D%NIJB:D%NIJE,1:D%NKT)*(PRT_UP(D%NIJB:D%NIJE,1:D%NKT)-PFLXZRMF(D%NIJB:D%NIJE,1:D%NKT))
+PFLXZTHVMF(D%NIJB:D%NIJE,1:D%NKT) = PEMF(D%NIJB:D%NIJE,1:D%NKT)*(PTHV_UP(D%NIJB:D%NIJE,1:D%NKT)-PFLXZTHVMF(D%NIJB:D%NIJE,1:D%NKT))
+!$mnh_end_expand_array(JI=D%NIJB:D%NIJE,JK=1:D%NKT)
 
 IF (OMIXUV) THEN
   CALL MZM_MF(D, PUM(:,:), PFLXZUMF(:,:))
   CALL MZM_MF(D, PVM(:,:), PFLXZVMF(:,:))
-  !$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)
+  !$mnh_expand_array(JI=D%NIJB:D%NIJE,JK=1:D%NKT)
+  PFLXZUMF(D%NIJB:D%NIJE,1:D%NKT) =  PEMF(D%NIJB:D%NIJE,1:D%NKT)*(PU_UP(D%NIJB:D%NIJE,1:D%NKT)-PFLXZUMF(D%NIJB:D%NIJE,1:D%NKT))
+  PFLXZVMF(D%NIJB:D%NIJE,1:D%NKT) =  PEMF(D%NIJB:D%NIJE,1:D%NKT)*(PV_UP(D%NIJB:D%NIJE,1:D%NKT)-PFLXZVMF(D%NIJB:D%NIJE,1:D%NKT))
+  !$mnh_end_expand_array(JI=D%NIJB:D%NIJE,JK=1:D%NKT)
 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%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)
+!$mnh_expand_array(JI=D%NIJB:D%NIJE,JK=1:D%NKT)
+PFLXZTHMF(D%NIJB:D%NIJE,1:D%NKT) = PEMF(D%NIJB:D%NIJE,1:D%NKT)*(PTHL_UP(D%NIJB:D%NIJE,1:D%NKT)-PFLXZTHMF(D%NIJB:D%NIJE,1:D%NKT))
+PTHLDT(D%NIJB:D%NIJE,1:D%NKT)= (ZVARS(D%NIJB:D%NIJE,1:D%NKT)-PTHLM(D%NIJB:D%NIJE,1:D%NKT))/PTSTEP
+!$mnh_end_expand_array(JI=D%NIJB:D%NIJE,JK=1:D%NKT)
 
 !
 ! 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%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)
+!$mnh_expand_array(JI=D%NIJB:D%NIJE,JK=1:D%NKT)
+PFLXZRMF(D%NIJB:D%NIJE,1:D%NKT) =  PEMF(D%NIJB:D%NIJE,1:D%NKT)*(PRT_UP(D%NIJB:D%NIJE,1:D%NKT)-PFLXZRMF(D%NIJB:D%NIJE,1:D%NKT))
+PRTDT(D%NIJB:D%NIJE,1:D%NKT) = (ZVARS(D%NIJB:D%NIJE,1:D%NKT)-PRTM(D%NIJB:D%NIJE,1:D%NKT))/PTSTEP
+!$mnh_end_expand_array(JI=D%NIJB:D%NIJE,JK=1:D%NKT)
 !
 
 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%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)
+  !$mnh_expand_array(JI=D%NIJB:D%NIJE,JK=1:D%NKT)
+  PFLXZUMF(D%NIJB:D%NIJE,1:D%NKT) = PEMF(D%NIJB:D%NIJE,1:D%NKT)*(PU_UP(D%NIJB:D%NIJE,1:D%NKT)-PFLXZUMF(D%NIJB:D%NIJE,1:D%NKT))
+  PUDT(D%NIJB:D%NIJE,1:D%NKT)= (ZVARS(D%NIJB:D%NIJE,1:D%NKT)-PUM(D%NIJB:D%NIJE,1:D%NKT))/PTSTEP
+  !$mnh_end_expand_array(JI=D%NIJB:D%NIJE,JK=1:D%NKT)
   !
   !
   ! 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%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)
+  !$mnh_expand_array(JI=D%NIJB:D%NIJE,JK=1:D%NKT)
+  PFLXZVMF(D%NIJB:D%NIJE,1:D%NKT) = PEMF(D%NIJB:D%NIJE,1:D%NKT)*(PV_UP(D%NIJB:D%NIJE,1:D%NKT)-PFLXZVMF(D%NIJB:D%NIJE,1:D%NKT))
+  PVDT(D%NIJB:D%NIJE,1:D%NKT)= (ZVARS(D%NIJB:D%NIJE,1:D%NKT)-PVM(D%NIJB:D%NIJE,1:D%NKT))/PTSTEP
+  !$mnh_end_expand_array(JI=D%NIJB:D%NIJE,JK=1:D%NKT)
 ELSE
   PUDT(:,:)=0.
   PVDT(:,:)=0.
@@ -249,9 +249,10 @@ 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%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)
+  !$mnh_expand_array(JI=D%NIJB:D%NIJE,JK=1:D%NKT)
+  PFLXZSVMF(D%NIJB:D%NIJE,1:D%NKT,JSV) = PEMF(D%NIJB:D%NIJE,1:D%NKT)*&
+                                       & (PSV_UP(D%NIJB:D%NIJE,1:D%NKT,JSV)-PFLXZSVMF(D%NIJB:D%NIJE,1:D%NKT,JSV))
+  !$mnh_end_expand_array(JI=D%NIJB:D%NIJE,JK=1:D%NKT)
   !
   ! 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 +261,11 @@ 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%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)
+  !$mnh_expand_array(JI=D%NIJB:D%NIJE,JK=1:D%NKT)
+  PFLXZSVMF(D%NIJB:D%NIJE,1:D%NKT,JSV) = PEMF(D%NIJB:D%NIJE,1:D%NKT)*&
+                                       & (PSV_UP(D%NIJB:D%NIJE,1:D%NKT,JSV)-PFLXZSVMF(D%NIJB:D%NIJE,1:D%NKT,JSV))
+  PSVDT(D%NIJB:D%NIJE,1:D%NKT,JSV)= (ZVARS(D%NIJB:D%NIJE,1:D%NKT)-PSVM(D%NIJB:D%NIJE,1:D%NKT,JSV))/PTSTEP
+  !$mnh_end_expand_array(JI=D%NIJB:D%NIJE,JK=1:D%NKT)
 
 ENDDO
 !
diff --git a/src/common/turb/mode_mf_turb_expl.F90 b/src/common/turb/mode_mf_turb_expl.F90
index 6f275cf85580ce0b82ff02e66e224f25155690d9..4cb55e936222fe2497c5f34ac01a30b4c32f1a21 100644
--- a/src/common/turb/mode_mf_turb_expl.F90
+++ b/src/common/turb/mode_mf_turb_expl.F90
@@ -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%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)
+!$mnh_expand_array(JI=D%NIJB:D%NIJE,JK=1:D%NKT)
+ZQTM(D%NIJB:D%NIJE,1:D%NKT)   = ZRTM_F(D%NIJB:D%NIJE,1:D%NKT)/(1.+ZRTM_F(D%NIJB:D%NIJE,1:D%NKT))
+ZQT_UP(D%NIJB:D%NIJE,1:D%NKT) = PRT_UP(D%NIJB:D%NIJE,1:D%NKT)/(1.+PRT_UP(D%NIJB:D%NIJE,1:D%NKT))
+ZTHS_UP(D%NIJB:D%NIJE,1:D%NKT)= PTHL_UP(D%NIJB:D%NIJE,1:D%NKT)*(1.+PARAMMF%XLAMBDA_MF*ZQT_UP(D%NIJB:D%NIJE,1:D%NKT))
+ZTHSM(D%NIJB:D%NIJE,1:D%NKT)  = ZTHLM_F(D%NIJB:D%NIJE,1:D%NKT)*(1.+PARAMMF%XLAMBDA_MF*ZQTM(D%NIJB:D%NIJE,1:D%NKT))
+!$mnh_end_expand_array(JI=D%NIJB:D%NIJE,JK=1:D%NKT)
 
 CALL MZM_MF(D, PTHLM(:,:), PFLXZTHLMF(:,:))
 CALL MZM_MF(D, PRTM(:,:), PFLXZRMF(:,:))
 CALL MZM_MF(D, PTHVM(:,:), PFLXZTHVMF(:,:))
-!$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
+!$mnh_expand_array(JI=D%NIJB:D%NIJE,JK=1:D%NKT)
+PFLXZTHLMF(D%NIJB:D%NIJE,1:D%NKT)  = PEMF(D%NIJB:D%NIJE,1:D%NKT)*(PTHL_UP(D%NIJB:D%NIJE,1:D%NKT)-PFLXZTHLMF(D%NIJB:D%NIJE,1:D%NKT))  ! ThetaL
+PFLXZRMF(D%NIJB:D%NIJE,1:D%NKT)    = PEMF(D%NIJB:D%NIJE,1:D%NKT)*(PRT_UP(D%NIJB:D%NIJE,1:D%NKT)-PFLXZRMF(D%NIJB:D%NIJE,1:D%NKT))  ! Rt
+PFLXZTHVMF(D%NIJB:D%NIJE,1:D%NKT)  = PEMF(D%NIJB:D%NIJE,1:D%NKT)*(PTHV_UP(D%NIJB:D%NIJE,1:D%NKT)-PFLXZTHVMF(D%NIJB:D%NIJE,1:D%NKT))  ! ThetaV
 
-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)
+ZFLXZTHSMF(D%NIJB:D%NIJE,1:D%NKT)  = PEMF(D%NIJB:D%NIJE,1:D%NKT)*(ZTHS_UP(D%NIJB:D%NIJE,1:D%NKT)-ZTHSM(D%NIJB:D%NIJE,1:D%NKT))    ! Theta S flux
+!$mnh_end_expand_array(JI=D%NIJB:D%NIJE,JK=1:D%NKT)
 
 IF (OMIXUV) THEN
   CALL MZM_MF(D, PUM(:,:), PFLXZUMF(:,:))
   CALL MZM_MF(D, PVM(:,:), PFLXZVMF(:,:))
-  !$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)
+  !$mnh_expand_array(JI=D%NIJB:D%NIJE,JK=1:D%NKT)
+  PFLXZUMF(D%NIJB:D%NIJE,1:D%NKT) =  PEMF(D%NIJB:D%NIJE,1:D%NKT)*(PU_UP(D%NIJB:D%NIJE,1:D%NKT)-PFLXZUMF(D%NIJB:D%NIJE,1:D%NKT))  ! U
+  PFLXZVMF(D%NIJB:D%NIJE,1:D%NKT) =  PEMF(D%NIJB:D%NIJE,1:D%NKT)*(PV_UP(D%NIJB:D%NIJE,1:D%NKT)-PFLXZVMF(D%NIJB:D%NIJE,1:D%NKT))  ! V
+  !$mnh_end_expand_array(JI=D%NIJB:D%NIJE,JK=1:D%NKT)
 ELSE
   PFLXZUMF(:,:) = 0.
   PFLXZVMF(:,:) = 0.
diff --git a/src/common/turb/mode_tridiag_massflux.F90 b/src/common/turb/mode_tridiag_massflux.F90
index a52b6a92fb71d8d908d2f7ab97191af506204ae4..7f2311f9c2befec87c79cc4f255cad2bff049472 100644
--- a/src/common/turb/mode_tridiag_massflux.F90
+++ b/src/common/turb/mode_tridiag_massflux.F90
@@ -161,9 +161,9 @@ INTEGER                              :: JK, JI            ! loop counter
 REAL(KIND=JPRB) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('TRIDIAG_MASSFLUX',0,ZHOOK_HANDLE)
 CALL MZM_MF(D, PRHODJ, ZMZM_RHODJ)
-!$mnh_expand_array(JI=D%NIJB:D%NIJE,JK=D%NKTB:D%NKTE)
-ZRHODJ_DFDT_O_DZ(D%NIJB:D%NIJE,:) = ZMZM_RHODJ(D%NIJB:D%NIJE,:)*PDFDT(D%NIJB:D%NIJE,:)/PDZZ(D%NIJB:D%NIJE,:)
-!$mnh_end_expand_array(JI=D%NIJB:D%NIJE,JK=D%NKTB:D%NKTE)
+!$mnh_expand_array(JI=D%NIJB:D%NIJE,JK=1:D%NKT)
+ZRHODJ_DFDT_O_DZ(D%NIJB:D%NIJE,1:D%NKT) = ZMZM_RHODJ(D%NIJB:D%NIJE,1:D%NKT)*PDFDT(D%NIJB:D%NIJE,1:D%NKT)/PDZZ(D%NIJB:D%NIJE,1:D%NKT)
+!$mnh_end_expand_array(JI=D%NIJB:D%NIJE,JK=1:D%NKT)
 !
 ZA=0.
 ZB=0.
diff --git a/src/common/turb/shallow_mf.F90 b/src/common/turb/shallow_mf.F90
index c6cdc66aca75e32e7cc65f3d98a78aa4032baeac..1027e0cfc0b61a34a680d8b87b29dfa0b61aeb06 100644
--- a/src/common/turb/shallow_mf.F90
+++ b/src/common/turb/shallow_mf.F90
@@ -202,15 +202,15 @@ ENDIF
 ! Thermodynamics functions
 ZFRAC_ICE(:,:) = 0.
 IF (KRR.GE.4) THEN
-  !$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))
+  !$mnh_expand_where(JI=D%NIJB:D%NIJE,JK=1:D%NKT)
+  WHERE(PRM(D%NIJB:D%NIJE,1:D%NKT,2)+PRM(D%NIJB:D%NIJE,1:D%NKT,4) > 1.E-20)
+    ZFRAC_ICE(D%NIJB:D%NIJE,1:D%NKT) = PRM(D%NIJB:D%NIJE,1:D%NKT,4) / (PRM(D%NIJB:D%NIJE,1:D%NKT,2)+PRM(D%NIJB:D%NIJE,1:D%NKT,4))
   ENDWHERE
-  !$mnh_end_expand_where(JI=D%NIJB:D%NIJE,JK=D%NKTB:D%NKTE)
+  !$mnh_end_expand_where(JI=D%NIJB:D%NIJE,JK=1:D%NKT)
 ENDIF
-!$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)
+!$mnh_expand_array(JI=D%NIJB:D%NIJE,JK=1:D%NKT)
+ZWK(D%NIJB:D%NIJE,1:D%NKT)=PTHM(D%NIJB:D%NIJE,1:D%NKT)*PEXNM(D%NIJB:D%NIJE,1:D%NKT)
+!$mnh_end_expand_array(JI=D%NIJB:D%NIJE,JK=1:D%NKT)
 CALL COMPUTE_FRAC_ICE(HFRAC_ICE,NEB,ZFRAC_ICE(:,:),ZWK(:,:), IERR(:,:))
 
 ! Conservative variables at t-dt
@@ -219,9 +219,10 @@ 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%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)
+!$mnh_expand_array(JI=D%NIJB:D%NIJE,JK=1:D%NKT)
+ZTHVM(D%NIJB:D%NIJE,1:D%NKT) = PTHM(D%NIJB:D%NIJE,1:D%NKT)*&
+                             & ((1.+CST%XRV / CST%XRD *PRM(D%NIJB:D%NIJE,1:D%NKT,1))/(1.+ZRTM(D%NIJB:D%NIJE,1:D%NKT))) 
+!$mnh_end_expand_array(JI=D%NIJB:D%NIJE,JK=1:D%NKT)
 ! 
 !!! 2. Compute updraft
 !!!    ---------------
@@ -293,9 +294,9 @@ CALL COMPUTE_MF_CLOUD(D, CST, CSTURB, PARAMMF, OSTATNW, &
 !!! 3. Compute fluxes of conservative variables and their divergence = tendency
 !!!    ------------------------------------------------------------------------
 !
-!$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)
+!$mnh_expand_array(JI=D%NIJB:D%NIJE,JK=1:D%NKT)
+ZEMF_O_RHODREF(D%NIJB:D%NIJE,1:D%NKT)=PEMF(D%NIJB:D%NIJE,1:D%NKT)/PRHODREF(D%NIJB:D%NIJE,1:D%NKT)
+!$mnh_end_expand_array(JI=D%NIJB:D%NIJE,JK=1:D%NKT)
 
 IF ( PIMPL_MF > 1.E-10 ) THEN  
   CALL MF_TURB(D, KSV, OMIXUV,                     &