diff --git a/src/PHYEX/aux/gradient_m.f90 b/src/PHYEX/aux/gradient_m.f90
index feb4c58f3910be0ba2ca717db206a06efcde2316..1c46601511db0231d28dc9a567b9aff91d058907 100644
--- a/src/PHYEX/aux/gradient_m.f90
+++ b/src/PHYEX/aux/gradient_m.f90
@@ -742,8 +742,8 @@ IKT=SIZE(PY,3)
 IKTB=1+JPVEXT_TURB              
 IKTE=IKT-JPVEXT_TURB
 
-PGZ_M_W(:,:,IKTB:IKTE) =  (PY(:,:,IKTB:IKTE)-PY(:,:,IKTB-KL:IKTE-KL))  &
-                           / PDZZ(:,:,IKTB:IKTE)
+PGZ_M_W(:,:,:) =  (PY(:,:,:)-PY(:,:,IKTB-KL:IKTE-KL))  &
+                           / PDZZ(:,:,:)
 PGZ_M_W(:,:,KKU)=  (PY(:,:,KKU)-PY(:,:,KKU-KL))  &
                            / PDZZ(:,:,KKU)
 PGZ_M_W(:,:,KKA)= PGZ_M_W(:,:,KKU) ! -999.
diff --git a/src/PHYEX/aux/modd_nsv.f90 b/src/PHYEX/aux/modd_nsv.f90
index 9cfa343c413e3b78171c89590cf04432585986fc..92f94486d1a377caff8bb9be8956bf5b82f3b32d 100644
--- a/src/PHYEX/aux/modd_nsv.f90
+++ b/src/PHYEX/aux/modd_nsv.f90
@@ -1,4 +1,4 @@
-!MNH_LIC Copyright 2001-2021 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 2001-2023 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
 !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
@@ -52,6 +52,7 @@ REAL,DIMENSION(JPSVMAX) :: XSVMIN ! minimum value for SV variables
 LOGICAL :: LINI_NSV(JPMODELMAX) = .FALSE. ! becomes True when routine INI_NSV is called
 !
 CHARACTER(LEN=NMNHNAMELGTMAX), DIMENSION(:,:), ALLOCATABLE, TARGET :: CSV_CHEM_LIST_A !Names of all the chemical variables
+CHARACTER(LEN=6),              DIMENSION(:,:), ALLOCATABLE, TARGET :: CSV_A           !Names of the scalar variables
 TYPE(tfieldmetadata), DIMENSION(:,:), ALLOCATABLE, TARGET :: TSVLIST_A !Metadata of all the scalar variables
 
 INTEGER,DIMENSION(JPMODELMAX)::NSV_A = 0 ! total number of scalar variables
@@ -166,9 +167,9 @@ INTEGER,DIMENSION(JPMODELMAX)::NSV_SNWEND_A = 0 ! NSV_SNWBEG_A...NSV_SNWEND_A
 ! variables updated for the current model
 !
 CHARACTER(LEN=NMNHNAMELGTMAX), DIMENSION(:), POINTER :: CSV_CHEM_LIST !Names of all the chemical variables
-TYPE(tfieldmetadata), DIMENSION(:), POINTER :: TSVLIST !Metadata of all the scalar variables
+CHARACTER(LEN=6),              DIMENSION(:), POINTER :: CSV           !Names of the scalar variables
 
-CHARACTER(LEN=6), DIMENSION(:), ALLOCATABLE :: CSV ! name of the scalar variables
+TYPE(tfieldmetadata), DIMENSION(:), POINTER :: TSVLIST !Metadata of all the scalar variables
 
 INTEGER :: NSV         = 0 ! total number of user scalar variables
 !
diff --git a/src/PHYEX/aux/mode_gradient_m_phy.f90 b/src/PHYEX/aux/mode_gradient_m_phy.f90
index 6f3c34f01c872849d90154f8b73a90b649854bd3..de27a253baa2139a0f9b9a6aba94d87b6e71b390 100644
--- a/src/PHYEX/aux/mode_gradient_m_phy.f90
+++ b/src/PHYEX/aux/mode_gradient_m_phy.f90
@@ -212,17 +212,17 @@ IF (.NOT. OFLAT) THEN
   CALL DZM_PHY(D,PA,ZWORK3)
   CALL MXF_PHY(D,PDZX,ZWORK4)
   !$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:IKT)    
-  ZWORK5(IIB:IIE,IJB:IJE,1:IKT) = ZWORK3(IIB:IIE,IJB:IJE,1:IKT) * ZWORK4(IIB:IIE,IJB:IJE,1:IKT) &
-                                    / PDZZ(IIB:IIE,IJB:IJE,1:IKT)
+  ZWORK5(IIB:IIE,IJB:IJE,:) = ZWORK3(IIB:IIE,IJB:IJE,:) * ZWORK4(IIB:IIE,IJB:IJE,:) &
+                                    / PDZZ(IIB:IIE,IJB:IJE,:)
   !$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:IKT)    
   CALL MZF_PHY(D,ZWORK5,ZWORK6)
   !$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:IKT)    
-  PGX_M_M(IIB:IIE,IJB:IJE,1:IKT)= (ZWORK2(IIB:IIE,IJB:IJE,1:IKT) - ZWORK6(IIB:IIE,IJB:IJE,1:IKT)) &
-                                    / ZMXF_PDXX(IIB:IIE,IJB:IJE,1:IKT)
+  PGX_M_M(IIB:IIE,IJB:IJE,:)= (ZWORK2(IIB:IIE,IJB:IJE,:) - ZWORK6(IIB:IIE,IJB:IJE,:)) &
+                                    / ZMXF_PDXX(IIB:IIE,IJB:IJE,:)
   !$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:IKT)    
 ELSE
   !$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:IKT)    
-  PGX_M_M(IIB:IIE,IJB:IJE,1:IKT)= ZWORK2(IIB:IIE,IJB:IJE,1:IKT) / ZMXF_PDXX(IIB:IIE,IJB:IJE,1:IKT) 
+  PGX_M_M(IIB:IIE,IJB:IJE,:)= ZWORK2(IIB:IIE,IJB:IJE,:) / ZMXF_PDXX(IIB:IIE,IJB:IJE,:) 
   !$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:IKT)    
 END IF
 !
@@ -335,17 +335,17 @@ IF (.NOT. OFLAT) THEN
   CALL DZM_PHY(D,PA,ZWORK3)
   CALL MYF_PHY(D,PDZY,ZWORK4)
   !$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:IKT)    
-  ZWORK5(IIB:IIE,IJB:IJE,1:IKT) = ZWORK4(IIB:IIE,IJB:IJE,1:IKT) * ZWORK3(IIB:IIE,IJB:IJE,1:IKT) &
-                                   / PDZZ(IIB:IIE,IJB:IJE,1:IKT)
+  ZWORK5(IIB:IIE,IJB:IJE,:) = ZWORK4(IIB:IIE,IJB:IJE,:) * ZWORK3(IIB:IIE,IJB:IJE,:) &
+                                   / PDZZ(IIB:IIE,IJB:IJE,:)
   !$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:IKT)    
   CALL MZF_PHY(D,ZWORK5,ZWORK4)
   !$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:IKT)    
-  PGY_M_M(IIB:IIE,IJB:IJE,1:IKT)= (ZWORK2(IIB:IIE,IJB:IJE,1:IKT)-ZWORK4(IIB:IIE,IJB:IJE,1:IKT)) &
-                                    /ZMYF_PDYY(IIB:IIE,IJB:IJE,1:IKT)
+  PGY_M_M(IIB:IIE,IJB:IJE,:)= (ZWORK2(IIB:IIE,IJB:IJE,:)-ZWORK4(IIB:IIE,IJB:IJE,:)) &
+                                    /ZMYF_PDYY(IIB:IIE,IJB:IJE,:)
   !$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:IKT)    
 ELSE
   !$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:IKT)    
-  PGY_M_M(IIB:IIE,IJB:IJE,1:IKT) = ZWORK2(IIB:IIE,IJB:IJE,1:IKT)/ZMYF_PDYY(IIB:IIE,IJB:IJE,1:IKT)
+  PGY_M_M(IIB:IIE,IJB:IJE,:) = ZWORK2(IIB:IIE,IJB:IJE,:)/ZMYF_PDYY(IIB:IIE,IJB:IJE,:)
   !$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:IKT)    
 ENDIF  
 !
diff --git a/src/PHYEX/aux/mode_gradient_u_phy.f90 b/src/PHYEX/aux/mode_gradient_u_phy.f90
index f66dfeff79fac30aeabb45fe0d91866866caa170..ded89cd72bb39d1127422fec064b8b9efda576a9 100644
--- a/src/PHYEX/aux/mode_gradient_u_phy.f90
+++ b/src/PHYEX/aux/mode_gradient_u_phy.f90
@@ -91,8 +91,8 @@ CALL DZM_PHY(D,PA,PA_WORK)
 CALL MXM_PHY(D,PDZZ,PDZZ_WORK)
 !
 !$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:IKT)
-PGZ_U_UW(IIB:IIE,IJB:IJE,1:IKT)= PA_WORK(IIB:IIE,IJB:IJE,1:IKT) &
-                                               / PDZZ_WORK(IIB:IIE,IJB:IJE,1:IKT)
+PGZ_U_UW(IIB:IIE,IJB:IJE,:)= PA_WORK(IIB:IIE,IJB:IJE,:) &
+                                               / PDZZ_WORK(IIB:IIE,IJB:IJE,:)
 !$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:IKT)
 !
 !----------------------------------------------------------------------------
@@ -204,20 +204,20 @@ CALL MXF_PHY(D,PDXX,ZWORK2)
 IF (.NOT. OFLAT) THEN
   CALL DZM_PHY(D,PA,ZWORK3)
   !$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:IKT)
-  ZWORK3(IIB:IIE,IJB:IJE,1:IKT) = ZWORK3(IIB:IIE,IJB:IJE,1:IKT) * PDZX(IIB:IIE,IJB:IJE,1:IKT)
+  ZWORK3(IIB:IIE,IJB:IJE,:) = ZWORK3(IIB:IIE,IJB:IJE,:) * PDZX(IIB:IIE,IJB:IJE,:)
   !$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:IKT)
   CALL MXF_PHY(D,ZWORK3,ZWORK4)
   !$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:IKT)
-  ZWORK4(IIB:IIE,IJB:IJE,1:IKT) = ZWORK4(IIB:IIE,IJB:IJE,1:IKT) / PDZZ(IIB:IIE,IJB:IJE,1:IKT)
+  ZWORK4(IIB:IIE,IJB:IJE,:) = ZWORK4(IIB:IIE,IJB:IJE,:) / PDZZ(IIB:IIE,IJB:IJE,:)
   !$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:IKT)
   CALL MZF_PHY(D,ZWORK4,ZWORK3)
   !$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:IKT)
-  PGX_U_M(IIB:IIE,IJB:IJE,1:IKT) = ( ZWORK1(IIB:IIE,IJB:IJE,1:IKT) - ZWORK3(IIB:IIE,IJB:IJE,1:IKT)) &
-                                     / ZWORK2(IIB:IIE,IJB:IJE,1:IKT)
+  PGX_U_M(IIB:IIE,IJB:IJE,:) = ( ZWORK1(IIB:IIE,IJB:IJE,:) - ZWORK3(IIB:IIE,IJB:IJE,:)) &
+                                     / ZWORK2(IIB:IIE,IJB:IJE,:)
   !$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:IKT)
 ELSE
   !$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:IKT)
-  PGX_U_M(IIB:IIE,IJB:IJE,1:IKT)= ZWORK1(IIB:IIE,IJB:IJE,1:IKT) / ZWORK2(IIB:IIE,IJB:IJE,1:IKT)
+  PGX_U_M(IIB:IIE,IJB:IJE,:)= ZWORK1(IIB:IIE,IJB:IJE,:) / ZWORK2(IIB:IIE,IJB:IJE,:)
   !$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:IKT)
 END IF
 !
diff --git a/src/PHYEX/aux/mode_gradient_v_phy.f90 b/src/PHYEX/aux/mode_gradient_v_phy.f90
index 0e29c0064d67e01b07396f7c7e544ae9968592b6..37832eae6c5e8da6d0f69f71fa3261e868f53e4f 100644
--- a/src/PHYEX/aux/mode_gradient_v_phy.f90
+++ b/src/PHYEX/aux/mode_gradient_v_phy.f90
@@ -90,8 +90,8 @@ CALL DZM_PHY(D,PA,PA_WORK)
 CALL MYM_PHY(D,PDZZ,PDZZ_WORK)
 !
 !$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:IKT)
-PGZ_V_VW(IIB:IIE,IJB:IJE,1:IKT)= PA_WORK(IIB:IIE,IJB:IJE,1:IKT) &
-                                               / PDZZ_WORK(IIB:IIE,IJB:IJE,1:IKT)
+PGZ_V_VW(IIB:IIE,IJB:IJE,:)= PA_WORK(IIB:IIE,IJB:IJE,:) &
+                                               / PDZZ_WORK(IIB:IIE,IJB:IJE,:)
 !$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:IKT)
 !----------------------------------------------------------------------------
 !
@@ -198,20 +198,20 @@ CALL MYF_PHY(D,PDYY,ZWORK2)
 IF (.NOT. OFLAT) THEN
   CALL DZM_PHY(D,PA,ZWORK3)
   !$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:IKT)
-  ZWORK3(IIB:IIE,IJB:IJE,1:IKT) = ZWORK3(IIB:IIE,IJB:IJE,1:IKT) * PDZY(IIB:IIE,IJB:IJE,1:IKT)
+  ZWORK3(IIB:IIE,IJB:IJE,:) = ZWORK3(IIB:IIE,IJB:IJE,:) * PDZY(IIB:IIE,IJB:IJE,:)
   !$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:IKT)
   CALL MYF_PHY(D,ZWORK3,ZWORK4)
   !$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:IKT)
-  ZWORK4(IIB:IIE,IJB:IJE,1:IKT) = ZWORK4(IIB:IIE,IJB:IJE,1:IKT) / PDZZ(IIB:IIE,IJB:IJE,1:IKT)
+  ZWORK4(IIB:IIE,IJB:IJE,:) = ZWORK4(IIB:IIE,IJB:IJE,:) / PDZZ(IIB:IIE,IJB:IJE,:)
   !$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:IKT)
   CALL MZF_PHY(D,ZWORK4,ZWORK3)
   !$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:IKT)
-  PGY_V_M(IIB:IIE,IJB:IJE,1:IKT) = ( ZWORK1(IIB:IIE,IJB:IJE,1:IKT) - ZWORK3(IIB:IIE,IJB:IJE,1:IKT)) &
-                                     / ZWORK2(IIB:IIE,IJB:IJE,1:IKT)
+  PGY_V_M(IIB:IIE,IJB:IJE,:) = ( ZWORK1(IIB:IIE,IJB:IJE,:) - ZWORK3(IIB:IIE,IJB:IJE,:)) &
+                                     / ZWORK2(IIB:IIE,IJB:IJE,:)
   !$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:IKT)                  
 ELSE
   !$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:IKT)
-  PGY_V_M(IIB:IIE,IJB:IJE,1:IKT)= ZWORK1(IIB:IIE,IJB:IJE,1:IKT) / ZWORK2(IIB:IIE,IJB:IJE,1:IKT)
+  PGY_V_M(IIB:IIE,IJB:IJE,:)= ZWORK1(IIB:IIE,IJB:IJE,:) / ZWORK2(IIB:IIE,IJB:IJE,:)
   !$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:IKT)
 END IF
 !
diff --git a/src/PHYEX/aux/mode_gradient_w_phy.f90 b/src/PHYEX/aux/mode_gradient_w_phy.f90
index 0f8db721bfbc5be4d986dd23373fb00eb0f36b2f..924491117970a70303cf00b0b4542b488c4ddeba 100644
--- a/src/PHYEX/aux/mode_gradient_w_phy.f90
+++ b/src/PHYEX/aux/mode_gradient_w_phy.f90
@@ -90,7 +90,7 @@ IKT=D%NKT
 CALL MZM_PHY(D,PDXX,ZWORK1)
 CALL DXM_PHY(D,PA,ZWORK2)
 !$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:IKT)
-ZWORK3(IIB:IIE,IJB:IJE,1:IKT) = ZWORK2(IIB:IIE,IJB:IJE,1:IKT) / ZWORK1(IIB:IIE,IJB:IJE,1:IKT)
+ZWORK3(IIB:IIE,IJB:IJE,:) = ZWORK2(IIB:IIE,IJB:IJE,:) / ZWORK1(IIB:IIE,IJB:IJE,:)
 !$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:IKT)
 !
 IF (.NOT. OFLAT) THEN
@@ -100,9 +100,9 @@ IF (.NOT. OFLAT) THEN
   !
   CALL MXM_PHY(D,PDZZ,ZWORK2)
   !$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:IKT)
-  PGX_W_UW(IIB:IIE,IJB:IJE,1:IKT)= ZWORK3(IIB:IIE,IJB:IJE,1:IKT)    &
-                 - ZWORK5(IIB:IIE,IJB:IJE,1:IKT)*PDZX(IIB:IIE,IJB:IJE,1:IKT)  &
-                 / (ZWORK1(IIB:IIE,IJB:IJE,1:IKT)*ZWORK2(IIB:IIE,IJB:IJE,1:IKT))
+  PGX_W_UW(IIB:IIE,IJB:IJE,:)= ZWORK3(IIB:IIE,IJB:IJE,:)    &
+                 - ZWORK5(IIB:IIE,IJB:IJE,:)*PDZX(IIB:IIE,IJB:IJE,:)  &
+                 / (ZWORK1(IIB:IIE,IJB:IJE,:)*ZWORK2(IIB:IIE,IJB:IJE,:))
   !$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:IKT)
 ELSE
   PGX_W_UW = ZWORK3
@@ -209,7 +209,7 @@ IKT=D%NKT
 CALL MZM_PHY(D,PDYY,ZWORK1)
 CALL DYM_PHY(D,PA,ZWORK2)
 !$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:IKT)
-ZWORK3(IIB:IIE,IJB:IJE,1:IKT) = ZWORK2(IIB:IIE,IJB:IJE,1:IKT) / ZWORK1(IIB:IIE,IJB:IJE,1:IKT)
+ZWORK3(IIB:IIE,IJB:IJE,:) = ZWORK2(IIB:IIE,IJB:IJE,:) / ZWORK1(IIB:IIE,IJB:IJE,:)
 !$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:IKT)
 !
 IF (.NOT. OFLAT) THEN
@@ -219,9 +219,9 @@ IF (.NOT. OFLAT) THEN
   !
   CALL MYM_PHY(D,PDZZ,ZWORK2)
   !$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:IKT)
-  PGY_W_VW(IIB:IIE,IJB:IJE,1:IKT)= ZWORK3(IIB:IIE,IJB:IJE,1:IKT)    &
-                 - ZWORK5(IIB:IIE,IJB:IJE,1:IKT)*PDZY(IIB:IIE,IJB:IJE,1:IKT)  &
-                 / (ZWORK1(IIB:IIE,IJB:IJE,1:IKT)*ZWORK2(IIB:IIE,IJB:IJE,1:IKT))
+  PGY_W_VW(IIB:IIE,IJB:IJE,:)= ZWORK3(IIB:IIE,IJB:IJE,:)    &
+                 - ZWORK5(IIB:IIE,IJB:IJE,:)*PDZY(IIB:IIE,IJB:IJE,:)  &
+                 / (ZWORK1(IIB:IIE,IJB:IJE,:)*ZWORK2(IIB:IIE,IJB:IJE,:))
   !$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:IKT)
 ELSE
   PGY_W_VW = ZWORK3
@@ -317,7 +317,7 @@ IKT=D%NKT
 CALL DZF_PHY(D,PA,ZWORK1)
 CALL MZF_PHY(D,PDZZ,ZWORK2)
 !$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:IKT)
-PGZ_W_M(IIB:IIE,IJB:IJE,1:IKT)= ZWORK1(IIB:IIE,IJB:IJE,1:IKT)/ZWORK2(IIB:IIE,IJB:IJE,1:IKT)    
+PGZ_W_M(IIB:IIE,IJB:IJE,:)= ZWORK1(IIB:IIE,IJB:IJE,:)/ZWORK2(IIB:IIE,IJB:IJE,:)    
 !$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:IKT)
 !
 !----------------------------------------------------------------------------
diff --git a/src/PHYEX/micro/condensation.f90 b/src/PHYEX/micro/condensation.f90
index 31fda664b8e3671dc4eff6ccdd3b7135b40b2f7e..3504e967afd7768d4cb11218b0a31e64dee82b10 100644
--- a/src/PHYEX/micro/condensation.f90
+++ b/src/PHYEX/micro/condensation.f90
@@ -234,18 +234,7 @@ ZCLDINI = -1. ! Dummy Initialized cloud input to icecloud routine
 PIFR = 10. ! ratio of cloud ice water mixing ratio wet to dry
            ! part of a gridbox
 ZDZREF = ICEP%XFRMIN(25) ! Thickness for unchanged vqsigsat (only used for LHGT_QS)
-! Init of the HALO (should be on HALO points only)
-#ifdef REPRO55
-PRC_OUT = PRC_IN
-PRV_OUT = PRV_IN
-PRI_OUT = PRI_IN
-IF(PRESENT(PHLC_HRC)) THEN
- PHLC_HRC = 0.
- PHLC_HCF = 0.
- PHLI_HRI = 0.
- PHLI_HCF = 0.
-END IF
-#endif
+!
 IF(OCND2)ZPRIFACT = 0.
 !
 !
@@ -277,7 +266,7 @@ ELSE
   DO JK=IKTB,IKTE
     DO JIJ=IIJB,IIJE
       ZCPD(JIJ,JK) = CST%XCPD + CST%XCPV*PRV_IN(JIJ,JK) + CST%XCL*PRC_IN(JIJ,JK) + CST%XCI*PRI_IN(JIJ,JK) + &
-#if defined(REPRO48) || defined(REPRO55)
+#if defined(REPRO48) 
 #else
                                   CST%XCL*PRR(JIJ,JK) +  &
 #endif
diff --git a/src/PHYEX/micro/ini_rain_ice.f90 b/src/PHYEX/micro/ini_rain_ice.f90
index 2f3b2b1c4aee01a9703c23f5351d0c27835246ec..1118b9aaf7e47dd2a7ee37fcbab2dc17f9afbda5 100644
--- a/src/PHYEX/micro/ini_rain_ice.f90
+++ b/src/PHYEX/micro/ini_rain_ice.f90
@@ -424,7 +424,7 @@ XLBR   = ( XAR*XCCR*MOMG(XALPHAR,XNUR,XBR) )**(-XLBEXR)
 XLBEXI = 1.0/(-XBI)
 XLBI   = ( XAI*MOMG(XALPHAI,XNUI,XBI) )**(-XLBEXI)
 !
-#if defined(REPRO48) || defined(REPRO55)
+#if defined(REPRO48) 
 #else
 XNS   = 1.0/(XAS*MOMG(XALPHAS,XNUS,XBS))
 #endif
@@ -443,7 +443,7 @@ XLBDAS_MAX = 100000.0
 !
 ZCONC_MAX  = 1.E6 ! Maximal concentration for falling particules set to 1 per cc
 IF(XCCS>0. .AND. XCXS>0. )XLBDAS_MAX = ( ZCONC_MAX/XCCS )**(1./XCXS)
-#if defined(REPRO48) || defined(REPRO55)
+#if defined(REPRO48) 
 #else
 IF (LSNOW_T) XLBDAS_MAX = 1.E6
 XLBDAS_MIN = 1.E-10
@@ -500,7 +500,7 @@ XEXCSEDI =-0.9324*3.0
 WRITE (KLUOUT,FMT=*)' PRISTINE ICE SEDIMENTATION for columns XFSEDI =',XFSEDI
 !
 !
-#if defined(REPRO48) || defined(REPRO55)
+#if defined(REPRO48) 
 XEXSEDS = (XBS+XDS-XCXS)/(XBS-XCXS)
 XFSEDS  = XCS*XAS*XCCS*MOMG(XALPHAS,XNUS,XBS+XDS)*                         &
          (XAS*XCCS*MOMG(XALPHAS,XNUS,XBS))**(-XEXSEDS)*(ZRHO00)**XCEXVT
@@ -587,7 +587,7 @@ XSCFAC = (0.63**(1./3.))*SQRT((ZRHO00)**XCEXVT) ! One assumes Sc=0.63
 X0DEPI = (4.0*XPI)*XC1I*XF0I*MOMG(XALPHAI,XNUI,1.)
 X2DEPI = (4.0*XPI)*XC1I*XF2I*XC_I*MOMG(XALPHAI,XNUI,XDI+2.0)
 !
-#if defined(REPRO48) || defined(REPRO55)
+#if defined(REPRO48) 
 X0DEPS = (4.0*XPI)*XCCS*XC1S*XF0S*MOMG(XALPHAS,XNUS,1.)
 X1DEPS = (4.0*XPI)*XCCS*XC1S*XF1S*SQRT(XCS)*MOMG(XALPHAS,XNUS,0.5*XDS+1.5)
 XEX0DEPS = XCXS-1.0
@@ -647,7 +647,7 @@ END IF
 !
 XCOLIS   = 0.25 ! Collection efficiency of I+S
 XCOLEXIS = 0.05 ! Temperature factor of the I+S collection efficiency
-#if defined(REPRO48) || defined(REPRO55)
+#if defined(REPRO48) 
 XFIAGGS  = (XPI/4.0)*XCOLIS*XCCS*XCS*(ZRHO00**XCEXVT)*MOMG(XALPHAS,XNUS,XDS+2.0)
 XEXIAGGS = XCXS-XDS-2.0
 #else
@@ -704,7 +704,7 @@ XEX1EVAR = -1.0-0.5*(XDR+3.0)
 !
 XDCSLIM  = 0.007 ! D_cs^lim = 7 mm as suggested by Farley et al. (1989)
 XCOLCS   = 1.0
-#if defined(REPRO48) || defined(REPRO55)
+#if defined(REPRO48) 
 XEXCRIMSS= XCXS-XDS-2.0
 XCRIMSS  = (XPI/4.0)*XCOLCS*XCCS*XCS*(ZRHO00**XCEXVT)*MOMG(XALPHAS,XNUS,XDS+2.0)
 #else
@@ -713,7 +713,7 @@ XCRIMSS  = XNS * (XPI/4.0)*XCOLCS*XCS*(ZRHO00**XCEXVT)*MOMG(XALPHAS,XNUS,XDS+2.0
 #endif
 XEXCRIMSG= XEXCRIMSS
 XCRIMSG  = XCRIMSS
-#if defined(REPRO48) || defined(REPRO55)
+#if defined(REPRO48) 
 XSRIMCG  = XCCS*XAS*MOMG(XALPHAS,XNUS,XBS)
 XEXSRIMCG= XCXS-XBS
 XSRIMCG2 = XCCS*XAG*MOMG(XALPHAS,XNUS,XBG)
@@ -755,7 +755,7 @@ XRIMINTP2 = 1.0 + XRIMINTP1*LOG( XDCSLIM/(XGAMINC_BOUND_MIN)**(1.0/XALPHAS) )
 !
 !*       7.2    Constants for the accretion of raindrops onto aggregates
 !
-#if defined(REPRO48) || defined(REPRO55)
+#if defined(REPRO48) 
 XFRACCSS = ((XPI**2)/24.0)*XCCS*XCCR*XRHOLW*(ZRHO00**XCEXVT)
 #else
 XFRACCSS = XNS*((XPI**2)/24.0)*XCCR*XRHOLW*(ZRHO00**XCEXVT)
@@ -765,7 +765,7 @@ XLBRACCS1   =    MOMG(XALPHAS,XNUS,2.)*MOMG(XALPHAR,XNUR,3.)
 XLBRACCS2   = 2.*MOMG(XALPHAS,XNUS,1.)*MOMG(XALPHAR,XNUR,4.)
 XLBRACCS3   =                          MOMG(XALPHAR,XNUR,5.)
 !
-#if defined(REPRO48) || defined(REPRO55)
+#if defined(REPRO48) 
 XFSACCRG = (XPI/4.0)*XAS*XCCS*XCCR*(ZRHO00**XCEXVT)
 #else
 XFSACCRG = XNS*(XPI/4.0)*XAS*XCCR*(ZRHO00**XCEXVT)
@@ -962,7 +962,7 @@ XCOLSG   = 0.01 ! Collection efficiency of S+G
 XCOLEXSG = 0.1  ! Temperature factor of the S+G collection efficiency
 WRITE (KLUOUT, FMT=*) ' NEW Constants for the aggregate collection by the graupeln'
 WRITE (KLUOUT, FMT=*) ' XCOLSG, XCOLEXSG  = ',XCOLSG,XCOLEXSG
-#if defined(REPRO48) || defined(REPRO55)
+#if defined(REPRO48) 
 XFSDRYG = (XPI/4.0)*XCOLSG*XCCG*XCCS*XAS*(ZRHO00**XCEXVT)
 #else
 XFSDRYG = XNS*(XPI/4.0)*XCOLSG*XCCG*XAS*(ZRHO00**XCEXVT)
@@ -1182,7 +1182,7 @@ XFWETH = (XPI/4.0)*XCCH*XCH*(ZRHO00**XCEXVT)*MOMG(XALPHAH,XNUH,XDH+2.0)
 !
 XCOLSH   = 0.01 ! Collection efficiency of S+H
 XCOLEXSH = 0.1  ! Temperature factor of the S+H collection efficiency
-#if defined(REPRO48) || defined(REPRO55)
+#if defined(REPRO48) 
 XFSWETH = (XPI/4.0)*XCCH*XCCS*XAS*(ZRHO00**XCEXVT)
 #else
 XFSWETH = XNS*(XPI/4.0)*XCCH*XAS*(ZRHO00**XCEXVT) ! Wurtz
diff --git a/src/PHYEX/micro/init_aerosol_properties.f90 b/src/PHYEX/micro/init_aerosol_properties.f90
index ecd30df7f7498c011657b3af21a40a14cc675103..cf776a058728952077afcf12aa91395c8c176b76 100644
--- a/src/PHYEX/micro/init_aerosol_properties.f90
+++ b/src/PHYEX/micro/init_aerosol_properties.f90
@@ -55,6 +55,11 @@ USE MODD_PARAM_LIMA,      ONLY : NMOD_CCN, HINI_CCN, HTYPE_CCN,        &
                                  CINT_MIXING, NPHILLIPS,           &
                                  NIMM, NMOD_IMM, NINDICE_CCN_IMM
 !
+USE MODD_CH_AEROSOL
+USE MODD_SALT
+USE MODD_CSTS_SALT
+USE MODD_DUST
+USE MODD_CSTS_DUST
 use mode_msg
 !
 USE MODI_GAMMA
@@ -158,6 +163,40 @@ IF ( NMOD_CCN .GE. 1 ) THEN
       call Print_msg(NVERB_FATAL,'GEN','INIT_AEROSOL_PROPERTIES','CCN_MODES must be JUNGFRAU, COPT, CAMS, CAMS_JPP,'// &
                                                                  'CAMS_ACC, CAMS_AIT, SIRTA, CPS00, MOCAGE or FREETROP')
    ENDSELECT
+
+IF (LORILAM) THEN   ! for sulphates and hydrophilic aerosols
+  IF (.NOT.(ALLOCATED(XRHOI))) ALLOCATE(XRHOI(NSP+NSOA+NCARB))
+  XRHOI(:)          = 1.8e3
+  XRHOI(JP_AER_H2O) = 1.0e3   ! water
+  XRHOI(JP_AER_DST) = XDENSITY_DUST   ! water
+
+  ! assumption: we choose to put sulfates in mode J and hydrophilics compounds in mode I
+  IF (CRGUNIT=="MASS") THEN
+  RCCN(2)   = XINIRADIUSJ * EXP(-3.*(LOG(XINISIGJ))**2) * 1E-6 ! Sulfates
+  RCCN(3)   = XINIRADIUSI * EXP(-3.*(LOG(XINISIGI))**2) * 1E-6 ! Hydrophilic
+  ELSE
+  RCCN(2)   = XINIRADIUSJ * 1E-6  ! Sulfates
+  RCCN(3)   = XINIRADIUSI * 1E-6  ! Hydrophilic
+
+  END IF
+  LOGSIGCCN(2) = LOG(XINISIGJ)
+  LOGSIGCCN(3) = LOG(XINISIGI)
+  RHOCCN(2)    = XRHOI(JP_AER_SO4) 
+  RHOCCN(3)    = XRHOI(JP_AER_BC)
+END IF
+IF (LSALT) THEN ! for sea salts
+  JMOD = 1
+  IF (NMODE_SLT >= 5) JMOD = 5  ! choose mode 5 of Ovadnevaite 2014 (r = 0.415 µm, sigma = 1.85)
+  IF (NMODE_SLT == 3) JMOD = 1  ! choose mode 1 of Vig01 (r = 0.2 µm, sigma = 1.9) or Sch04 (r = 0.14 µm, sigma = 1.59)
+  IF (CRGUNITS=="MASS") THEN
+  RCCN(1)   = XINIRADIUS_SLT(JMOD) * EXP(-3.*(LOG(XINISIG_SLT(JMOD)))**2) * 1E-6
+  ELSE
+  RCCN(1)   = XINIRADIUS_SLT(JMOD) * 1E-6
+  END IF
+  LOGSIGCCN(1) = LOG(XINISIG_SLT(JMOD))
+  RHOCCN(1) = XDENSITY_SALT
+END IF
+
 !
   DO I=1, MIN(NMOD_CCN,3)
     XR_MEAN_CCN(I) = RCCN(I)
@@ -170,6 +209,15 @@ IF ( NMOD_CCN .GE. 1 ) THEN
     XR_MEAN_CCN(4) = 1.75E-6
     XLOGSIG_CCN(4) = 0.708
     XRHO_CCN(4)    = 2200.   
+    IF ((LSALT).AND.(NMODE_SLT > 5)) THEN
+      IF (CRGUNITS=="MASS") THEN
+       XR_MEAN_CCN(4) = XINIRADIUS_SLT(6) * EXP(-3.*(LOG(XINISIG_SLT(6)))**2) * 1E-6
+      ELSE
+       XR_MEAN_CCN(4) = XINIRADIUS_SLT(6) * 1E-6
+      END IF
+     XLOGSIG_CCN(4) = LOG(XINISIG_SLT(6))
+     XRHO_CCN(4)    = XDENSITY_SALT
+    END IF
   END IF
 !
 !
@@ -352,6 +400,34 @@ IF ( NMOD_IFN .GE. 1 ) THEN
          XRHO_IFN   = (/2300., 2300., 1860., 1000./)
       END IF
    ENDSELECT
+
+IF (LORILAM) THEN
+! assumption: only the aitken mode is considered as ifn
+  IF (CRGUNIT=="MASS") THEN
+  XMDIAM_IFN(3)   = 2 * XINIRADIUSI * EXP(-3.*(LOG(XINISIGI))**2) * 1E-6
+  XMDIAM_IFN(4)   = 2 * XINIRADIUSI * EXP(-3.*(LOG(XINISIGI))**2) * 1E-6
+  ELSE
+  XMDIAM_IFN(3)   = 2 * XINIRADIUSI * 1E-6
+  XMDIAM_IFN(4)   = 2 * XINIRADIUSI * 1E-6
+  END IF
+  LOGSIGCCN(3) = LOG(XINISIGJ)
+  LOGSIGCCN(4) = LOG(XINISIGJ)
+  XRHO_IFN(3)    = XRHOI(JP_AER_BC) 
+  XRHO_IFN(4)    = XRHOI(JP_AER_OC)
+END IF
+
+IF (LDUST) THEN
+! assumption: we considered the two finest dust modes as ifn
+  DO JMOD = 1,2
+  IF (CRGUNITD=="MASS") THEN
+    XMDIAM_IFN(JMOD) = 2 * XINIRADIUS(JPDUSTORDER(JMOD)) * EXP(-3.*(LOG(XINISIG(JPDUSTORDER(JMOD))))**2) * 1E-6 
+  ELSE
+    XMDIAM_IFN(JMOD) = 2 * XINIRADIUS(JPDUSTORDER(JMOD)) * 1E-6 
+  END IF
+  LOGSIGCCN(JMOD) = LOG(XINISIG(JPDUSTORDER(JMOD)))
+  RHOCCN(JMOD) = XDENSITY_DUST
+  ENDDO
+END IF
 !
 ! internal mixing
 !
@@ -432,22 +508,6 @@ IF ( NMOD_IFN .GE. 1 ) THEN
          XFRAC_REF(4)=0.06
       END IF
 !
-! Immersion modes
-!
-   IF (.NOT.(ALLOCATED(NIMM))) ALLOCATE(NIMM(NMOD_CCN))
-   NIMM(:)=0
-   IF (ALLOCATED(NINDICE_CCN_IMM)) DEALLOCATE(NINDICE_CCN_IMM)
-   ALLOCATE(NINDICE_CCN_IMM(MAX(1,NMOD_IMM)))
-   IF (NMOD_IMM .GE. 1) THEN
-      DO J = 0, NMOD_IMM-1
-         NIMM(NMOD_CCN-J)=1
-         NINDICE_CCN_IMM(NMOD_IMM-J) = NMOD_CCN-J
-      END DO
-!   ELSE IF (NMOD_IMM == 0) THEN ! PNIS existe mais vaut 0, pour l'appel à resolved_cloud
-!      NMOD_IMM = 1
-!      NINDICE_CCN_IMM(1) = 0
-   END IF
-!
 END IF ! NMOD_IFN > 0
 ! 
 END SUBROUTINE INIT_AEROSOL_PROPERTIES
diff --git a/src/PHYEX/micro/mode_ice4_budgets.f90 b/src/PHYEX/micro/mode_ice4_budgets.f90
index 03c550d31736c25e59c0ebe77506f0a9ad3c4d74..e2d91bd8c7adb3221a2fd53b3655df6f6af066a2 100644
--- a/src/PHYEX/micro/mode_ice4_budgets.f90
+++ b/src/PHYEX/micro/mode_ice4_budgets.f90
@@ -339,7 +339,7 @@ IF(KRR==7) THEN
   IF (BUCONF%LBUDGET_RH) CALL BUDGET_STORE_ADD_PHY(D, TBUDGETS(NBUDGET_RH), 'WETH', (ZW1(:, :)+ZW2(:, :)+ZW3(:, :)+ &
                                                                         &ZW4(:, :)+ZW5(:, : ))  *PRHODJ(:, :))
 
-#if defined(REPRO48) || defined(REPRO55)
+#if defined(REPRO48) 
   ZW1(:,:) = 0.
   DO JL=1, KSIZE
     ZW1(K1(JL), K2(JL)) = PBU_PACK(JL, IRGWETH) * ZINV_TSTEP
@@ -348,10 +348,7 @@ IF(KRR==7) THEN
 #ifdef REPRO48
   IF (BUCONF%LBUDGET_RG) CALL BUDGET_STORE_ADD_PHY(D, TBUDGETS(NBUDGET_RG), 'HGCV', (-ZW5(:, :)-ZW1(:, :))*PRHODJ(:, :))
 #endif
-#ifdef REPRO55
-  IF (BUCONF%LBUDGET_RG) CALL BUDGET_STORE_ADD_PHY(D, TBUDGETS(NBUDGET_RG), 'HGCV', -ZW1(:, :)*PRHODJ(:, :))
-#endif
-#if defined(REPRO48) || defined(REPRO55)
+#if defined(REPRO48) 
   IF (BUCONF%LBUDGET_RH) CALL BUDGET_STORE_ADD_PHY(D, TBUDGETS(NBUDGET_RH), 'HGCV',  ZW1(:, :)*PRHODJ(:, :))
 #endif
 
@@ -376,7 +373,7 @@ IF(KRR==7) THEN
     ZW5(K1(JL), K2(JL)) = PBU_PACK(JL, IRGDRYH) * ZINV_TSTEP
   END DO
   ZW6(:,:) = 0.
-#if defined(REPRO48) || defined(REPRO55)
+#if defined(REPRO48) 
   !ZW6 must be removed when REPRO* will be suppressed
   DO JL=1, KSIZE
     ZW6(K1(JL), K2(JL)) = PBU_PACK(JL, IRDRYHG) * ZINV_TSTEP
@@ -393,10 +390,10 @@ IF(KRR==7) THEN
                                                                       &ZW4(:, :)+ZW5(:, :)-ZW6(:, :)) &
                                                                       &                             *PRHODJ(:, :))
 
-#if defined(REPRO48) || defined(REPRO55)
+#if defined(REPRO48) 
 #else
   !When REPRO48 will be suppressed, ZW6 must be removed
-  ZW(:,:) = 0.
+  ZW1(:,:) = 0.
   DO JL=1, KSIZE
     ZW1(K1(JL), K2(JL)) = PBU_PACK(JL, IRDRYHG) * ZINV_TSTEP
   END DO
diff --git a/src/PHYEX/micro/mode_ice4_fast_rg.f90 b/src/PHYEX/micro/mode_ice4_fast_rg.f90
index e861b521e69116ceee0607e9998e1debd2314a0e..0b7a6ef508cdf6b5677b49a01a0b47ea731e62cc 100644
--- a/src/PHYEX/micro/mode_ice4_fast_rg.f90
+++ b/src/PHYEX/micro/mode_ice4_fast_rg.f90
@@ -191,7 +191,7 @@ IF(.NOT. LDSOFT) THEN
     WHERE(GDRY(1:KSIZE))
       PRG_TEND(1:KSIZE, IRSWETG)=ICEP%XFSDRYG*ZZW(1:KSIZE)                         & ! RSDRYG
                                     / ICEP%XCOLSG &
-#if defined(REPRO48) || defined(REPRO55)
+#if defined(REPRO48) 
                   *(PLBDAS(1:KSIZE)**(ICED%XCXS-ICED%XBS))*( PLBDAG(1:KSIZE)**ICED%XCXG )    &
                   *(PRHODREF(1:KSIZE)**(-ICED%XCEXVT-1.))                    &
 #else
diff --git a/src/PHYEX/micro/mode_ice4_fast_rh.f90 b/src/PHYEX/micro/mode_ice4_fast_rh.f90
index c35275a392405ce6ac6d661d415b0f4191b5549b..8ac5a7b7e13ffb73eca7f232b86e679d2868936d 100644
--- a/src/PHYEX/micro/mode_ice4_fast_rh.f90
+++ b/src/PHYEX/micro/mode_ice4_fast_rh.f90
@@ -152,7 +152,7 @@ IF(.NOT. LDSOFT) THEN
     !$mnh_expand_where(JL=1:KSIZE)
     WHERE(GWET(1:KSIZE))
       PRH_TEND(1:KSIZE, IRSWETH)=ICEP%XFSWETH*ZZW(1:KSIZE)                       & ! RSWETH
-#if defined(REPRO48) || defined(REPRO55)
+#if defined(REPRO48) 
                     *( PLBDAS(1:KSIZE)**(ICED%XCXS-ICED%XBS) )*( PLBDAH(1:KSIZE)**ICED%XCXH )  &
                        *( PRHODREF(1:KSIZE)**(-ICED%XCEXVT-1.) )               &
 #else
diff --git a/src/PHYEX/micro/mode_ice4_fast_rs.f90 b/src/PHYEX/micro/mode_ice4_fast_rs.f90
index d79105d0c9f6cd0b2de3959b14a4bc558aa16288..5e4dabf6e4380049a2c98584cac5957003dc7740 100644
--- a/src/PHYEX/micro/mode_ice4_fast_rs.f90
+++ b/src/PHYEX/micro/mode_ice4_fast_rs.f90
@@ -111,7 +111,7 @@ DO JL=1, KSIZE
       PRS_TEND(JL, IFREEZ1)=PKA(JL)*(CST%XTT-PT(JL)) +                              &
                            &(PDV(JL)*(CST%XLVTT+(CST%XCPV-CST%XCL)*(PT(JL)-CST%XTT)) &
                            &*(CST%XESTT-PRS_TEND(JL, IFREEZ1))/(CST%XRV*PT(JL))           )
-#if defined(REPRO48) || defined(REPRO55)
+#if defined(REPRO48) 
       PRS_TEND(JL, IFREEZ1)=PRS_TEND(JL, IFREEZ1)* (ICEP%X0DEPS*       PLBDAS(JL)**ICEP%XEX0DEPS +     &
                            &                        ICEP%X1DEPS*PCJ(JL)*PLBDAS(JL)**ICEP%XEX1DEPS )/ &
 #else
@@ -139,7 +139,7 @@ ENDDO
 !
 DO JL=1, KSIZE
   IF (PRCT(JL)>ICED%XRTMIN(2) .AND. PRST(JL)>ICED%XRTMIN(5) .AND. LDCOMPUTE(JL)) THEN
-#if defined(REPRO48) || defined(REPRO55)
+#if defined(REPRO48) 
     ZZW(JL) = PLBDAS(JL)
 #else
     ZZW(JL) = (PLBDAS(JL)**ICED%XALPHAS + ICED%XFVELOS**ICED%XALPHAS)**(1./ICED%XALPHAS)
@@ -166,7 +166,7 @@ IF(.NOT. LDSOFT) THEN
     !$mnh_expand_where(JL=1:KSIZE)
     WHERE (GRIM(1:KSIZE))
       PRS_TEND(1:KSIZE, IRCRIMSS) = ICEP%XCRIMSS * ZZW1(1:KSIZE) * PRCT(1:KSIZE) & ! RCRIMSS
-#if defined(REPRO48) || defined(REPRO55)
+#if defined(REPRO48) 
                                       * PLBDAS(1:KSIZE)**ICEP%XEXCRIMSS &
                                       * PRHODREF(1:KSIZE)**(-ICED%XCEXVT)
 #else
@@ -184,7 +184,7 @@ IF(.NOT. LDSOFT) THEN
     !$mnh_expand_where(JL=1:KSIZE)
     WHERE(GRIM(1:KSIZE))
       PRS_TEND(1:KSIZE, IRCRIMS)=ICEP%XCRIMSG * PRCT(1:KSIZE)               & ! RCRIMS
-#if defined(REPRO48) || defined(REPRO55)
+#if defined(REPRO48) 
                                    * PLBDAS(1:KSIZE)**ICEP%XEXCRIMSG  &
                                    * PRHODREF(1:KSIZE)**(-ICED%XCEXVT)
 #else
@@ -201,7 +201,7 @@ IF(.NOT. LDSOFT) THEN
       !$mnh_expand_where(JL=1:KSIZE)
       WHERE(GRIM(1:KSIZE))
         ZZW(1:KSIZE) = PRS_TEND(1:KSIZE, IRCRIMS) - PRS_TEND(1:KSIZE, IRCRIMSS) ! RCRIMSG
-#if defined(REPRO48) || defined(REPRO55)
+#if defined(REPRO48) 
         PRS_TEND(1:KSIZE, IRSRIMCG)=ICEP%XSRIMCG * PLBDAS(1:KSIZE)**ICEP%XEXSRIMCG*(1.0-ZZW2(1:KSIZE))
 #else
         PRS_TEND(1:KSIZE, IRSRIMCG)=ICEP%XSRIMCG * PRST(1:KSIZE)*PRHODREF(1:KSIZE) &
@@ -209,7 +209,7 @@ IF(.NOT. LDSOFT) THEN
 #endif
         PRS_TEND(1:KSIZE, IRSRIMCG)=ZZW(1:KSIZE)*PRS_TEND(1:KSIZE, IRSRIMCG)/ &
                        MAX(1.E-20, &
-#if defined(REPRO48) || defined(REPRO55)
+#if defined(REPRO48) 
                            ICEP%XSRIMCG3*ICEP%XSRIMCG2*PLBDAS(1:KSIZE)**ICEP%XEXSRIMCG2*(1.-ZZW3(1:KSIZE)) - &
 #else
                            ICEP%XSRIMCG3*ICEP%XSRIMCG2*PRST(1:KSIZE)*PRHODREF(1:KSIZE) &
@@ -270,7 +270,7 @@ IF(.NOT. LDSOFT) THEN
     !$mnh_expand_where(JL=1:KSIZE)
     WHERE(GACC(1:KSIZE))
       ZZW(1:KSIZE) =                                                        & !! coef of RRACCS
-#if defined(REPRO48) || defined(REPRO55)
+#if defined(REPRO48) 
             ICEP%XFRACCSS*( PLBDAS(1:KSIZE)**ICED%XCXS )*( PRHODREF(1:KSIZE)**(-ICED%XCEXVT-1.) ) &
 #else
             ICEP%XFRACCSS*( PRST(1:KSIZE)*PLBDAS(1:KSIZE)**ICED%XBS )*( PRHODREF(1:KSIZE)**(-ICED%XCEXVT) ) &
@@ -294,7 +294,7 @@ IF(.NOT. LDSOFT) THEN
     !$mnh_expand_where(JL=1:KSIZE)
     WHERE(GACC(1:KSIZE))
       PRS_TEND(1:KSIZE, IRSACCRG) = ICEP%XFSACCRG*ZZW3(1:KSIZE)*                    & ! RSACCRG
-#if defined(REPRO48) || defined(REPRO55)
+#if defined(REPRO48) 
           ( PLBDAS(1:KSIZE)**(ICED%XCXS-ICED%XBS) )*( PRHODREF(1:KSIZE)**(-ICED%XCEXVT-1.) ) &
 #else
           ( PRST(1:KSIZE))*( PRHODREF(1:KSIZE)**(-ICED%XCEXVT) ) &
@@ -343,7 +343,7 @@ DO JL=1, KSIZE
       ! compute RSMLT
       !
       PRSMLTG(JL)  = ICEP%XFSCVMG*MAX(0., (-PRSMLTG(JL) * &
-#if defined(REPRO48) || defined(REPRO55)
+#if defined(REPRO48) 
                  (ICEP%X0DEPS*       PLBDAS(JL)**ICEP%XEX0DEPS +     &
                  ICEP%X1DEPS*PCJ(JL)*PLBDAS(JL)**ICEP%XEX1DEPS)    &
 #else
diff --git a/src/PHYEX/micro/mode_ice4_pack.f90 b/src/PHYEX/micro/mode_ice4_pack.f90
index e955a223d98f4629b532d6cdd68f71539e59fa05..3300125dcc0c1f05da394f72953ac77e6fa3bfb9 100644
--- a/src/PHYEX/micro/mode_ice4_pack.f90
+++ b/src/PHYEX/micro/mode_ice4_pack.f90
@@ -201,7 +201,7 @@ IF(PARAMI%LPACK_MICRO) THEN
   !  optimization by looking for locations where
   !  the microphysical fields are larger than a minimal value only !!!
   !
-  IF (KSIZE /= COUNT(ODMICRO(IIJB:IIJE,IKTB:IKTE))) THEN
+  IF (KSIZE /= COUNT(ODMICRO(:,:))) THEN
       CALL PRINT_MSG(NVERB_FATAL, 'GEN', 'ICE4_PACK', 'ICE4_PACK : KSIZE /= COUNT(ODMICRO)')
   ENDIF
   
diff --git a/src/PHYEX/micro/mode_ice4_rsrimcg_old.f90 b/src/PHYEX/micro/mode_ice4_rsrimcg_old.f90
index 970f214f322bc79eec5ad895d366595959e0974e..a273dbd9441c356db8b744d40778a8a12945bd56 100644
--- a/src/PHYEX/micro/mode_ice4_rsrimcg_old.f90
+++ b/src/PHYEX/micro/mode_ice4_rsrimcg_old.f90
@@ -87,7 +87,7 @@ IF(.NOT. LDSOFT) THEN
     !$mnh_expand_where(JL=1:KSIZE)
     WHERE(GRIM(1:KSIZE))
       PRSRIMCG_MR(1:KSIZE) = ICEP%XSRIMCG * PLBDAS(1:KSIZE)**ICEP%XEXSRIMCG   & ! RSRIMCG
-#if defined(REPRO48) || defined(REPRO55)
+#if defined(REPRO48) 
                                * (1.0 - ZZW(1:KSIZE) )/PRHODREF(1:KSIZE)
 #else
                                * (1.0 - ZZW(1:KSIZE) )*PRST(1:KSIZE)
diff --git a/src/PHYEX/micro/mode_ice4_sedimentation.f90 b/src/PHYEX/micro/mode_ice4_sedimentation.f90
index c110a81f1cdf5e8616d6b5d1fd52d14ab7948ddc..7b73ed5492a7c877159ea7a3524b940529161946 100644
--- a/src/PHYEX/micro/mode_ice4_sedimentation.f90
+++ b/src/PHYEX/micro/mode_ice4_sedimentation.f90
@@ -141,7 +141,7 @@ IF(PARAMI%CSEDIM=='STAT') THEN
                               &PINPRC, PINPRR, ZINPRI, PINPRS, PINPRG, &
                               &PSEA=PSEA, PTOWN=PTOWN, &
                               &PINPRH=PINPRH, PRHT=ZRHT, PRHS=PRHS, PFPR=PFPR)
-  PINPRS(IIJB:IIJE) = PINPRS(IIJB:IIJE) + ZINPRI(IIJB:IIJE)
+  PINPRS(:) = PINPRS(:) + ZINPRI(:)
   !No negativity correction here as we apply sedimentation on PR.S*PTSTEP variables
 ELSEIF(PARAMI%CSEDIM=='SPLI') THEN
   CALL ICE4_SEDIMENTATION_SPLIT(D, CST, ICEP, ICED, PARAMI, &
@@ -151,7 +151,7 @@ ELSEIF(PARAMI%CSEDIM=='SPLI') THEN
                                &PINPRC, PINPRR, ZINPRI, PINPRS, PINPRG, &
                                &PSEA=PSEA, PTOWN=PTOWN, &
                                &PINPRH=PINPRH, PRHT=PRHT, PRHS=PRHS, PFPR=PFPR)
-  PINPRS(IIJB:IIJE) = PINPRS(IIJB:IIJE) + ZINPRI(IIJB:IIJE)
+  PINPRS(:) = PINPRS(:) + ZINPRI(:)
   !We correct negativities with conservation
   !SPLI algorith uses a time-splitting. Inside the loop a temporary m.r. is used.
   !   It is initialized with the m.r. at T and is modified by two tendencies:
diff --git a/src/PHYEX/micro/mode_ice4_sedimentation_split.f90 b/src/PHYEX/micro/mode_ice4_sedimentation_split.f90
index 6534e7043ae2036c7e2d5eef53b5d0d94829f9fa..1fcaf9244b1a4981080e445f34fb113216bd8844 100644
--- a/src/PHYEX/micro/mode_ice4_sedimentation_split.f90
+++ b/src/PHYEX/micro/mode_ice4_sedimentation_split.f90
@@ -345,7 +345,7 @@ PINPRX(:) = 0.
 ZINVTSTEP=1./PTSTEP
 ZRSMIN(:) = ICED%XRTMIN(:) * ZINVTSTEP
 ZREMAINT(:) = 0.
-ZREMAINT(IIJB:IIJE) = PTSTEP
+ZREMAINT(:) = PTSTEP
 !
 DO WHILE (ANY(ZREMAINT>0.))
   !
@@ -387,7 +387,7 @@ DO WHILE (ANY(ZREMAINT>0.))
         ENDIF
       ENDDO
     ENDDO
-#if defined(REPRO48) || defined(REPRO55)
+#if defined(REPRO48) 
 #else
   ELSEIF(KSPE==5) THEN
     ! ******* for snow
@@ -418,7 +418,7 @@ DO WHILE (ANY(ZREMAINT>0.))
       CASE(3)
         ZFSED=ICEP%XFSEDR
         ZEXSED=ICEP%XEXSEDR
-#if defined(REPRO48) || defined(REPRO55)
+#if defined(REPRO48) 
       CASE(5)
         ZFSED=ICEP%XFSEDS
         ZEXSED=ICEP%XEXSEDS
diff --git a/src/PHYEX/micro/mode_ice4_sedimentation_stat.f90 b/src/PHYEX/micro/mode_ice4_sedimentation_stat.f90
index 52183c8547782f2507b58d01a61d7428a6564822..bf5a71b554dca4a76a0df8c346eb36cc865e6420 100644
--- a/src/PHYEX/micro/mode_ice4_sedimentation_stat.f90
+++ b/src/PHYEX/micro/mode_ice4_sedimentation_stat.f90
@@ -99,7 +99,7 @@ REAL :: FWSED1, FWSED2, PWSEDW, PWSEDWSUP, PINVTSTEP, PTSTEP1, PDZZ1, PRHODREF1,
 
 REAL(KIND=JPRB) :: ZHOOK_HANDLE
 !
-#if defined(REPRO48) || defined(REPRO55)
+#if defined(REPRO48) 
 ! 5 multiplications + 1 division => cost = 7X
 FWSED1(PWSEDW,PTSTEP1,PDZZ1,PRHODREF1,PRXT1,PINVTSTEP)=MIN(1.,PWSEDW*PTSTEP1/PDZZ1 )*PRHODREF1*PDZZ1*PRXT1*PINVTSTEP
 #else
@@ -366,7 +366,7 @@ CONTAINS
     ! ******* for snow
     DO JIJ = IIJB, IIJE
       ZQP=ZSED(JIJ,IKPLUS,JRR)*ZTSORHODZ(JIJ)
-      IF ((PRXT(JIJ) > ICED%XRTMIN(JRR)) .OR. (ZQP > ICED%XRTMIN(JRR))) THEN
+      IF ((PRXT(JIJ) > ICED%XRTMIN(JRR)) ) THEN
         !Compute lambda_snow parameter
         IF (PARAMI%LSNOW_T) THEN 
           IF(PT(JIJ,JK)>CST%XTT-10.0) THEN
diff --git a/src/PHYEX/micro/mode_ice4_slow.f90 b/src/PHYEX/micro/mode_ice4_slow.f90
index e81b2f529a42743008a80a5c6a494b9f9b1941d2..78aa35289b34904b586917b3c80d8428469cf587 100644
--- a/src/PHYEX/micro/mode_ice4_slow.f90
+++ b/src/PHYEX/micro/mode_ice4_slow.f90
@@ -113,7 +113,7 @@ ENDDO
 DO JL=1, KSIZE
   IF(PRVT(JL)>ICED%XRTMIN(1) .AND. PRST(JL)>ICED%XRTMIN(5) .AND. LDCOMPUTE(JL)) THEN
     IF(.NOT. LDSOFT) THEN
-#if defined(REPRO48) || defined(REPRO55)
+#if defined(REPRO48) 
       PRVDEPS(JL) = ( PSSI(JL)/(PRHODREF(JL)*PAI(JL)) ) *                               &
                  ( ICEP%X0DEPS*PLBDAS(JL)**ICEP%XEX0DEPS + ICEP%X1DEPS*PCJ(JL)*PLBDAS(JL)**ICEP%XEX1DEPS )
 #else
@@ -135,7 +135,7 @@ DO JL=1, KSIZE
     IF(.NOT. LDSOFT) THEN
       PRIAGGS(JL) = ICEP%XFIAGGS * EXP( ICEP%XCOLEXIS*(PT(JL)-CST%XTT) ) &
                          * PRIT(JL)                      &
-#if defined(REPRO48) || defined(REPRO55)
+#if defined(REPRO48) 
                          * PLBDAS(JL)**ICEP%XEXIAGGS          &
                          * PRHODREF(JL)**(-ICED%XCEXVT)
 #else
diff --git a/src/PHYEX/micro/mode_ice4_stepping.f90 b/src/PHYEX/micro/mode_ice4_stepping.f90
index 8a438a79968778ffb2de9d0ea91bae7f98d31a24..b4879faa523564249664c799dee5384d6bf26c9c 100644
--- a/src/PHYEX/micro/mode_ice4_stepping.f90
+++ b/src/PHYEX/micro/mode_ice4_stepping.f90
@@ -371,11 +371,7 @@ DO WHILE(ANY(ZTIME(1:KMICRO)<PTSTEP)) ! Loop to *really* compute tendencies
       ENDDO
     ENDDO
     DO JL=1, KMICRO
-#ifdef REPRO55
-      PCIT(JL)=PCIT(JL) * MAX(0., -SIGN(1., -PVART(JL,IRI)))
-#else
       IF (PVART(JL,IRI)<=0. .AND. LDMICRO(JL)) PCIT(JL) = 0.
-#endif
       ZTIME(JL)=ZTIME(JL)+ZMAXTIME(JL)
     ENDDO
     !-------------------------------------------------------------------------------
diff --git a/src/PHYEX/micro/mode_ice4_warm.f90 b/src/PHYEX/micro/mode_ice4_warm.f90
index dddbfc42ee48700ca058f2689cf8d6797a093b77..317b57839b7f503e05bbde975eedec0c74713d54 100644
--- a/src/PHYEX/micro/mode_ice4_warm.f90
+++ b/src/PHYEX/micro/mode_ice4_warm.f90
@@ -92,13 +92,9 @@ IF (LHOOK) CALL DR_HOOK('ICE4_WARM', 0, ZHOOK_HANDLE)
 !*       4.2    compute the autoconversion of r_c for r_r production: RCAUTR
 !
 DO JL=1, KSIZE
-#ifdef REPRO55
-  IF(PHLC_HRC(JL)>ICED%XRTMIN(2) .AND. PHLC_HCF(JL)>1.E-20 .AND. LDCOMPUTE(JL)) THEN
-#else
   IF(PHLC_HRC(JL)>ICED%XRTMIN(2) .AND. PHLC_HCF(JL)>0. .AND. LDCOMPUTE(JL)) THEN
-#endif
     IF(.NOT. LDSOFT) THEN
-#if defined(REPRO48) || defined(REPRO55)
+#if defined(REPRO48) 
       PRCAUTR(JL) = ICEP%XTIMAUTC*MAX(PHLC_HRC(JL)/PHLC_HCF(JL) - ICEP%XCRIAUTC/PRHODREF(JL), 0.0)
       PRCAUTR(JL) = PHLC_HCF(JL)*PRCAUTR(JL)
 #else
@@ -138,11 +134,7 @@ ELSEIF (HSUBG_RC_RR_ACCR=='PRFR') THEN
   ! => min(PCF, PRF)-PHLC_HCF
   DO JL=1, KSIZE
     LMASK = PRCT(JL)>ICED%XRTMIN(2) .AND. PRRT(JL)>ICED%XRTMIN(3) .AND. LDCOMPUTE(JL)
-#ifdef REPRO55
-    LMASK1 = LMASK .AND. PHLC_HRC(JL)>ICED%XRTMIN(2) .AND. PHLC_HCF(JL)>1.E-20
-#else
     LMASK1 = LMASK .AND. PHLC_HRC(JL)>ICED%XRTMIN(2) .AND. PHLC_HCF(JL)>0.
-#endif
 #ifdef REPRO48
     LMASK2 = LMASK .AND. PHLC_LRC(JL)>ICED%XRTMIN(2) .AND. PHLC_LCF(JL)>0.
 #else
@@ -152,7 +144,7 @@ ELSEIF (HSUBG_RC_RR_ACCR=='PRFR') THEN
       IF(.NOT. LDSOFT) THEN
         IF(LMASK1) THEN
           !Accretion due to rain falling in high cloud content
-#if defined(REPRO48) || defined(REPRO55)
+#if defined(REPRO48) 
           PRCACCR(JL) = ICEP%XFCACCR * ( PHLC_HRC(JL)/PHLC_HCF(JL) )     &
                       &*PLBDAR_RF(JL)**ICEP%XEXCACCR &
                       &*PRHODREF(JL)**(-ICED%XCEXVT) &
diff --git a/src/PHYEX/micro/mode_lima_ccn_activation.f90 b/src/PHYEX/micro/mode_lima_ccn_activation.f90
index 1731dd8156a2f19ebaa201b3f7fad0e835e2d417..36a2d7384f87d78995a0a580a5dcc07bbb88d1be 100644
--- a/src/PHYEX/micro/mode_lima_ccn_activation.f90
+++ b/src/PHYEX/micro/mode_lima_ccn_activation.f90
@@ -403,11 +403,11 @@ IF( INUCT >= 1 ) THEN
    !
    !* update the concentration of activated CCN = Na
    !
-      PNAT(:,:,:,JMOD) = PNAT(:,:,:,JMOD) + PCLDFR(:,:,:) * UNPACK( ZZW1(:), MASK=GNUCT(:,:,:), FIELD=0.0 )
+      PNAT(:,:,:,JMOD) = PNAT(:,:,:,JMOD) + ZCLDFR(:,:,:) * UNPACK( ZZW1(:), MASK=GNUCT(:,:,:), FIELD=0.0 )
    !
    !* update the concentration of free CCN = Nf
    !
-      PNFT(:,:,:,JMOD) = PNFT(:,:,:,JMOD) - PCLDFR(:,:,:) * UNPACK( ZZW1(:), MASK=GNUCT(:,:,:), FIELD=0.0 )
+      PNFT(:,:,:,JMOD) = PNFT(:,:,:,JMOD) - ZCLDFR(:,:,:) * UNPACK( ZZW1(:), MASK=GNUCT(:,:,:), FIELD=0.0 )
    !
    !* prepare to update the cloud water concentration 
    !
@@ -429,12 +429,12 @@ IF( INUCT >= 1 ) THEN
       PRCT(:,:,:) = PRCT(:,:,:) + ZW(:,:,:) 
       PCCT(:,:,:) = PCCT(:,:,:) + UNPACK( ZZW6(:),MASK=GNUCT(:,:,:),FIELD=0. ) 
    ELSE
-      ZW(:,:,:) = MIN( PCLDFR(:,:,:) * UNPACK( ZZW1(:),MASK=GNUCT(:,:,:),FIELD=0.0 ),PRVT(:,:,:) )
-      PCCT(:,:,:) = PCCT(:,:,:) + PCLDFR(:,:,:) * UNPACK( ZZW6(:),MASK=GNUCT(:,:,:),FIELD=0. ) 
+      ZW(:,:,:) = MIN( ZCLDFR(:,:,:) * UNPACK( ZZW1(:),MASK=GNUCT(:,:,:),FIELD=0.0 ),PRVT(:,:,:) )
+      PCCT(:,:,:) = PCCT(:,:,:) + ZCLDFR(:,:,:) * UNPACK( ZZW6(:),MASK=GNUCT(:,:,:),FIELD=0. ) 
    END IF
 !
    ZW(:,:,:)   = UNPACK( 100.0*ZSMAX(:),MASK=GNUCT(:,:,:),FIELD=0.0 )
-   ZW2(:,:,:)  = PCLDFR(:,:,:) * UNPACK( ZZW6(:),MASK=GNUCT(:,:,:),FIELD=0.0 )
+   ZW2(:,:,:)  = ZCLDFR(:,:,:) * UNPACK( ZZW6(:),MASK=GNUCT(:,:,:),FIELD=0.0 )
 !
 !
 !-------------------------------------------------------------------------------
diff --git a/src/PHYEX/micro/mode_rrcolss.f90 b/src/PHYEX/micro/mode_rrcolss.f90
index abb1b3d59bd001e9ed033a9cb6db89465be5aca8..bfeaa1adb56745853e3da69cb13334c27da8e29f 100644
--- a/src/PHYEX/micro/mode_rrcolss.f90
+++ b/src/PHYEX/micro/mode_rrcolss.f90
@@ -244,7 +244,7 @@ DO JLBDAS = 1,SIZE(PRRCOLSS(:,:),1)
           DO JDR = 1,INR-1
             ZDR = ZDDCOLLR * REAL(JDR)
             ZCOLLR = ZCOLLR + (ZDS+ZDR)**2 * ZDR**PEXMASSR                     &
-#if defined(REPRO48) || defined(REPRO55)
+#if defined(REPRO48) 
                        * PESR * ABS(PFALLS*ZDS**PEXFALLS-PFALLR*ZDR**PEXFALLR) &
 #else
                        * PESR * ABS(PFALLS*ZDS**PEXFALLS * EXP(-(PFALLEXPS*ZDS)**PALPHAS)-PFALLR*ZDR**PEXFALLR) &
@@ -252,7 +252,7 @@ DO JLBDAS = 1,SIZE(PRRCOLSS(:,:),1)
                                       * GENERAL_GAMMA(PALPHAR,PNUR,ZLBDAR,ZDR)
           END DO
           ZCOLLDRMAX = (ZDS+ZDRMAX)**2 * ZDRMAX**PEXMASSR                      &
-#if defined(REPRO48) || defined(REPRO55)
+#if defined(REPRO48) 
                     * PESR * ABS(PFALLS*ZDS**PEXFALLS-PFALLR*ZDRMAX**PEXFALLR) &
 #else
                     * PESR * ABS(PFALLS*ZDS**PEXFALLS* EXP(-(PFALLEXPS*ZDS)**PALPHAS)-PFALLR*ZDRMAX**PEXFALLR) &
diff --git a/src/PHYEX/micro/mode_rscolrg.f90 b/src/PHYEX/micro/mode_rscolrg.f90
index 0ec4020b612e94141874617ef55392909a1d060c..77e00251fce73e7531074f6bf3bd382245cf8f1e 100644
--- a/src/PHYEX/micro/mode_rscolrg.f90
+++ b/src/PHYEX/micro/mode_rscolrg.f90
@@ -238,7 +238,7 @@ DO JLBDAR = 1,SIZE(PRSCOLRG(:,:),1)
             ZDR = ZDDCOLLR * REAL(JDR) + ZDRMIN
             ZCOLLR = ZCOLLR + (ZDS+ZDR)**2                                     &
                        * GENERAL_GAMMA(PALPHAR,PNUR,ZLBDAR,ZDR)                &
-#if defined(REPRO48) || defined(REPRO55)
+#if defined(REPRO48) 
                          * PESR * ABS(PFALLS*ZDS**PEXFALLS-PFALLR*ZDR**PEXFALLR)
 #else
                          * PESR * ABS(PFALLS*ZDS**PEXFALLS*EXP(-(ZDS*PFALLEXPS)**PALPHAS)-PFALLR*ZDR**PEXFALLR)
@@ -247,7 +247,7 @@ DO JLBDAR = 1,SIZE(PRSCOLRG(:,:),1)
           IF( ZDRMIN>0.0 ) THEN
             ZCOLLDRMIN = (ZDS+ZDRMIN)**2                                       &
                       * GENERAL_GAMMA(PALPHAR,PNUR,ZLBDAR,ZDRMIN)              &
-#if defined(REPRO48) || defined(REPRO55)
+#if defined(REPRO48) 
                       * PESR * ABS(PFALLS*ZDS**PEXFALLS-PFALLR*ZDRMIN**PEXFALLR)
 #else
                       * PESR * ABS(PFALLS*ZDS**PEXFALLS*EXP(-(ZDS*PFALLEXPS)**PALPHAS)-PFALLR*ZDRMIN**PEXFALLR)
diff --git a/src/PHYEX/micro/mode_rzcolx.f90 b/src/PHYEX/micro/mode_rzcolx.f90
index c765515d2c9b3dc4b39c0f8a6a8978383bd6dcb9..3370bc01fc979498af1073544a4b7efa7013c3f6 100644
--- a/src/PHYEX/micro/mode_rzcolx.f90
+++ b/src/PHYEX/micro/mode_rzcolx.f90
@@ -215,7 +215,7 @@ DO JLBDAX = 1,SIZE(PRZCOLX(:,:),1)
 !*       1.7     Compute the scaled fall speed difference by integration over
 !                the dimensional spectrum of specy Z
 !
-#if defined(REPRO48) || defined(REPRO55)
+#if defined(REPRO48) 
         ZCOLLZ = ZCOLLZ + ZFUNC                                               &
                         * PEXZ * ABS(PFALLX*ZDX**PEXFALLX-PFALLZ*ZDZ**PEXFALLZ)
 #else
diff --git a/src/PHYEX/micro/rain_ice.f90 b/src/PHYEX/micro/rain_ice.f90
index c17b5c3cd39bd3e426f2e41208e16ee11ec1550c..a07d16b212fae884cf74a21a71f3480afba2ed41 100644
--- a/src/PHYEX/micro/rain_ice.f90
+++ b/src/PHYEX/micro/rain_ice.f90
@@ -341,29 +341,12 @@ DO JK = IKTB,IKTE
                       PRST(JIJ,JK)>ICED%XRTMIN(5) .OR. &
                       PRGT(JIJ,JK)>ICED%XRTMIN(6) .OR. &
                       PRHT(JIJ,JK)>ICED%XRTMIN(7)
-#ifdef REPRO55
-      LLMICRO(JIJ,JK)=LLMICRO(JIJ,JK) .OR. &
-                      PRCS(JIJ,JK)>ZRSMIN(2) .OR. &
-                      PRRS(JIJ,JK)>ZRSMIN(3) .OR. &
-                      PRIS(JIJ,JK)>ZRSMIN(4) .OR. &
-                      PRSS(JIJ,JK)>ZRSMIN(5) .OR. &
-                      PRGS(JIJ,JK)>ZRSMIN(6) .OR. &
-                      PRHS(JIJ,JK)>ZRSMIN(7)
-#endif
     ELSE
       LLMICRO(JIJ,JK)=PRCT(JIJ,JK)>ICED%XRTMIN(2) .OR. &
                       PRRT(JIJ,JK)>ICED%XRTMIN(3) .OR. &
                       PRIT(JIJ,JK)>ICED%XRTMIN(4) .OR. &
                       PRST(JIJ,JK)>ICED%XRTMIN(5) .OR. &
                       PRGT(JIJ,JK)>ICED%XRTMIN(6)
-#ifdef REPRO55
-      LLMICRO(JIJ,JK)=LLMICRO(JIJ,JK) .OR. &
-                      PRCS(JIJ,JK)>ZRSMIN(2) .OR. &
-                      PRRS(JIJ,JK)>ZRSMIN(3) .OR. &
-                      PRIS(JIJ,JK)>ZRSMIN(4) .OR. &
-                      PRSS(JIJ,JK)>ZRSMIN(5) .OR. &
-                      PRGS(JIJ,JK)>ZRSMIN(6)
-#endif
     ENDIF
   ENDDO
 ENDDO
@@ -426,11 +409,7 @@ DO JK=IKTB,IKTE
     IF (.NOT. LLMICRO(JIJ, JK)) THEN
       LLW3D(JIJ, JK)=.TRUE.
       ZW3D(JIJ, JK)=ZZ_LSFACT(JIJ, JK)/PEXN(JIJ, JK)
-#ifdef REPRO55
-#else
       PCIT(JIJ,JK)=0. !ri=0 because where are in the not odmicro case
-#endif
- 
     ELSE
       LLW3D(JIJ, JK)=.FALSE.
     ENDIF
diff --git a/src/PHYEX/micro/rain_ice_fast_rg.f90 b/src/PHYEX/micro/rain_ice_fast_rg.f90
index 4d4c4ec292ad965e5bb42e6c1806239eea8b7b14..0799d824aa16f617ead6073703f4ba18f4229347 100644
--- a/src/PHYEX/micro/rain_ice_fast_rg.f90
+++ b/src/PHYEX/micro/rain_ice_fast_rg.f90
@@ -204,7 +204,7 @@ REAL,    DIMENSION(size(PRHODREF),7) :: ZZW1              ! Work arrays
       JL = I1(JJ)
       ZZW1(JL,3) = MIN( PRSS(JL),XFSDRYG*ZVEC3(JJ)                         & ! RSDRYG
                                       * EXP( XCOLEXSG*(PZT(JL)-XTT) )  &
-#if defined(REPRO48) || defined(REPRO55)
+#if defined(REPRO48) 
                     *( ZVECLBDAS(JJ)**(XCXS-XBS) )*( ZVECLBDAG(JJ)**XCXG )    &
                     *( PRHODREF(JL)**(-XCEXVT-1.) )                    &
 #else
diff --git a/src/PHYEX/micro/rain_ice_fast_rh.f90 b/src/PHYEX/micro/rain_ice_fast_rh.f90
index b86db34ae9e8ebca3d6940162d5fa624fd3092c3..d41b61143d2db7ef49ab7926d371e2dc53a7b972 100644
--- a/src/PHYEX/micro/rain_ice_fast_rh.f90
+++ b/src/PHYEX/micro/rain_ice_fast_rh.f90
@@ -186,7 +186,7 @@ REAL,    DIMENSION(size(PRHODREF),6) :: ZZW1              ! Work arrays
       DO JJ = 1, IGWET
         JL = I1W(JJ)
         ZZW1(JL,3) = MIN( PRSS(JL),XFSWETH*ZVEC3(JJ)                       & ! RSWETH
-#if defined(REPRO48) || defined(REPRO55)
+#if defined(REPRO48) 
                       *( ZVECLBDAS(JJ)**(XCXS-XBS) )*( ZVECLBDAH(JJ)**XCXH )  &
                          *( PRHODREF(JL)**(-XCEXVT-1.) )               &
 #else
diff --git a/src/PHYEX/micro/rain_ice_fast_rs.f90 b/src/PHYEX/micro/rain_ice_fast_rs.f90
index 8b7dbdc3db20aeb3788386e4ef089d9aec04f1a9..682a1ba3fe3148aa37be1f6e705b789fd84542ec 100644
--- a/src/PHYEX/micro/rain_ice_fast_rs.f90
+++ b/src/PHYEX/micro/rain_ice_fast_rs.f90
@@ -136,7 +136,7 @@ REAL,    DIMENSION(:), ALLOCATABLE :: ZZW1, ZZW2, ZZW3, ZZW4 ! Work arrays
     DO JJ = 1, IGRIM
       JL = I1(JJ)
       ZZW1(JJ) = MIN( PRCS(JL),                                &
-#if defined(REPRO48) || defined(REPRO55)
+#if defined(REPRO48) 
                      XCRIMSS * ZVEC1(JJ) * PRCT(JL)                & ! RCRIMSS
                                        *   ZVECLBDAS(JJ)**XEXCRIMSS &
                                        * PRHODREF(JL)**(-XCEXVT) )
@@ -163,7 +163,7 @@ REAL,    DIMENSION(:), ALLOCATABLE :: ZZW1, ZZW2, ZZW3, ZZW4 ! Work arrays
       JL = I1(JJ)
       IF ( PRSS(JL) > 0.0 ) THEN
         ZZW2(JJ) = MIN( PRCS(JL),                     &
-#if defined(REPRO48) || defined(REPRO55)
+#if defined(REPRO48) 
                     XCRIMSG * PRCT(JL)                & ! RCRIMSG
                             *  ZVECLBDAS(JJ)**XEXCRIMSG  &
                             * PRHODREF(JL)**(-XCEXVT) &
@@ -275,7 +275,7 @@ REAL,    DIMENSION(:), ALLOCATABLE :: ZZW1, ZZW2, ZZW3, ZZW4 ! Work arrays
     DO JJ = 1, IGACC
       JL = I1(JJ)
       ZZW2(JJ) =                                            & !! coef of RRACCS
-#if defined(REPRO48) || defined(REPRO55)
+#if defined(REPRO48) 
               XFRACCSS*( ZVECLBDAS(JJ)**XCXS )*( PRHODREF(JL)**(-XCEXVT-1.) ) &
 #else
               XFRACCSS*( PRST(JL)*ZVECLBDAS(JJ)**XBS )*( PRHODREF(JL)**(-XCEXVT) ) &
@@ -325,7 +325,7 @@ REAL,    DIMENSION(:), ALLOCATABLE :: ZZW1, ZZW2, ZZW3, ZZW4 ! Work arrays
         ZZW2(JJ) = MAX( MIN( PRRS(JL),ZZW2(JJ)-ZZW4(JJ) ),0.0 )       ! RRACCSG
         IF ( ZZW2(JJ) > 0.0 ) THEN
           ZZW3(JJ) = MIN( PRSS(JL),XFSACCRG*ZVEC3(JJ)*                     & ! RSACCRG
-#if defined(REPRO48) || defined(REPRO55)
+#if defined(REPRO48) 
                 ( ZVECLBDAS(JJ)**(XCXS-XBS) )*( PRHODREF(JL)**(-XCEXVT-1.) ) &
 #else
                 PRST(JL)*( PRHODREF(JL)**(-XCEXVT) ) &
@@ -376,7 +376,7 @@ REAL,    DIMENSION(:), ALLOCATABLE :: ZZW1, ZZW2, ZZW3, ZZW4 ! Work arrays
 !
 ! compute RSMLT
 !
-#if defined(REPRO48) || defined(REPRO55)
+#if defined(REPRO48) 
     ZZW(:)  = MIN( PRSS(:), XFSCVMG*MAX( 0.0,( -ZZW(:) *             &
                            ( X0DEPS*       PLBDAS(:)**XEX0DEPS +     &
                              X1DEPS*PCJ(:)*PLBDAS(:)**XEX1DEPS ) ) / &
diff --git a/src/PHYEX/micro/rain_ice_old.f90 b/src/PHYEX/micro/rain_ice_old.f90
index 6645e796b47be4aee5b48ea208e72ec8f09bbfa3..d3edd8708cd5ac272febb7861a620ab9b9377c44 100644
--- a/src/PHYEX/micro/rain_ice_old.f90
+++ b/src/PHYEX/micro/rain_ice_old.f90
@@ -430,20 +430,20 @@ CALL RAIN_ICE_NUCLEATION(IIB, IIE, IJB, IJE, IKTB, IKTE,KRR,PTSTEP,&
 GMICRO(:,:,:) = .FALSE.
 
  IF ( KRR == 7 ) THEN
-  GMICRO(IIB:IIE,IJB:IJE,IKTB:IKTE) =                          &
-                PRCT(IIB:IIE,IJB:IJE,IKTB:IKTE)>XRTMIN(2) .OR. &
-                PRRT(IIB:IIE,IJB:IJE,IKTB:IKTE)>XRTMIN(3) .OR. &
-                PRIT(IIB:IIE,IJB:IJE,IKTB:IKTE)>XRTMIN(4) .OR. &
-                PRST(IIB:IIE,IJB:IJE,IKTB:IKTE)>XRTMIN(5) .OR. &
-                PRGT(IIB:IIE,IJB:IJE,IKTB:IKTE)>XRTMIN(6) .OR. &
-                PRHT(IIB:IIE,IJB:IJE,IKTB:IKTE)>XRTMIN(7)
+  GMICRO(IIB:IIE,IJB:IJE,:) =                          &
+                PRCT(IIB:IIE,IJB:IJE,:)>XRTMIN(2) .OR. &
+                PRRT(IIB:IIE,IJB:IJE,:)>XRTMIN(3) .OR. &
+                PRIT(IIB:IIE,IJB:IJE,:)>XRTMIN(4) .OR. &
+                PRST(IIB:IIE,IJB:IJE,:)>XRTMIN(5) .OR. &
+                PRGT(IIB:IIE,IJB:IJE,:)>XRTMIN(6) .OR. &
+                PRHT(IIB:IIE,IJB:IJE,:)>XRTMIN(7)
  ELSE IF( KRR == 6 ) THEN
-  GMICRO(IIB:IIE,IJB:IJE,IKTB:IKTE) =                          &
-                PRCT(IIB:IIE,IJB:IJE,IKTB:IKTE)>XRTMIN(2) .OR. &
-                PRRT(IIB:IIE,IJB:IJE,IKTB:IKTE)>XRTMIN(3) .OR. &
-                PRIT(IIB:IIE,IJB:IJE,IKTB:IKTE)>XRTMIN(4) .OR. &
-                PRST(IIB:IIE,IJB:IJE,IKTB:IKTE)>XRTMIN(5) .OR. &
-                PRGT(IIB:IIE,IJB:IJE,IKTB:IKTE)>XRTMIN(6)
+  GMICRO(IIB:IIE,IJB:IJE,:) =                          &
+                PRCT(IIB:IIE,IJB:IJE,:)>XRTMIN(2) .OR. &
+                PRRT(IIB:IIE,IJB:IJE,:)>XRTMIN(3) .OR. &
+                PRIT(IIB:IIE,IJB:IJE,:)>XRTMIN(4) .OR. &
+                PRST(IIB:IIE,IJB:IJE,:)>XRTMIN(5) .OR. &
+                PRGT(IIB:IIE,IJB:IJE,:)>XRTMIN(6)
  END IF
 
 IMICRO = COUNTJV( GMICRO(:,:,:),I1(:),I2(:),I3(:))
diff --git a/src/PHYEX/micro/rain_ice_slow.f90 b/src/PHYEX/micro/rain_ice_slow.f90
index 10120d3cd5ecc0a3b2991c720c2c13869d5874d9..4f590c70d81c87262cfe19e85325f1d4206b6f80 100644
--- a/src/PHYEX/micro/rain_ice_slow.f90
+++ b/src/PHYEX/micro/rain_ice_slow.f90
@@ -147,7 +147,7 @@ real, dimension(size(plsfact))  :: zz_diff
   END WHERE
   ZZW(:) = 0.0
   WHERE ( (PRST(:)>XRTMIN(5)) .AND. (PRSS(:)>0.0) )
-#if defined(REPRO48) || defined(REPRO55)
+#if defined(REPRO48) 
     ZZW(:) = ( PSSI(:)/(PRHODREF(:)*PAI(:)) ) *                               &
 #else
     ZZW(:) = ( PRST(:) * PLBDAS(:)**XBS * PSSI(:)/PAI(:) ) *          &
@@ -173,7 +173,7 @@ real, dimension(size(plsfact))  :: zz_diff
   WHERE ( (PRIT(:)>XRTMIN(4)) .AND. (PRST(:)>XRTMIN(5)) .AND. (PRIS(:)>0.0) )
     ZZW(:) = MIN( PRIS(:),XFIAGGS * EXP( XCOLEXIS*(PZT(:)-XTT) ) &
                                   * PRIT(:)                      &
-#if defined(REPRO48) || defined(REPRO55)
+#if defined(REPRO48) 
                                   * PLBDAS(:)**XEXIAGGS          &
                                   * PRHODREF(:)**(-XCEXVT)       )
 #else
diff --git a/src/PHYEX/turb/mode_bl89.f90 b/src/PHYEX/turb/mode_bl89.f90
index 8291ef9a6f90dcbcfc0cb455f7a70865324c9839..6a24431aebf4772b89a9fe6fe282f2a8357c0edd 100644
--- a/src/PHYEX/turb/mode_bl89.f90
+++ b/src/PHYEX/turb/mode_bl89.f90
@@ -155,7 +155,7 @@ ELSE !Atmosphere case
 END IF
 !
 !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-ZSQRT_TKE(IIJB:IIJE,1:IKT) = SQRT(PTKEM(IIJB:IIJE,1:IKT))
+ZSQRT_TKE(:,:) = SQRT(PTKEM(:,:))
 !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 !
 !ZBL89EXP is defined here because (and not in ini_cturb) because CSTURB%XCED is defined in read_exseg (depending on BL89/RM17)
@@ -167,18 +167,18 @@ ZUSRBL89 = 1./ZBL89EXP
 !              -----------------------------------------------
 !
 IF(KRR /= 0) THEN
-  ZSUM(IIJB:IIJE,1:IKT) = 0.
+  ZSUM(:,:) = 0.
   DO JRR=1,KRR
     !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-    ZSUM(IIJB:IIJE,1:IKT) = ZSUM(IIJB:IIJE,1:IKT)+PRM(IIJB:IIJE,1:IKT,JRR)
+    ZSUM(:,:) = ZSUM(:,:)+PRM(:,:,JRR)
     !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
   ENDDO
   !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-  ZVPT(IIJB:IIJE,1:IKT)=PTHLM(IIJB:IIJE,1:IKT) * ( 1. + ZRVORD*PRM(IIJB:IIJE,1:IKT,1) )  &
-                           / ( 1. + ZSUM(IIJB:IIJE,1:IKT) )
+  ZVPT(:,:)=PTHLM(:,:) * ( 1. + ZRVORD*PRM(:,:,1) )  &
+                           / ( 1. + ZSUM(:,:) )
   !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 ELSE
-  ZVPT(IIJB:IIJE,1:IKT)=PTHLM(IIJB:IIJE,1:IKT)
+  ZVPT(:,:)=PTHLM(:,:)
 END IF
 !
 !!!!!!!!!!!!
@@ -225,7 +225,7 @@ DO JK=IKTB,IKTE
 !
 !*       4.  mixing length for a downwards displacement
 !            ------------------------------------------
-  ZINTE(IIJB:IIJE)=PTKEM(IIJB:IIJE,JK)
+  ZINTE(:)=PTKEM(:,JK)
   ZLWORK=0.
   ZTESTM=1.
   DO JKK=JK,IKB,-IKL
@@ -274,8 +274,8 @@ DO JK=IKTB,IKTE
 !*       6.  mixing length for an upwards displacement
 !            -----------------------------------------
 !
-  ZINTE(IIJB:IIJE)=PTKEM(IIJB:IIJE,JK)
-  ZLWORK(IIJB:IIJE)=0.
+  ZINTE(:)=PTKEM(:,JK)
+  ZLWORK(:)=0.
   ZTESTM=1.
 !
   DO JKK=JK+IKL,IKE,IKL
@@ -340,9 +340,9 @@ END DO
 !*       9.  boundaries
 !            ----------
 !
-PLM(IIJB:IIJE,IKA)=PLM(IIJB:IIJE,IKB)
-PLM(IIJB:IIJE,IKE)=PLM(IIJB:IIJE,IKE-IKL)
-PLM(IIJB:IIJE,IKU)=PLM(IIJB:IIJE,IKE-IKL)
+PLM(:,IKA)=PLM(:,IKB)
+PLM(:,IKE)=PLM(:,IKE-IKL)
+PLM(:,IKU)=PLM(:,IKE-IKL)
 !
 !-------------------------------------------------------------------------------
 !
diff --git a/src/PHYEX/turb/mode_bl_depth_diag.f90 b/src/PHYEX/turb/mode_bl_depth_diag.f90
index 2e817e7cc1924ad6cf1032be9a0b60ef6a162b4c..a5e897a8dd12b49922dcc1c1a54c6897f4e26e8b 100644
--- a/src/PHYEX/turb/mode_bl_depth_diag.f90
+++ b/src/PHYEX/turb/mode_bl_depth_diag.f90
@@ -99,7 +99,7 @@ DO JIJ=IIJB,IIJE
 END DO
 !
 !$mnh_expand_array(JIJ=IIJB:IIJE)
-BL_DEPTH_DIAG3D(IIJB:IIJE) = BL_DEPTH_DIAG3D(IIJB:IIJE) / (1. - PFTOP_O_FSURF)
+BL_DEPTH_DIAG3D(:) = BL_DEPTH_DIAG3D(:) / (1. - PFTOP_O_FSURF)
 !$mnh_end_expand_array(JIJ=IIJB:IIJE)
 !
 IF (LHOOK) CALL DR_HOOK('BL_DEPTH_DIAG_3D',1,ZHOOK_HANDLE)
@@ -133,8 +133,8 @@ IF (LHOOK) CALL DR_HOOK('BL_DEPTH_DIAG_1D',0,ZHOOK_HANDLE)
 IKT=D%NKT
 ZSURF        = PSURF
 ZZS          = PZS
-ZFLUX(1,1,1:IKT) = PFLUX(1:IKT)
-ZZZ  (1,1,1:IKT) = PZZ  (1:IKT)
+ZFLUX(1,1,:) = PFLUX(:)
+ZZZ  (1,1,:) = PZZ  (:)
 !
 CALL BL_DEPTH_DIAG_3D(D,ZSURF,ZZS,ZFLUX,ZZZ,PFTOP_O_FSURF,ZBL_DEPTH_DIAG)
 !
diff --git a/src/PHYEX/turb/mode_compute_bl89_ml.f90 b/src/PHYEX/turb/mode_compute_bl89_ml.f90
index 36008959d5bba861c545aa3313ef83e96e0557f6..f59e548a91da1410966c8e8f78bf8db1b66cb56b 100644
--- a/src/PHYEX/turb/mode_compute_bl89_ml.f90
+++ b/src/PHYEX/turb/mode_compute_bl89_ml.f90
@@ -100,10 +100,10 @@ IKE=D%NKE
 IKL=D%NKL
 !
 CALL DZM_MF(D, PVPT(:,:), ZDELTVPT(:,:))
-ZDELTVPT(IIJB:IIJE,IKA)=0.
+ZDELTVPT(:,IKA)=0.
 !$mnh_expand_where(JIJ=IIJB:IIJE,JK=1:IKT)
-WHERE (ABS(ZDELTVPT(IIJB:IIJE,1:IKT))<CSTURB%XLINF)
-  ZDELTVPT(IIJB:IIJE,1:IKT)=CSTURB%XLINF
+WHERE (ABS(ZDELTVPT(:,:))<CSTURB%XLINF)
+  ZDELTVPT(:,:)=CSTURB%XLINF
 END WHERE
 !$mnh_end_expand_where(JIJ=IIJB:IIJE,JK=1:IKT)
 !
@@ -112,8 +112,8 @@ CALL MZM_MF(D, PVPT(:,:), ZHLVPT(:,:))
 !We consider that gradient between mass levels KKB and KKB+KKL is the same as
 !the gradient between flux level KKB and mass level KKB
 !$mnh_expand_array(JIJ=IIJB:IIJE)
-ZDELTVPT(IIJB:IIJE,IKB)=PDZZ2D(IIJB:IIJE,IKB)*ZDELTVPT(IIJB:IIJE,IKB+IKL)/PDZZ2D(IIJB:IIJE,IKB+IKL)
-ZHLVPT(IIJB:IIJE,IKB)=PVPT(IIJB:IIJE,IKB)-ZDELTVPT(IIJB:IIJE,IKB)*0.5
+ZDELTVPT(:,IKB)=PDZZ2D(:,IKB)*ZDELTVPT(:,IKB+IKL)/PDZZ2D(:,IKB+IKL)
+ZHLVPT(:,IKB)=PVPT(:,IKB)-ZDELTVPT(:,IKB)*0.5
 !$mnh_end_expand_array(JIJ=IIJB:IIJE)
 !
 !
@@ -124,13 +124,13 @@ ZHLVPT(IIJB:IIJE,IKB)=PVPT(IIJB:IIJE,IKB)-ZDELTVPT(IIJB:IIJE,IKB)*0.5
 
 IF (OUPORDN.EQV..TRUE.) THEN 
  !$mnh_expand_array(JIJ=IIJB:IIJE)
- ZINTE(IIJB:IIJE)=PTKEM_DEP(IIJB:IIJE)
+ ZINTE(:)=PTKEM_DEP(:)
  !$mnh_end_expand_array(JIJ=IIJB:IIJE)
  PLWORK=0.
  ZTESTM=1.
  IF(OFLUX)THEN
    !$mnh_expand_array(JIJ=IIJB:IIJE)
-   ZVPT_DEP(IIJB:IIJE)=ZHLVPT(IIJB:IIJE,KK) ! departure point is on flux level
+   ZVPT_DEP(:)=ZHLVPT(:,KK) ! departure point is on flux level
    !$mnh_end_expand_array(JIJ=IIJB:IIJE)
    !We must compute what happens between flux level KK and mass level KK
    DO J1D=IIJB,IIJE
@@ -162,7 +162,7 @@ IF (OUPORDN.EQV..TRUE.) THEN
    ENDDO
  ELSE
    !$mnh_expand_array(JIJ=IIJB:IIJE)
-   ZVPT_DEP(IIJB:IIJE)=PVPT(IIJB:IIJE,KK) ! departure point is on mass level
+   ZVPT_DEP(:)=PVPT(:,KK) ! departure point is on mass level
    !$mnh_end_expand_array(JIJ=IIJB:IIJE)
  ENDIF
 
@@ -203,7 +203,7 @@ ENDIF
 IF (OUPORDN.EQV..FALSE.) THEN 
  IF(OFLUX) CALL PRINT_MSG(NVERB_FATAL,'GEN','COMPUTE_BL89_ML','OFLUX option not coded for downward mixing length')
  !$mnh_expand_array(JIJ=IIJB:IIJE)
- ZINTE(IIJB:IIJE)=PTKEM_DEP(IIJB:IIJE)
+ ZINTE(:)=PTKEM_DEP(:)
  !$mnh_end_expand_array(JIJ=IIJB:IIJE)
  PLWORK=0.
  ZTESTM=1.
diff --git a/src/PHYEX/turb/mode_compute_function_thermo_mf.f90 b/src/PHYEX/turb/mode_compute_function_thermo_mf.f90
index fdb54d89b93374cc3fb1e4e25bd5fc3eb3c23060..2e294edf612d092d297afe27ba293a86e96a588e 100644
--- a/src/PHYEX/turb/mode_compute_function_thermo_mf.f90
+++ b/src/PHYEX/turb/mode_compute_function_thermo_mf.f90
@@ -115,19 +115,19 @@ ZCP=CST%XCPD
 
 IF (KRR > 0) THEN
   !$mnh_expand_array(JIJ=IIJB:IIJE,JK=IKTB:IKTE)
-  ZCP(IIJB:IIJE,IKTB:IKTE) = ZCP(IIJB:IIJE,IKTB:IKTE) + CST%XCPV * PR(IIJB:IIJE,IKTB:IKTE,1)
+  ZCP(:,:) = ZCP(:,:) + CST%XCPV * PR(:,:,1)
   !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=IKTB:IKTE)
 ENDIF
 
 DO JRR = 2,1+KRRL  ! loop on the liquid components
    !$mnh_expand_array(JIJ=IIJB:IIJE,JK=IKTB:IKTE)
-   ZCP(IIJB:IIJE,IKTB:IKTE)  = ZCP(IIJB:IIJE,IKTB:IKTE) + CST%XCL * PR(IIJB:IIJE,IKTB:IKTE,JRR)
+   ZCP(:,:)  = ZCP(:,:) + CST%XCL * PR(:,:,JRR)
    !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=IKTB:IKTE)
 END DO
 
 DO JRR = 2+KRRL,1+KRRL+KRRI ! loop on the solid components
   !$mnh_expand_array(JIJ=IIJB:IIJE,JK=IKTB:IKTE)
-  ZCP(IIJB:IIJE,IKTB:IKTE)  = ZCP(IIJB:IIJE,IKTB:IKTE)  + CST%XCI * PR(IIJB:IIJE,IKTB:IKTE,JRR)
+  ZCP(:,:)  = ZCP(:,:)  + CST%XCI * PR(:,:,JRR)
   !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=IKTB:IKTE)
 
 END DO
@@ -135,7 +135,7 @@ END DO
 !*      Temperature
 !
 !$mnh_expand_array(JIJ=IIJB:IIJE,JK=IKTB:IKTE)
-PT(IIJB:IIJE,IKTB:IKTE) =  PTH(IIJB:IIJE,IKTB:IKTE) * PEXN(IIJB:IIJE,IKTB:IKTE)
+PT(:,:) =  PTH(:,:) * PEXN(:,:)
 !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=IKTB:IKTE)
 !
 !
@@ -146,42 +146,42 @@ IF ( KRRL >= 1 ) THEN
   !
   !*       Lv/Cph
   !
-  ZLVOCP(IIJB:IIJE,IKTB:IKTE) = (CST%XLVTT + (CST%XCPV-CST%XCL) *  (PT(IIJB:IIJE,IKTB:IKTE)-CST%XTT) ) / &
-                                      & ZCP(IIJB:IIJE,IKTB:IKTE)
+  ZLVOCP(:,:) = (CST%XLVTT + (CST%XCPV-CST%XCL) *  (PT(:,:)-CST%XTT) ) / &
+                                      & ZCP(:,:)
   !
   !*      Saturation vapor pressure with respect to water
   !
-  ZE(IIJB:IIJE,IKTB:IKTE) =  EXP(CST%XALPW - CST%XBETAW/PT(IIJB:IIJE,IKTB:IKTE) - &
-                                        &CST%XGAMW*ALOG( PT(IIJB:IIJE,IKTB:IKTE) ) )
+  ZE(:,:) =  EXP(CST%XALPW - CST%XBETAW/PT(:,:) - &
+                                        &CST%XGAMW*ALOG( PT(:,:) ) )
   !
   !*      Saturation  mixing ratio with respect to water
   !
-  ZE(IIJB:IIJE,IKTB:IKTE) =  ZE(IIJB:IIJE,IKTB:IKTE) * ZEPS / &
-                                  & ( PPABS(IIJB:IIJE,IKTB:IKTE) - ZE(IIJB:IIJE,IKTB:IKTE) )
+  ZE(:,:) =  ZE(:,:) * ZEPS / &
+                                  & ( PPABS(:,:) - ZE(:,:) )
   !
   !*      Compute the saturation mixing ratio derivative (rvs')
   !
-  ZDEDT(IIJB:IIJE,IKTB:IKTE) = (CST%XBETAW/PT(IIJB:IIJE,IKTB:IKTE)  - CST%XGAMW) / PT(IIJB:IIJE,IKTB:IKTE)&
-                 * ZE(IIJB:IIJE,IKTB:IKTE) * ( 1. + ZE(IIJB:IIJE,IKTB:IKTE) / ZEPS )
+  ZDEDT(:,:) = (CST%XBETAW/PT(:,:)  - CST%XGAMW) / PT(:,:)&
+                 * ZE(:,:) * ( 1. + ZE(:,:) / ZEPS )
   !
   !*      Compute Amoist and Atheta
   !
   IF (OSTATNW) THEN
-    ZAMOIST_W(IIJB:IIJE,IKTB:IKTE)=  1.0/( 1.0 + ZDEDT(IIJB:IIJE,IKTB:IKTE) * ZLVOCP(IIJB:IIJE,IKTB:IKTE))
-    ZATHETA_W(IIJB:IIJE,IKTB:IKTE)= ZAMOIST_W(IIJB:IIJE,IKTB:IKTE) * PEXN(IIJB:IIJE,IKTB:IKTE) &
-                                            * ZDEDT(IIJB:IIJE,IKTB:IKTE)
+    ZAMOIST_W(:,:)=  1.0/( 1.0 + ZDEDT(:,:) * ZLVOCP(:,:))
+    ZATHETA_W(:,:)= ZAMOIST_W(:,:) * PEXN(:,:) &
+                                            * ZDEDT(:,:)
   ELSE
-    ZAMOIST_W(IIJB:IIJE,IKTB:IKTE)= 0.5/( 1.0 + ZDEDT(IIJB:IIJE,IKTB:IKTE) * ZLVOCP(IIJB:IIJE,IKTB:IKTE) )
-    ZATHETA_W(IIJB:IIJE,IKTB:IKTE)= ZAMOIST_W(IIJB:IIJE,IKTB:IKTE) * PEXN(IIJB:IIJE,IKTB:IKTE) *         &
-          ( ( ZE(IIJB:IIJE,IKTB:IKTE) - PR(IIJB:IIJE,IKTB:IKTE,1) ) * ZLVOCP(IIJB:IIJE,IKTB:IKTE) /      &
-            ( 1. + ZDEDT(IIJB:IIJE,IKTB:IKTE) * ZLVOCP(IIJB:IIJE,IKTB:IKTE) )           *              &
+    ZAMOIST_W(:,:)= 0.5/( 1.0 + ZDEDT(:,:) * ZLVOCP(:,:) )
+    ZATHETA_W(:,:)= ZAMOIST_W(:,:) * PEXN(:,:) *         &
+          ( ( ZE(:,:) - PR(:,:,1) ) * ZLVOCP(:,:) /      &
+            ( 1. + ZDEDT(:,:) * ZLVOCP(:,:) )           *              &
             (                                                             &
-             ZE(IIJB:IIJE,IKTB:IKTE) * (1. + ZE(IIJB:IIJE,IKTB:IKTE)/ZEPS)                                &
-                            * ( -2.*CST%XBETAW/PT(IIJB:IIJE,IKTB:IKTE) + CST%XGAMW ) / PT(IIJB:IIJE,IKTB:IKTE)**2&
-            +ZDEDT(IIJB:IIJE,IKTB:IKTE) * (1. + 2. * ZE(IIJB:IIJE,IKTB:IKTE)/ZEPS)                        &
-                          * ( CST%XBETAW/PT(IIJB:IIJE,IKTB:IKTE) - CST%XGAMW ) / PT(IIJB:IIJE,IKTB:IKTE)         &
+             ZE(:,:) * (1. + ZE(:,:)/ZEPS)                                &
+                            * ( -2.*CST%XBETAW/PT(:,:) + CST%XGAMW ) / PT(:,:)**2&
+            +ZDEDT(:,:) * (1. + 2. * ZE(:,:)/ZEPS)                        &
+                          * ( CST%XBETAW/PT(:,:) - CST%XGAMW ) / PT(:,:)         &
             )                                                             &
-           - ZDEDT(IIJB:IIJE,IKTB:IKTE)                                                   &
+           - ZDEDT(:,:)                                                   &
           )
   END IF
   !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=IKTB:IKTE)
@@ -193,61 +193,61 @@ IF ( KRRL >= 1 ) THEN
     !
     !*       Ls/Cph
     !
-    ZLSOCP(IIJB:IIJE,IKTB:IKTE) = (CST%XLSTT + (CST%XCPV-CST%XCI) *  (PT(IIJB:IIJE,IKTB:IKTE)-CST%XTT) ) / &
-                                        & ZCP(IIJB:IIJE,IKTB:IKTE)
+    ZLSOCP(:,:) = (CST%XLSTT + (CST%XCPV-CST%XCI) *  (PT(:,:)-CST%XTT) ) / &
+                                        & ZCP(:,:)
     !
     !*      Saturation vapor pressure with respect to ice
     !
-    ZE(IIJB:IIJE,IKTB:IKTE) =  EXP(CST%XALPI - CST%XBETAI/PT(IIJB:IIJE,IKTB:IKTE) - &
-                                          &CST%XGAMI*ALOG( PT(IIJB:IIJE,IKTB:IKTE) ) )
+    ZE(:,:) =  EXP(CST%XALPI - CST%XBETAI/PT(:,:) - &
+                                          &CST%XGAMI*ALOG( PT(:,:) ) )
     !
     !*      Saturation  mixing ratio with respect to ice
     !
-    ZE(IIJB:IIJE,IKTB:IKTE) =  ZE(IIJB:IIJE,IKTB:IKTE) * ZEPS / &
-                                    & ( PPABS(IIJB:IIJE,IKTB:IKTE) - ZE(IIJB:IIJE,IKTB:IKTE) )
+    ZE(:,:) =  ZE(:,:) * ZEPS / &
+                                    & ( PPABS(:,:) - ZE(:,:) )
     !
     !*      Compute the saturation mixing ratio derivative (rvs')
     !
-    ZDEDT(IIJB:IIJE,IKTB:IKTE) = (CST%XBETAI/PT(IIJB:IIJE,IKTB:IKTE)-CST%XGAMI) /PT(IIJB:IIJE,IKTB:IKTE)&
-                   * ZE(IIJB:IIJE,IKTB:IKTE) * ( 1. + ZE(IIJB:IIJE,IKTB:IKTE) / ZEPS )
+    ZDEDT(:,:) = (CST%XBETAI/PT(:,:)-CST%XGAMI) /PT(:,:)&
+                   * ZE(:,:) * ( 1. + ZE(:,:) / ZEPS )
     !
     !*      Compute Amoist and Atheta
     !
     IF (OSTATNW) THEN
-      ZAMOIST_I(IIJB:IIJE,IKTB:IKTE)= 1.0/( 1.0 + ZDEDT(IIJB:IIJE,IKTB:IKTE) *ZLVOCP(IIJB:IIJE,IKTB:IKTE))
-      ZATHETA_I(IIJB:IIJE,IKTB:IKTE)= ZAMOIST_I(IIJB:IIJE,IKTB:IKTE) * PEXN(IIJB:IIJE,IKTB:IKTE) &
-                                            * ZDEDT(IIJB:IIJE,IKTB:IKTE)
+      ZAMOIST_I(:,:)= 1.0/( 1.0 + ZDEDT(:,:) *ZLVOCP(:,:))
+      ZATHETA_I(:,:)= ZAMOIST_I(:,:) * PEXN(:,:) &
+                                            * ZDEDT(:,:)
     ELSE
-      ZAMOIST_I(IIJB:IIJE,IKTB:IKTE)= 0.5/(1.0 + ZDEDT(IIJB:IIJE,IKTB:IKTE) * ZLSOCP(IIJB:IIJE,IKTB:IKTE))
-      ZATHETA_I(IIJB:IIJE,IKTB:IKTE)= ZAMOIST_I(IIJB:IIJE,IKTB:IKTE) * PEXN(IIJB:IIJE,IKTB:IKTE) *      &
-        ( ( ZE(IIJB:IIJE,IKTB:IKTE) - PR(IIJB:IIJE,IKTB:IKTE,1) ) * ZLSOCP(IIJB:IIJE,IKTB:IKTE) /       &
-          ( 1. + ZDEDT(IIJB:IIJE,IKTB:IKTE) * ZLSOCP(IIJB:IIJE,IKTB:IKTE) )           *              &
+      ZAMOIST_I(:,:)= 0.5/(1.0 + ZDEDT(:,:) * ZLSOCP(:,:))
+      ZATHETA_I(:,:)= ZAMOIST_I(:,:) * PEXN(:,:) *      &
+        ( ( ZE(:,:) - PR(:,:,1) ) * ZLSOCP(:,:) /       &
+          ( 1. + ZDEDT(:,:) * ZLSOCP(:,:) )           *              &
           (                                                             &
-           ZE(IIJB:IIJE,IKTB:IKTE) * (1. + ZE(IIJB:IIJE,IKTB:IKTE)/ZEPS)                                &
-                        * ( -2.*CST%XBETAI/PT(IIJB:IIJE,IKTB:IKTE) + CST%XGAMI ) / PT(IIJB:IIJE,IKTB:IKTE)**2   &
-          +ZDEDT(IIJB:IIJE,IKTB:IKTE) * (1. + 2. * ZE(IIJB:IIJE,IKTB:IKTE)/ZEPS)                        &
-                        * ( CST%XBETAI/PT(IIJB:IIJE,IKTB:IKTE) - CST%XGAMI ) / PT(IIJB:IIJE,IKTB:IKTE)          &
+           ZE(:,:) * (1. + ZE(:,:)/ZEPS)                                &
+                        * ( -2.*CST%XBETAI/PT(:,:) + CST%XGAMI ) / PT(:,:)**2   &
+          +ZDEDT(:,:) * (1. + 2. * ZE(:,:)/ZEPS)                        &
+                        * ( CST%XBETAI/PT(:,:) - CST%XGAMI ) / PT(:,:)          &
           )                                                             &
-         - ZDEDT(IIJB:IIJE,IKTB:IKTE)                                                   &
+         - ZDEDT(:,:)                                                   &
         )
     END IF
     !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=IKTB:IKTE)
 
   ELSE
-    ZAMOIST_I(IIJB:IIJE,IKTB:IKTE)=0.
-    ZATHETA_I(IIJB:IIJE,IKTB:IKTE)=0.
+    ZAMOIST_I(:,:)=0.
+    ZATHETA_I(:,:)=0.
   ENDIF
 
   !$mnh_expand_array(JIJ=IIJB:IIJE,JK=IKTB:IKTE)
-  PAMOIST(IIJB:IIJE,IKTB:IKTE) = (1.0-PFRAC_ICE(IIJB:IIJE,IKTB:IKTE))*ZAMOIST_W(IIJB:IIJE,IKTB:IKTE) &
-                         +PFRAC_ICE(IIJB:IIJE,IKTB:IKTE) *ZAMOIST_I(IIJB:IIJE,IKTB:IKTE)
-  PATHETA(IIJB:IIJE,IKTB:IKTE) = (1.0-PFRAC_ICE(IIJB:IIJE,IKTB:IKTE))*ZATHETA_W(IIJB:IIJE,IKTB:IKTE) &
-                         +PFRAC_ICE(IIJB:IIJE,IKTB:IKTE) *ZATHETA_I(IIJB:IIJE,IKTB:IKTE)
+  PAMOIST(:,:) = (1.0-PFRAC_ICE(:,:))*ZAMOIST_W(:,:) &
+                         +PFRAC_ICE(:,:) *ZAMOIST_I(:,:)
+  PATHETA(:,:) = (1.0-PFRAC_ICE(:,:))*ZATHETA_W(:,:) &
+                         +PFRAC_ICE(:,:) *ZATHETA_I(:,:)
   !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=IKTB:IKTE)
   !
 ELSE
-  PAMOIST(IIJB:IIJE,IKTB:IKTE) = 0.
-  PATHETA(IIJB:IIJE,IKTB:IKTE) = 0.
+  PAMOIST(:,:) = 0.
+  PATHETA(:,:) = 0.
 ENDIF
 IF (LHOOK) CALL DR_HOOK('COMPUTE_FUNCTION_THERMO_MF',1,ZHOOK_HANDLE)
 END SUBROUTINE COMPUTE_FUNCTION_THERMO_MF
diff --git a/src/PHYEX/turb/mode_compute_mf_cloud_bigaus.f90 b/src/PHYEX/turb/mode_compute_mf_cloud_bigaus.f90
index a34c6e46f1d6db259eda3aa9062aeac8b481be3f..a9bd850469bcbe06e7b6d74a8828e0f07c1f5480 100644
--- a/src/PHYEX/turb/mode_compute_mf_cloud_bigaus.f90
+++ b/src/PHYEX/turb/mode_compute_mf_cloud_bigaus.f90
@@ -135,44 +135,44 @@ ZOMEGA_UP_M(:)=0.
 DO JK=IKB,IKE-IKL,IKL
   !$mnh_expand_array(JIJ=IIJB:IIJE)
   !Vertical integration over the entire column but only buoyant points are used
-  !ZOMEGA_UP_M(IIJB:IIJE)=ZOMEGA_UP_M(IIJB:IIJE) + &
-  !                ZEMF_M(IIJB:IIJE,JK) * &
-  !                MAX(0.,(ZTHV_UP_M(IIJB:IIJE,JK)-PTHVM(IIJB:IIJE,JK))) * &
-  !                (PZZ(IIJB:IIJE,JK+KKL)-PZZ(IIJB:IIJE,JK)) / &
-  !                (PTHM(IIJB:IIJE,JK) * PRHODREF(IIJB:IIJE,JK))
+  !ZOMEGA_UP_M(:)=ZOMEGA_UP_M(:) + &
+  !                ZEMF_M(:,JK) * &
+  !                MAX(0.,(ZTHV_UP_M(:,JK)-PTHVM(:,JK))) * &
+  !                (PZZ(:,JK+KKL)-PZZ(:,JK)) / &
+  !                (PTHM(:,JK) * PRHODREF(:,JK))
 
   !Vertical integration over the entire column
-  ZOMEGA_UP_M(IIJB:IIJE)=ZOMEGA_UP_M(IIJB:IIJE) + &
-                 ZEMF_M(IIJB:IIJE,JK) * &
-                 (ZTHV_UP_M(IIJB:IIJE,JK)-PTHVM(IIJB:IIJE,JK)) * &
-                 (PZZ(IIJB:IIJE,JK+IKL)-PZZ(IIJB:IIJE,JK)) / &
-                 (PTHM(IIJB:IIJE,JK) * PRHODREF(IIJB:IIJE,JK))
+  ZOMEGA_UP_M(:)=ZOMEGA_UP_M(:) + &
+                 ZEMF_M(:,JK) * &
+                 (ZTHV_UP_M(:,JK)-PTHVM(:,JK)) * &
+                 (PZZ(:,JK+IKL)-PZZ(:,JK)) / &
+                 (PTHM(:,JK) * PRHODREF(:,JK))
   !$mnh_end_expand_array(JIJ=IIJB:IIJE)
 ENDDO
 !$mnh_expand_array(JIJ=IIJB:IIJE)
-ZOMEGA_UP_M(IIJB:IIJE)=MAX(ZOMEGA_UP_M(IIJB:IIJE), 1.E-20)
-ZOMEGA_UP_M(IIJB:IIJE)=(CST%XG*ZOMEGA_UP_M(IIJB:IIJE))**(1./3.)
+ZOMEGA_UP_M(:)=MAX(ZOMEGA_UP_M(:), 1.E-20)
+ZOMEGA_UP_M(:)=(CST%XG*ZOMEGA_UP_M(:))**(1./3.)
 !$mnh_end_expand_array(JIJ=IIJB:IIJE)
 
 !computation of alpha up
 DO JK=IKA,IKU,IKL
   !$mnh_expand_array(JIJ=IIJB:IIJE)
-  ZALPHA_UP_M(IIJB:IIJE,JK)=ZEMF_M(IIJB:IIJE,JK)/(PARAMMF%XALPHA_MF*PRHODREF(IIJB:IIJE,JK)*ZOMEGA_UP_M(IIJB:IIJE))
-  ZALPHA_UP_M(IIJB:IIJE,JK)=MAX(0., MIN(ZALPHA_UP_M(IIJB:IIJE,JK), 1.))
+  ZALPHA_UP_M(:,JK)=ZEMF_M(:,JK)/(PARAMMF%XALPHA_MF*PRHODREF(:,JK)*ZOMEGA_UP_M(:))
+  ZALPHA_UP_M(:,JK)=MAX(0., MIN(ZALPHA_UP_M(:,JK), 1.))
   !$mnh_end_expand_array(JIJ=IIJB:IIJE)
 ENDDO
 
 !computation of sigma of the distribution
 DO JK=IKA,IKU,IKL
   !$mnh_expand_array(JIJ=IIJB:IIJE)
-  ZSIGMF(IIJB:IIJE,JK)=ZEMF_M(IIJB:IIJE,JK) * &
-               (ZRT_UP_M(IIJB:IIJE,JK) - PRTM(IIJB:IIJE,JK)) * &
-               PDEPTH(IIJB:IIJE) * ZGRAD_Z_RT(IIJB:IIJE,JK) / &
-               (PARAMMF%XSIGMA_MF * ZOMEGA_UP_M(IIJB:IIJE) * PRHODREF(IIJB:IIJE,JK))
+  ZSIGMF(:,JK)=ZEMF_M(:,JK) * &
+               (ZRT_UP_M(:,JK) - PRTM(:,JK)) * &
+               PDEPTH(:) * ZGRAD_Z_RT(:,JK) / &
+               (PARAMMF%XSIGMA_MF * ZOMEGA_UP_M(:) * PRHODREF(:,JK))
   !$mnh_end_expand_array(JIJ=IIJB:IIJE)
 ENDDO
 !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-ZSIGMF(IIJB:IIJE,1:IKT)=SQRT(MAX(ABS(ZSIGMF(IIJB:IIJE,1:IKT)), 1.E-40))
+ZSIGMF(:,:)=SQRT(MAX(ABS(ZSIGMF(:,:)), 1.E-40))
 !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 !
 !*      2. PDF integration
@@ -181,22 +181,22 @@ ZSIGMF(IIJB:IIJE,1:IKT)=SQRT(MAX(ABS(ZSIGMF(IIJB:IIJE,1:IKT)), 1.E-40))
 !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 !The mean of the distribution is ZRT_UP
 !Computation of ZA and ZGAM (=efrc(ZA)) coefficient
-ZA(IIJB:IIJE,1:IKT)=(ZRSAT_UP_M(IIJB:IIJE,1:IKT)-ZRT_UP_M(IIJB:IIJE,1:IKT))/&
-                         &(sqrt(2.)*ZSIGMF(IIJB:IIJE,1:IKT))
+ZA(:,:)=(ZRSAT_UP_M(:,:)-ZRT_UP_M(:,:))/&
+                         &(sqrt(2.)*ZSIGMF(:,:))
 
 !Approximation of erf function
-ZGAM(IIJB:IIJE,1:IKT)=1-SIGN(1., ZA(IIJB:IIJE,1:IKT))*SQRT(1-EXP(-4*ZA(IIJB:IIJE,1:IKT)**2/CST%XPI))
+ZGAM(:,:)=1-SIGN(1., ZA(:,:))*SQRT(1-EXP(-4*ZA(:,:)**2/CST%XPI))
 
 !computation of cloud fraction
-PCF_MF(IIJB:IIJE,1:IKT)=MAX( 0., MIN(1.,0.5*ZGAM(IIJB:IIJE,1:IKT) * ZALPHA_UP_M(IIJB:IIJE,1:IKT)))
+PCF_MF(:,:)=MAX( 0., MIN(1.,0.5*ZGAM(:,:) * ZALPHA_UP_M(:,:)))
 
 !computation of condensate, then PRC and PRI
-ZCOND(IIJB:IIJE,1:IKT)=(EXP(-ZA(IIJB:IIJE,1:IKT)**2)-&
-                             &ZA(IIJB:IIJE,1:IKT)*SQRT(CST%XPI)*ZGAM(IIJB:IIJE,1:IKT))* &
-                    &ZSIGMF(IIJB:IIJE,1:IKT)/SQRT(2.*CST%XPI) * ZALPHA_UP_M(IIJB:IIJE,1:IKT)
-ZCOND(IIJB:IIJE,1:IKT)=MAX(ZCOND(IIJB:IIJE,1:IKT), 0.) !due to approximation of ZGAM value, ZCOND could be slightly negative
-PRC_MF(IIJB:IIJE,1:IKT)=(1.-ZFRAC_ICE_UP_M(IIJB:IIJE,1:IKT)) * ZCOND(IIJB:IIJE,1:IKT)
-PRI_MF(IIJB:IIJE,1:IKT)=(   ZFRAC_ICE_UP_M(IIJB:IIJE,1:IKT)) * ZCOND(IIJB:IIJE,1:IKT)
+ZCOND(:,:)=(EXP(-ZA(:,:)**2)-&
+                             &ZA(:,:)*SQRT(CST%XPI)*ZGAM(:,:))* &
+                    &ZSIGMF(:,:)/SQRT(2.*CST%XPI) * ZALPHA_UP_M(:,:)
+ZCOND(:,:)=MAX(ZCOND(:,:), 0.) !due to approximation of ZGAM value, ZCOND could be slightly negative
+PRC_MF(:,:)=(1.-ZFRAC_ICE_UP_M(:,:)) * ZCOND(:,:)
+PRI_MF(:,:)=(   ZFRAC_ICE_UP_M(:,:)) * ZCOND(:,:)
 !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 !
 IF (LHOOK) CALL DR_HOOK('COMPUTE_MF_CLOUD_BIGAUS',1,ZHOOK_HANDLE)
diff --git a/src/PHYEX/turb/mode_compute_mf_cloud_stat.f90 b/src/PHYEX/turb/mode_compute_mf_cloud_stat.f90
index 3c562015e63667859aa1862c251baf0493e0e948..027cc3c7906d9c326412da3c3f955aa347219e57 100644
--- a/src/PHYEX/turb/mode_compute_mf_cloud_stat.f90
+++ b/src/PHYEX/turb/mode_compute_mf_cloud_stat.f90
@@ -131,25 +131,25 @@ IF (KRRL > 0)  THEN
     CALL GZ_M_W_MF(D, PTHLM(:,:), PDZZ(:,:), ZWK(:,:))
     IF (OSTATNW) THEN
       !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-      ZFLXZ(IIJB:IIJE,1:IKT) = -2 * CSTURB%XCTV* PARAMMF%XTAUSIGMF * PEMF(IIJB:IIJE,1:IKT)* &
-                           & (PTHL_UP(IIJB:IIJE,1:IKT)-ZFLXZ(IIJB:IIJE,1:IKT)) * ZWK(IIJB:IIJE,1:IKT)
+      ZFLXZ(:,:) = -2 * CSTURB%XCTV* PARAMMF%XTAUSIGMF * PEMF(:,:)* &
+                           & (PTHL_UP(:,:)-ZFLXZ(:,:)) * ZWK(:,:)
       !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
     ELSE
       !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-      ZFLXZ(IIJB:IIJE,1:IKT) = -2 * PARAMMF%XTAUSIGMF * PEMF(IIJB:IIJE,1:IKT)* &
-                           & (PTHL_UP(IIJB:IIJE,1:IKT)-ZFLXZ(IIJB:IIJE,1:IKT)) * ZWK(IIJB:IIJE,1:IKT)
+      ZFLXZ(:,:) = -2 * PARAMMF%XTAUSIGMF * PEMF(:,:)* &
+                           & (PTHL_UP(:,:)-ZFLXZ(:,:)) * ZWK(:,:)
       !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
     END IF
     !
     !   Avoid negative values
     !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-    ZFLXZ(IIJB:IIJE,1:IKT) = MAX(0.,ZFLXZ(IIJB:IIJE,1:IKT))
+    ZFLXZ(:,:) = MAX(0.,ZFLXZ(:,:))
     !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 
 
     CALL MZF_MF(D, ZFLXZ(:,:), PSIGMF(:,:))
     !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-    PSIGMF(IIJB:IIJE,1:IKT) = PSIGMF(IIJB:IIJE,1:IKT) * ZATHETA(IIJB:IIJE,1:IKT)**2
+    PSIGMF(:,:) = PSIGMF(:,:) * ZATHETA(:,:)**2
     !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 
 !
@@ -163,48 +163,48 @@ IF (KRRL > 0)  THEN
     CALL GZ_M_W_MF(D, PRTM(:,:), PDZZ(:,:), ZWK2(:,:))
     IF (OSTATNW) THEN
       !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-      ZFLXZ2(IIJB:IIJE,1:IKT) = -2 * CSTURB%XCTV * PARAMMF%XTAUSIGMF * PEMF(IIJB:IIJE,1:IKT)* &
-                           & (PRT_UP(IIJB:IIJE,1:IKT)-ZFLXZ2(IIJB:IIJE,1:IKT)) * ZWK2(IIJB:IIJE,1:IKT)
+      ZFLXZ2(:,:) = -2 * CSTURB%XCTV * PARAMMF%XTAUSIGMF * PEMF(:,:)* &
+                           & (PRT_UP(:,:)-ZFLXZ2(:,:)) * ZWK2(:,:)
       !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
     ELSE
       !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-      ZFLXZ2(IIJB:IIJE,1:IKT) = -2 * PARAMMF%XTAUSIGMF * PEMF(IIJB:IIJE,1:IKT)* &
-                           & (PRT_UP(IIJB:IIJE,1:IKT)-ZFLXZ2(IIJB:IIJE,1:IKT)) * ZWK2(IIJB:IIJE,1:IKT) 
+      ZFLXZ2(:,:) = -2 * PARAMMF%XTAUSIGMF * PEMF(:,:)* &
+                           & (PRT_UP(:,:)-ZFLXZ2(:,:)) * ZWK2(:,:) 
       !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
     END IF
     !
     !   Avoid negative values
     !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-    ZFLXZ2(IIJB:IIJE,1:IKT) = MAX(0.,ZFLXZ2(IIJB:IIJE,1:IKT))
+    ZFLXZ2(:,:) = MAX(0.,ZFLXZ2(:,:))
     !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 
     CALL MZF_MF(D, ZFLXZ2(:,:), ZWK2(:,:))
     !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-    PSIGMF(IIJB:IIJE,1:IKT) = PSIGMF(IIJB:IIJE,1:IKT) + ZAMOIST(IIJB:IIJE,1:IKT) **2 *ZWK2(IIJB:IIJE,1:IKT)
+    PSIGMF(:,:) = PSIGMF(:,:) + ZAMOIST(:,:) **2 *ZWK2(:,:)
     !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
     IF (OSTATNW) THEN
       !wc Now including convection covariance contribution in case of OSTATNW=TRUE
       !
       !       1.2.2 contribution from <Rnp Thl>
       !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-      ZFLXZ3(IIJB:IIJE,1:IKT) = - CSTURB%XCTV * PARAMMF%XTAUSIGMF * &
-                    (PEMF(IIJB:IIJE,1:IKT)*(PRT_UP(IIJB:IIJE,1:IKT)-ZFLXZ2(IIJB:IIJE,1:IKT)) * &
-                                   ZWK(IIJB:IIJE,1:IKT) + &
-                                   PEMF(IIJB:IIJE,1:IKT)*(PTHL_UP(IIJB:IIJE,1:IKT)-ZFLXZ(IIJB:IIJE,1:IKT)) * &
-                                   ZWK2(IIJB:IIJE,1:IKT))
+      ZFLXZ3(:,:) = - CSTURB%XCTV * PARAMMF%XTAUSIGMF * &
+                    (PEMF(:,:)*(PRT_UP(:,:)-ZFLXZ2(:,:)) * &
+                                   ZWK(:,:) + &
+                                   PEMF(:,:)*(PTHL_UP(:,:)-ZFLXZ(:,:)) * &
+                                   ZWK2(:,:))
       !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
       CALL MZF_MF(D, ZFLXZ3, ZFLXZ)
       !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-      PSIGMF(IIJB:IIJE,1:IKT) = PSIGMF(IIJB:IIJE,1:IKT) - &
-                                MIN(0.,2.*ZAMOIST(IIJB:IIJE,1:IKT)*ZATHETA(IIJB:IIJE,1:IKT)*&
-                                      &ZFLXZ(IIJB:IIJE,1:IKT))
+      PSIGMF(:,:) = PSIGMF(:,:) - &
+                                MIN(0.,2.*ZAMOIST(:,:)*ZATHETA(:,:)*&
+                                      &ZFLXZ(:,:))
       !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
     ENDIF
 !
 !        1.3  Vertical part of Sigma_s
 !
     !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-    PSIGMF(IIJB:IIJE,1:IKT) =  SQRT( MAX (PSIGMF(IIJB:IIJE,1:IKT) , 0.) )
+    PSIGMF(:,:) =  SQRT( MAX (PSIGMF(:,:) , 0.) )
     !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 ELSE
   PSIGMF(:,:) = 0.
diff --git a/src/PHYEX/turb/mode_compute_updraft.f90 b/src/PHYEX/turb/mode_compute_updraft.f90
index 5e9389b857af9b3b61dec13310470696b4287d21..6dc98937cf12519875bce491bd190d226658f874 100644
--- a/src/PHYEX/turb/mode_compute_updraft.f90
+++ b/src/PHYEX/turb/mode_compute_updraft.f90
@@ -287,7 +287,7 @@ IF (OENTR_DETR) THEN
 
   PFRAC_ICE_UP(:,:)=0.
   !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-  PRSAT_UP(IIJB:IIJE,1:IKT)=PRVM(IIJB:IIJE,1:IKT) ! should be initialised correctly but is (normaly) not used
+  PRSAT_UP(:,:)=PRVM(:,:) ! should be initialised correctly but is (normaly) not used
   !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 
   !cloud/dry air mixture cloud content
@@ -311,22 +311,22 @@ END DO
 !                     
 !          Initialisation of updraft characteristics 
 !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-PTHL_UP(IIJB:IIJE,1:IKT)=ZTHLM_F(IIJB:IIJE,1:IKT)
-PRT_UP(IIJB:IIJE,1:IKT)=ZRTM_F(IIJB:IIJE,1:IKT)
-PU_UP(IIJB:IIJE,1:IKT)=ZUM_F(IIJB:IIJE,1:IKT)
-PV_UP(IIJB:IIJE,1:IKT)=ZVM_F(IIJB:IIJE,1:IKT)
+PTHL_UP(:,:)=ZTHLM_F(:,:)
+PRT_UP(:,:)=ZRTM_F(:,:)
+PU_UP(:,:)=ZUM_F(:,:)
+PV_UP(:,:)=ZVM_F(:,:)
 !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT,JSV=1:KSV)
-PSV_UP(IIJB:IIJE,1:IKT,:)=ZSVM_F(IIJB:IIJE,1:IKT,:)
+PSV_UP(:,:,:)=ZSVM_F(:,:,:)
 !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT,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(JIJ=IIJB:IIJE)
-PTHL_UP(IIJB:IIJE,IKB)= ZTHLM_F(IIJB:IIJE,IKB)+ &
-                            & MAX(0.,MIN(ZTMAX,(PSFTH(IIJB:IIJE)/SQRT(ZTKEM_F(IIJB:IIJE,IKB)))* PARAMMF%XALP_PERT))
-PRT_UP(IIJB:IIJE,IKB) = ZRTM_F(IIJB:IIJE,IKB)+ &
-                            & MAX(0.,MIN(ZRMAX,(PSFRV(IIJB:IIJE)/SQRT(ZTKEM_F(IIJB:IIJE,IKB)))* PARAMMF%XALP_PERT)) 
+PTHL_UP(:,IKB)= ZTHLM_F(:,IKB)+ &
+                            & MAX(0.,MIN(ZTMAX,(PSFTH(:)/SQRT(ZTKEM_F(:,IKB)))* PARAMMF%XALP_PERT))
+PRT_UP(:,IKB) = ZRTM_F(:,IKB)+ &
+                            & MAX(0.,MIN(ZRMAX,(PSFRV(:)/SQRT(ZTKEM_F(:,IKB)))* PARAMMF%XALP_PERT)) 
 !$mnh_end_expand_array(JIJ=IIJB:IIJE)
 
 IF (OENTR_DETR) THEN
@@ -337,17 +337,17 @@ IF (OENTR_DETR) THEN
 
   !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
   ! thetav at mass and flux levels
-  ZTHVM_F(IIJB:IIJE,1:IKT)=ZTHM_F(IIJB:IIJE,1:IKT)* &
-                                    &((1.+ZRVORD*ZRVM_F(IIJB:IIJE,1:IKT))/(1.+ZRTM_F(IIJB:IIJE,1:IKT)))
-  ZTHVM(IIJB:IIJE,1:IKT)=PTHM(IIJB:IIJE,1:IKT)* &
-                                    &((1.+ZRVORD*PRVM(IIJB:IIJE,1:IKT))/(1.+PRTM(IIJB:IIJE,1:IKT)))
+  ZTHVM_F(:,:)=ZTHM_F(:,:)* &
+                                    &((1.+ZRVORD*ZRVM_F(:,:))/(1.+ZRTM_F(:,:)))
+  ZTHVM(:,:)=PTHM(:,:)* &
+                                    &((1.+ZRVORD*PRVM(:,:))/(1.+PRTM(:,:)))
 
-  PTHV_UP(IIJB:IIJE,1:IKT)=ZTHVM_F(IIJB:IIJE,1:IKT)
+  PTHV_UP(:,:)=ZTHVM_F(:,:)
   !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 
   ZW_UP2(:,:)=0.
   !$mnh_expand_array(JIJ=IIJB:IIJE)
-  ZW_UP2(IIJB:IIJE,IKB) = MAX(0.0001,(2./3.)*ZTKEM_F(IIJB:IIJE,IKB))
+  ZW_UP2(:,IKB) = MAX(0.0001,(2./3.)*ZTKEM_F(:,IKB))
 
   ! Computation of non conservative variable for the KKB level of the updraft
   ! (all or nothing ajustement)
@@ -361,23 +361,23 @@ IF (OENTR_DETR) THEN
 
   !$mnh_expand_array(JIJ=IIJB:IIJE)
   ! compute updraft thevav and buoyancy term at KKB level
-  PTHV_UP(IIJB:IIJE,IKB) = ZTH_UP(IIJB:IIJE,IKB)*&
-                               & ((1+ZRVORD*PRV_UP(IIJB:IIJE,IKB))/(1+PRT_UP(IIJB:IIJE,IKB)))
+  PTHV_UP(:,IKB) = ZTH_UP(:,IKB)*&
+                               & ((1+ZRVORD*PRV_UP(:,IKB))/(1+PRT_UP(:,IKB)))
   ! compute mean rsat in updraft
-  PRSAT_UP(IIJB:IIJE,IKB) = ZRSATW(IIJB:IIJE)*(1-PFRAC_ICE_UP(IIJB:IIJE,IKB)) + &
-                              & ZRSATI(IIJB:IIJE)*PFRAC_ICE_UP(IIJB:IIJE,IKB)
+  PRSAT_UP(:,IKB) = ZRSATW(:)*(1-PFRAC_ICE_UP(:,IKB)) + &
+                              & ZRSATI(:)*PFRAC_ICE_UP(:,IKB)
   !$mnh_end_expand_array(JIJ=IIJB:IIJE)
   ! Closure assumption for mass flux at KKB level
   !
 
   !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-  ZG_O_THVREF(IIJB:IIJE,1:IKT)=CST%XG/ZTHVM_F(IIJB:IIJE,1:IKT)
+  ZG_O_THVREF(:,:)=CST%XG/ZTHVM_F(:,:)
   !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 
   ! compute L_up
   GLMIX=.TRUE.
   !$mnh_expand_array(JIJ=IIJB:IIJE)
-  ZTKEM_F(IIJB:IIJE,IKB)=0.
+  ZTKEM_F(:,IKB)=0.
   !$mnh_end_expand_array(JIJ=IIJB:IIJE)
   !
   IF(TURBN%CTURBLEN=='RM17') THEN
@@ -386,7 +386,7 @@ IF (OENTR_DETR) THEN
     CALL GZ_M_W_MF(D, PVM, PDZZ, ZWK)
     CALL MZF_MF(D, ZWK, ZDVDZ)
     !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-    ZSHEAR(IIJB:IIJE,1:IKT) = SQRT(ZDUDZ(IIJB:IIJE,1:IKT)**2 + ZDVDZ(IIJB:IIJE,1:IKT)**2)
+    ZSHEAR(:,:) = SQRT(ZDUDZ(:,:)**2 + ZDVDZ(:,:)**2)
     !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
   ELSE
     ZSHEAR = 0. !no shear in bl89 mixing length
@@ -400,36 +400,36 @@ IF (OENTR_DETR) THEN
                       &ZG_O_THVREF(:,IKB),ZTHVM,IKB,GLMIX,.FALSE.,ZSHEAR,ZLUP)
 #endif
   !$mnh_expand_where(JIJ=IIJB:IIJE)
-  ZLUP(IIJB:IIJE)=MAX(ZLUP(IIJB:IIJE),1.E-10)
+  ZLUP(:)=MAX(ZLUP(:),1.E-10)
 
   ! Compute Buoyancy flux at the ground
-  ZWTHVSURF(IIJB:IIJE) = (ZTHVM_F(IIJB:IIJE,IKB)/ZTHM_F(IIJB:IIJE,IKB))*PSFTH(IIJB:IIJE)+     &
-                (0.61*ZTHM_F(IIJB:IIJE,IKB))*PSFRV(IIJB:IIJE)
+  ZWTHVSURF(:) = (ZTHVM_F(:,IKB)/ZTHM_F(:,IKB))*PSFTH(:)+     &
+                (0.61*ZTHM_F(:,IKB))*PSFRV(:)
 
   ! Mass flux at KKB level (updraft triggered if PSFTH>0.)
   IF (PARAMMF%LGZ) THEN
     IF(PDX==0. .OR. PDY==0.) THEN                                                                                                   
       CALL PRINT_MSG(NVERB_FATAL, 'GEN', 'COMPUTE_UPDRAFT', 'PDX or PDY is NULL with option LGZ!')                                  
     ENDIF
-    ZSURF(IIJB:IIJE)=TANH(PARAMMF%XGZ*SQRT(PDX*PDY)/ZLUP(IIJB:IIJE))
+    ZSURF(:)=TANH(PARAMMF%XGZ*SQRT(PDX*PDY)/ZLUP(:))
   ELSE
-    ZSURF(IIJB:IIJE)=1.
+    ZSURF(:)=1.
   END IF
-  WHERE (ZWTHVSURF(IIJB:IIJE)>0.)
-    PEMF(IIJB:IIJE,IKB) = PARAMMF%XCMF * ZSURF(IIJB:IIJE) * ZRHO_F(IIJB:IIJE,IKB) *  &
-            ((ZG_O_THVREF(IIJB:IIJE,IKB))*ZWTHVSURF(IIJB:IIJE)*ZLUP(IIJB:IIJE))**(1./3.)
-    PFRAC_UP(IIJB:IIJE,IKB)=MIN(PEMF(IIJB:IIJE,IKB)/(SQRT(ZW_UP2(IIJB:IIJE,IKB))*ZRHO_F(IIJB:IIJE,IKB)), &
+  WHERE (ZWTHVSURF(:)>0.)
+    PEMF(:,IKB) = PARAMMF%XCMF * ZSURF(:) * ZRHO_F(:,IKB) *  &
+            ((ZG_O_THVREF(:,IKB))*ZWTHVSURF(:)*ZLUP(:))**(1./3.)
+    PFRAC_UP(:,IKB)=MIN(PEMF(:,IKB)/(SQRT(ZW_UP2(:,IKB))*ZRHO_F(:,IKB)), &
                                    &PARAMMF%XFRAC_UP_MAX)
-    ZW_UP2(IIJB:IIJE,IKB)=(PEMF(IIJB:IIJE,IKB)/(PFRAC_UP(IIJB:IIJE,IKB)*ZRHO_F(IIJB:IIJE,IKB)))**2
-    GTEST(IIJB:IIJE)=.TRUE.
+    ZW_UP2(:,IKB)=(PEMF(:,IKB)/(PFRAC_UP(:,IKB)*ZRHO_F(:,IKB)))**2
+    GTEST(:)=.TRUE.
   ELSEWHERE
-    PEMF(IIJB:IIJE,IKB) =0.
-    GTEST(IIJB:IIJE)=.FALSE.
+    PEMF(:,IKB) =0.
+    GTEST(:)=.FALSE.
   ENDWHERE
   !$mnh_end_expand_where(JIJ=IIJB:IIJE)
 ELSE
   !$mnh_expand_array(JIJ=IIJB:IIJE)
-  GTEST(IIJB:IIJE)=PEMF(IIJB:IIJE,IKB+IKL)>0.
+  GTEST(:)=PEMF(:,IKB+IKL)>0.
   !$mnh_end_expand_array(JIJ=IIJB:IIJE)
 END IF
 
@@ -449,7 +449,7 @@ GTESTETL(:)=.FALSE.
 DO JK=IKB,IKE-IKL,IKL
 
   ! IF the updraft top is reached for all column, stop the loop on levels
-  ITEST=COUNT(GTEST(IIJB:IIJE))
+  ITEST=COUNT(GTEST(:))
   IF (ITEST==0) CYCLE
 
   !       Computation of entrainment and detrainment with KF90
@@ -458,9 +458,9 @@ DO JK=IKB,IKE-IKL,IKL
 
   ! to find the LCL (check if JK is LCL or not)
   !$mnh_expand_where(JIJ=IIJB:IIJE)
-  WHERE ((PRC_UP(IIJB:IIJE,JK)+PRI_UP(IIJB:IIJE,JK)>0.).AND.(.NOT.(GTESTLCL(IIJB:IIJE))))
-      KKLCL(IIJB:IIJE) = JK           
-      GTESTLCL(IIJB:IIJE)=.TRUE.
+  WHERE ((PRC_UP(:,JK)+PRI_UP(:,JK)>0.).AND.(.NOT.(GTESTLCL(:))))
+      KKLCL(:) = JK           
+      GTESTLCL(:)=.TRUE.
   ENDWHERE
   !$mnh_end_expand_where(JIJ=IIJB:IIJE)
 
@@ -468,8 +468,8 @@ DO JK=IKB,IKE-IKL,IKL
   IF (OENTR_DETR) THEN
     IF(JK/=IKB) THEN
       !$mnh_expand_array(JIJ=IIJB:IIJE)
-      ZRC_MIX(IIJB:IIJE,JK) = ZRC_MIX(IIJB:IIJE,JK-IKL) ! guess of Rc of mixture
-      ZRI_MIX(IIJB:IIJE,JK) = ZRI_MIX(IIJB:IIJE,JK-IKL) ! guess of Ri of mixture
+      ZRC_MIX(:,JK) = ZRC_MIX(:,JK-IKL) ! guess of Rc of mixture
+      ZRI_MIX(:,JK) = ZRI_MIX(:,JK-IKL) ! guess of Ri of mixture
       !$mnh_end_expand_array(JIJ=IIJB:IIJE)
     ENDIF
     CALL COMPUTE_ENTR_DETR(D, CST, NEB, PARAMMF, JK,IKB,IKE,IKL,GTEST,GTESTLCL,HFRAC_ICE,PFRAC_ICE_UP(:,JK),&
@@ -483,34 +483,34 @@ DO JK=IKB,IKE-IKL,IKL
                            ZBUO_INTEG_DRY(:,JK), ZBUO_INTEG_CLD(:,JK), &
                            ZPART_DRY(:)   )
     !$mnh_expand_where(JIJ=IIJB:IIJE)
-    PBUO_INTEG(IIJB:IIJE,JK)=ZBUO_INTEG_DRY(IIJB:IIJE,JK)+ZBUO_INTEG_CLD(IIJB:IIJE,JK)
+    PBUO_INTEG(:,JK)=ZBUO_INTEG_DRY(:,JK)+ZBUO_INTEG_CLD(:,JK)
 
     IF (JK==IKB) THEN
-       PDETR(IIJB:IIJE,JK)=0.
-       ZDETR_CLD(IIJB:IIJE,JK)=0.
+       PDETR(:,JK)=0.
+       ZDETR_CLD(:,JK)=0.
     ENDIF   
  
     !       Computation of updraft characteristics at level JK+KKL
-    WHERE(GTEST(IIJB:IIJE))
-      ZMIX1(IIJB:IIJE)=0.5*(PZZ(IIJB:IIJE,JK+IKL)-PZZ(IIJB:IIJE,JK))*&
-                          &(PENTR(IIJB:IIJE,JK)-PDETR(IIJB:IIJE,JK))
-      PEMF(IIJB:IIJE,JK+IKL)=PEMF(IIJB:IIJE,JK)*EXP(2*ZMIX1(IIJB:IIJE))
+    WHERE(GTEST(:))
+      ZMIX1(:)=0.5*(PZZ(:,JK+IKL)-PZZ(:,JK))*&
+                          &(PENTR(:,JK)-PDETR(:,JK))
+      PEMF(:,JK+IKL)=PEMF(:,JK)*EXP(2*ZMIX1(:))
     ENDWHERE
     !$mnh_end_expand_where(JIJ=IIJB:IIJE)
   ELSE !OENTR_DETR
     !$mnh_expand_array(JIJ=IIJB:IIJE)
-    GTEST(IIJB:IIJE) = (PEMF(IIJB:IIJE,JK+IKL)>0.)
+    GTEST(:) = (PEMF(:,JK+IKL)>0.)
     !$mnh_end_expand_array(JIJ=IIJB:IIJE)
   END IF !OENTR_DETR
   
   ! stop the updraft if MF becomes negative
   !$mnh_expand_where(JIJ=IIJB:IIJE)
-  WHERE (GTEST(IIJB:IIJE).AND.(PEMF(IIJB:IIJE,JK+IKL)<=0.))
-    PEMF(IIJB:IIJE,JK+IKL)=0.
-    KKCTL(IIJB:IIJE) = JK+IKL
-    GTEST(IIJB:IIJE)=.FALSE.
-    PFRAC_ICE_UP(IIJB:IIJE,JK+IKL)=PFRAC_ICE_UP(IIJB:IIJE,JK)
-    PRSAT_UP(IIJB:IIJE,JK+IKL)=PRSAT_UP(IIJB:IIJE,JK)
+  WHERE (GTEST(:).AND.(PEMF(:,JK+IKL)<=0.))
+    PEMF(:,JK+IKL)=0.
+    KKCTL(:) = JK+IKL
+    GTEST(:)=.FALSE.
+    PFRAC_ICE_UP(:,JK+IKL)=PFRAC_ICE_UP(:,JK)
+    PRSAT_UP(:,JK+IKL)=PRSAT_UP(:,JK)
   ENDWHERE
   !$mnh_end_expand_where(JIJ=IIJB:IIJE)
 
@@ -535,34 +535,34 @@ DO JK=IKB,IKE-IKL,IKL
   IF(PARAMMF%LMIXUV) THEN
     IF(JK/=IKB) THEN
       !$mnh_expand_where(JIJ=IIJB:IIJE)
-      WHERE(GTEST(IIJB:IIJE))
-        PU_UP(IIJB:IIJE,JK+IKL) = (PU_UP(IIJB:IIJE,JK)*(1-0.5*ZMIX2(IIJB:IIJE)) + &
-                                        &PUM(IIJB:IIJE,JK)*ZMIX2(IIJB:IIJE)+ &
-                          0.5*PARAMMF%XPRES_UV*(PZZ(IIJB:IIJE,JK+IKL)-PZZ(IIJB:IIJE,JK))*&
-                          ((PUM(IIJB:IIJE,JK+IKL)-PUM(IIJB:IIJE,JK))/PDZZ(IIJB:IIJE,JK+IKL)+&
-                           (PUM(IIJB:IIJE,JK)-PUM(IIJB:IIJE,JK-IKL))/PDZZ(IIJB:IIJE,JK))        )   &
-                          /(1+0.5*ZMIX2(IIJB:IIJE))
-        PV_UP(IIJB:IIJE,JK+IKL) = (PV_UP(IIJB:IIJE,JK)*(1-0.5*ZMIX2(IIJB:IIJE)) + &
-                                        &PVM(IIJB:IIJE,JK)*ZMIX2(IIJB:IIJE)+ &
-                          0.5*PARAMMF%XPRES_UV*(PZZ(IIJB:IIJE,JK+IKL)-PZZ(IIJB:IIJE,JK))*&
-                          ((PVM(IIJB:IIJE,JK+IKL)-PVM(IIJB:IIJE,JK))/PDZZ(IIJB:IIJE,JK+IKL)+&
-                           (PVM(IIJB:IIJE,JK)-PVM(IIJB:IIJE,JK-IKL))/PDZZ(IIJB:IIJE,JK))    )   &
-                          /(1+0.5*ZMIX2(IIJB:IIJE))
+      WHERE(GTEST(:))
+        PU_UP(:,JK+IKL) = (PU_UP(:,JK)*(1-0.5*ZMIX2(:)) + &
+                                        &PUM(:,JK)*ZMIX2(:)+ &
+                          0.5*PARAMMF%XPRES_UV*(PZZ(:,JK+IKL)-PZZ(:,JK))*&
+                          ((PUM(:,JK+IKL)-PUM(:,JK))/PDZZ(:,JK+IKL)+&
+                           (PUM(:,JK)-PUM(:,JK-IKL))/PDZZ(:,JK))        )   &
+                          /(1+0.5*ZMIX2(:))
+        PV_UP(:,JK+IKL) = (PV_UP(:,JK)*(1-0.5*ZMIX2(:)) + &
+                                        &PVM(:,JK)*ZMIX2(:)+ &
+                          0.5*PARAMMF%XPRES_UV*(PZZ(:,JK+IKL)-PZZ(:,JK))*&
+                          ((PVM(:,JK+IKL)-PVM(:,JK))/PDZZ(:,JK+IKL)+&
+                           (PVM(:,JK)-PVM(:,JK-IKL))/PDZZ(:,JK))    )   &
+                          /(1+0.5*ZMIX2(:))
       ENDWHERE
       !$mnh_end_expand_where(JIJ=IIJB:IIJE)
     ELSE
       !$mnh_expand_where(JIJ=IIJB:IIJE)
-      WHERE(GTEST(IIJB:IIJE))
-        PU_UP(IIJB:IIJE,JK+IKL) = (PU_UP(IIJB:IIJE,JK)*(1-0.5*ZMIX2(IIJB:IIJE)) + &
-                                        &PUM(IIJB:IIJE,JK)*ZMIX2(IIJB:IIJE)+ &
-                          0.5*PARAMMF%XPRES_UV*(PZZ(IIJB:IIJE,JK+IKL)-PZZ(IIJB:IIJE,JK))*&
-                          ((PUM(IIJB:IIJE,JK+IKL)-PUM(IIJB:IIJE,JK))/PDZZ(IIJB:IIJE,JK+IKL))        )   &
-                          /(1+0.5*ZMIX2(IIJB:IIJE))
-        PV_UP(IIJB:IIJE,JK+IKL) = (PV_UP(IIJB:IIJE,JK)*(1-0.5*ZMIX2(IIJB:IIJE)) + &
-                                        &PVM(IIJB:IIJE,JK)*ZMIX2(IIJB:IIJE)+ &
-                          0.5*PARAMMF%XPRES_UV*(PZZ(IIJB:IIJE,JK+IKL)-PZZ(IIJB:IIJE,JK))*&
-                          ((PVM(IIJB:IIJE,JK+IKL)-PVM(IIJB:IIJE,JK))/PDZZ(IIJB:IIJE,JK+IKL))    )   &
-                          /(1+0.5*ZMIX2(IIJB:IIJE))
+      WHERE(GTEST(:))
+        PU_UP(:,JK+IKL) = (PU_UP(:,JK)*(1-0.5*ZMIX2(:)) + &
+                                        &PUM(:,JK)*ZMIX2(:)+ &
+                          0.5*PARAMMF%XPRES_UV*(PZZ(:,JK+IKL)-PZZ(:,JK))*&
+                          ((PUM(:,JK+IKL)-PUM(:,JK))/PDZZ(:,JK+IKL))        )   &
+                          /(1+0.5*ZMIX2(:))
+        PV_UP(:,JK+IKL) = (PV_UP(:,JK)*(1-0.5*ZMIX2(:)) + &
+                                        &PVM(:,JK)*ZMIX2(:)+ &
+                          0.5*PARAMMF%XPRES_UV*(PZZ(:,JK+IKL)-PZZ(:,JK))*&
+                          ((PVM(:,JK+IKL)-PVM(:,JK))/PDZZ(:,JK+IKL))    )   &
+                          /(1+0.5*ZMIX2(:))
       ENDWHERE
       !$mnh_end_expand_where(JIJ=IIJB:IIJE)
     ENDIF
@@ -570,9 +570,9 @@ DO JK=IKB,IKE-IKL,IKL
   DO JSV=1,KSV 
     IF (ONOMIXLG .AND. JSV >= KSV_LGBEG .AND. JSV<= KSV_LGEND) CYCLE
     !$mnh_expand_where(JIJ=IIJB:IIJE)
-    WHERE(GTEST(IIJB:IIJE)) 
-      PSV_UP(IIJB:IIJE,JK+IKL,JSV) = (PSV_UP(IIJB:IIJE,JK,JSV)*(1-0.5*ZMIX2(IIJB:IIJE)) + &
-                   PSVM(IIJB:IIJE,JK,JSV)*ZMIX2(IIJB:IIJE))  /(1+0.5*ZMIX2(IIJB:IIJE))
+    WHERE(GTEST(:)) 
+      PSV_UP(:,JK+IKL,JSV) = (PSV_UP(:,JK,JSV)*(1-0.5*ZMIX2(:)) + &
+                   PSVM(:,JK,JSV)*ZMIX2(:))  /(1+0.5*ZMIX2(:))
     ENDWHERE
     !$mnh_end_expand_where(JIJ=IIJB:IIJE)
   END DO  
@@ -581,81 +581,81 @@ DO JK=IKB,IKE-IKL,IKL
 
     ! Compute non cons. var. at level JK+KKL
     !$mnh_expand_array(JIJ=IIJB:IIJE)
-    ZRC_UP(IIJB:IIJE)=PRC_UP(IIJB:IIJE,JK) ! guess = level just below
-    ZRI_UP(IIJB:IIJE)=PRI_UP(IIJB:IIJE,JK) ! guess = level just below
+    ZRC_UP(:)=PRC_UP(:,JK) ! guess = level just below
+    ZRI_UP(:)=PRI_UP(:,JK) ! guess = level just below
     !$mnh_end_expand_array(JIJ=IIJB:IIJE)
     CALL TH_R_FROM_THL_RT(CST, NEB, D%NIJT, HFRAC_ICE,PFRAC_ICE_UP(:,JK+IKL),ZPRES_F(:,JK+IKL), &
             PTHL_UP(:,JK+IKL),PRT_UP(:,JK+IKL),ZTH_UP(:,JK+IKL),              &
             ZRV_UP(:),ZRC_UP(:),ZRI_UP(:),ZRSATW(:),ZRSATI(:), OOCEAN=.FALSE., &
             PBUF=ZBUF(:,:), KB=D%NIJB, KE=D%NIJE)
     !$mnh_expand_where(JIJ=IIJB:IIJE)
-    WHERE(GTEST(IIJB:IIJE))
-      PRC_UP(IIJB:IIJE,JK+IKL)=ZRC_UP(IIJB:IIJE)
-      PRV_UP(IIJB:IIJE,JK+IKL)=ZRV_UP(IIJB:IIJE)
-      PRI_UP(IIJB:IIJE,JK+IKL)=ZRI_UP(IIJB:IIJE)
-      PRSAT_UP(IIJB:IIJE,JK+IKL) = ZRSATW(IIJB:IIJE)*(1-PFRAC_ICE_UP(IIJB:IIJE,JK+IKL)) + &
-                                     & ZRSATI(IIJB:IIJE)*PFRAC_ICE_UP(IIJB:IIJE,JK+IKL)
+    WHERE(GTEST(:))
+      PRC_UP(:,JK+IKL)=ZRC_UP(:)
+      PRV_UP(:,JK+IKL)=ZRV_UP(:)
+      PRI_UP(:,JK+IKL)=ZRI_UP(:)
+      PRSAT_UP(:,JK+IKL) = ZRSATW(:)*(1-PFRAC_ICE_UP(:,JK+IKL)) + &
+                                     & ZRSATI(:)*PFRAC_ICE_UP(:,JK+IKL)
     ENDWHERE
 
     ! Compute the updraft theta_v, buoyancy and w**2 for level JK+KKL
-    WHERE(GTEST(IIJB:IIJE))
-      PTHV_UP(IIJB:IIJE,JK+IKL) = ZTH_UP(IIJB:IIJE,JK+IKL)* &
-                                    & ((1+ZRVORD*PRV_UP(IIJB:IIJE,JK+IKL))/(1+PRT_UP(IIJB:IIJE,JK+IKL)))
-      WHERE (ZBUO_INTEG_DRY(IIJB:IIJE,JK)>0.)
-        ZW_UP2(IIJB:IIJE,JK+IKL)  = ZW_UP2(IIJB:IIJE,JK) + 2.*(PARAMMF%XABUO-PARAMMF%XBENTR*PARAMMF%XENTR_DRY)* &
-                                                                &ZBUO_INTEG_DRY(IIJB:IIJE,JK)
+    WHERE(GTEST(:))
+      PTHV_UP(:,JK+IKL) = ZTH_UP(:,JK+IKL)* &
+                                    & ((1+ZRVORD*PRV_UP(:,JK+IKL))/(1+PRT_UP(:,JK+IKL)))
+      WHERE (ZBUO_INTEG_DRY(:,JK)>0.)
+        ZW_UP2(:,JK+IKL)  = ZW_UP2(:,JK) + 2.*(PARAMMF%XABUO-PARAMMF%XBENTR*PARAMMF%XENTR_DRY)* &
+                                                                &ZBUO_INTEG_DRY(:,JK)
       ELSEWHERE
-        ZW_UP2(IIJB:IIJE,JK+IKL)  = ZW_UP2(IIJB:IIJE,JK) + 2.*PARAMMF%XABUO* ZBUO_INTEG_DRY(IIJB:IIJE,JK)
+        ZW_UP2(:,JK+IKL)  = ZW_UP2(:,JK) + 2.*PARAMMF%XABUO* ZBUO_INTEG_DRY(:,JK)
       ENDWHERE
-      ZW_UP2(IIJB:IIJE,JK+IKL)  = ZW_UP2(IIJB:IIJE,JK+IKL)*(1.-(PARAMMF%XBDETR*ZMIX3_CLD(IIJB:IIJE)+ &
-                                                                       &PARAMMF%XBENTR*ZMIX2_CLD(IIJB:IIJE)))&
-              /(1.+(PARAMMF%XBDETR*ZMIX3_CLD(IIJB:IIJE)+PARAMMF%XBENTR*ZMIX2_CLD(IIJB:IIJE))) &
-              +2.*(PARAMMF%XABUO)*ZBUO_INTEG_CLD(IIJB:IIJE,JK)/ &
-              &(1.+(PARAMMF%XBDETR*ZMIX3_CLD(IIJB:IIJE)+PARAMMF%XBENTR*ZMIX2_CLD(IIJB:IIJE)))
+      ZW_UP2(:,JK+IKL)  = ZW_UP2(:,JK+IKL)*(1.-(PARAMMF%XBDETR*ZMIX3_CLD(:)+ &
+                                                                       &PARAMMF%XBENTR*ZMIX2_CLD(:)))&
+              /(1.+(PARAMMF%XBDETR*ZMIX3_CLD(:)+PARAMMF%XBENTR*ZMIX2_CLD(:))) &
+              +2.*(PARAMMF%XABUO)*ZBUO_INTEG_CLD(:,JK)/ &
+              &(1.+(PARAMMF%XBDETR*ZMIX3_CLD(:)+PARAMMF%XBENTR*ZMIX2_CLD(:)))
     ENDWHERE
 
     ! Test if the updraft has reach the ETL
-    WHERE (GTEST(IIJB:IIJE).AND.(PBUO_INTEG(IIJB:IIJE,JK)<=0.))
-      KKETL(IIJB:IIJE) = JK+IKL
-      GTESTETL(IIJB:IIJE)=.TRUE.
+    WHERE (GTEST(:).AND.(PBUO_INTEG(:,JK)<=0.))
+      KKETL(:) = JK+IKL
+      GTESTETL(:)=.TRUE.
     ELSEWHERE
-      GTESTETL(IIJB:IIJE)=.FALSE.
+      GTESTETL(:)=.FALSE.
     ENDWHERE
 
     ! Test is we have reached the top of the updraft
-    WHERE (GTEST(IIJB:IIJE).AND.((ZW_UP2(IIJB:IIJE,JK+IKL)<=0.).OR.(PEMF(IIJB:IIJE,JK+IKL)<=0.)))
-        ZW_UP2(IIJB:IIJE,JK+IKL)=0.
-        PEMF(IIJB:IIJE,JK+IKL)=0.
-        GTEST(IIJB:IIJE)=.FALSE.
-        PTHL_UP(IIJB:IIJE,JK+IKL)=ZTHLM_F(IIJB:IIJE,JK+IKL)
-        PRT_UP(IIJB:IIJE,JK+IKL)=ZRTM_F(IIJB:IIJE,JK+IKL)
-        PRC_UP(IIJB:IIJE,JK+IKL)=0.
-        PRI_UP(IIJB:IIJE,JK+IKL)=0.
-        PRV_UP(IIJB:IIJE,JK+IKL)=0.
-        PTHV_UP(IIJB:IIJE,JK+IKL)=ZTHVM_F(IIJB:IIJE,JK+IKL)
-        PFRAC_UP(IIJB:IIJE,JK+IKL)=0.
-        KKCTL(IIJB:IIJE)=JK+IKL
+    WHERE (GTEST(:).AND.((ZW_UP2(:,JK+IKL)<=0.).OR.(PEMF(:,JK+IKL)<=0.)))
+        ZW_UP2(:,JK+IKL)=0.
+        PEMF(:,JK+IKL)=0.
+        GTEST(:)=.FALSE.
+        PTHL_UP(:,JK+IKL)=ZTHLM_F(:,JK+IKL)
+        PRT_UP(:,JK+IKL)=ZRTM_F(:,JK+IKL)
+        PRC_UP(:,JK+IKL)=0.
+        PRI_UP(:,JK+IKL)=0.
+        PRV_UP(:,JK+IKL)=0.
+        PTHV_UP(:,JK+IKL)=ZTHVM_F(:,JK+IKL)
+        PFRAC_UP(:,JK+IKL)=0.
+        KKCTL(:)=JK+IKL
     ENDWHERE
  
     ! compute frac_up at JK+KKL
-    WHERE (GTEST(IIJB:IIJE))
-      PFRAC_UP(IIJB:IIJE,JK+IKL)=PEMF(IIJB:IIJE,JK+IKL)/&
-                                      &(SQRT(ZW_UP2(IIJB:IIJE,JK+IKL))*ZRHO_F(IIJB:IIJE,JK+IKL))
+    WHERE (GTEST(:))
+      PFRAC_UP(:,JK+IKL)=PEMF(:,JK+IKL)/&
+                                      &(SQRT(ZW_UP2(:,JK+IKL))*ZRHO_F(:,JK+IKL))
     ENDWHERE
 
     ! Updraft fraction must be smaller than XFRAC_UP_MAX
-    WHERE (GTEST(IIJB:IIJE))
-      PFRAC_UP(IIJB:IIJE,JK+IKL)=MIN(PARAMMF%XFRAC_UP_MAX,PFRAC_UP(IIJB:IIJE,JK+IKL))
+    WHERE (GTEST(:))
+      PFRAC_UP(:,JK+IKL)=MIN(PARAMMF%XFRAC_UP_MAX,PFRAC_UP(:,JK+IKL))
     ENDWHERE
 
     ! When cloudy and non-buoyant, updraft fraction must decrease
-    WHERE ((GTEST(IIJB:IIJE).AND.GTESTETL(IIJB:IIJE)).AND.GTESTLCL(IIJB:IIJE))
-      PFRAC_UP(IIJB:IIJE,JK+IKL)=MIN(PFRAC_UP(IIJB:IIJE,JK+IKL),PFRAC_UP(IIJB:IIJE,JK))
+    WHERE ((GTEST(:).AND.GTESTETL(:)).AND.GTESTLCL(:))
+      PFRAC_UP(:,JK+IKL)=MIN(PFRAC_UP(:,JK+IKL),PFRAC_UP(:,JK))
     ENDWHERE
 
     ! Mass flux is updated with the new updraft fraction
-    IF (OENTR_DETR) PEMF(IIJB:IIJE,JK+IKL)=PFRAC_UP(IIJB:IIJE,JK+IKL)*SQRT(ZW_UP2(IIJB:IIJE,JK+IKL))* &
-                                              &ZRHO_F(IIJB:IIJE,JK+IKL)
+    IF (OENTR_DETR) PEMF(:,JK+IKL)=PFRAC_UP(:,JK+IKL)*SQRT(ZW_UP2(:,JK+IKL))* &
+                                              &ZRHO_F(:,JK+IKL)
     !$mnh_end_expand_where(JIJ=IIJB:IIJE)
 
   END IF !OENTR_DETR
@@ -664,11 +664,11 @@ ENDDO
 IF(OENTR_DETR) THEN
 
   !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-  PW_UP(IIJB:IIJE,1:IKT)=SQRT(ZW_UP2(IIJB:IIJE,1:IKT))
+  PW_UP(:,:)=SQRT(ZW_UP2(:,:))
   !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 
   !$mnh_expand_array(JIJ=IIJB:IIJE)
-  PEMF(IIJB:IIJE,IKB) =0.
+  PEMF(:,IKB) =0.
   !$mnh_end_expand_array(JIJ=IIJB:IIJE)
 
   ! Limits the shallow convection scheme when cloud heigth is higher than 3000m.
@@ -682,19 +682,19 @@ IF(OENTR_DETR) THEN
   END DO
 
   !$mnh_expand_array(JIJ=IIJB:IIJE)
-  GWORK1(IIJB:IIJE)= (GTESTLCL(IIJB:IIJE) .AND. (PDEPTH(IIJB:IIJE) > ZDEPTH_MAX1) )
+  GWORK1(:)= (GTESTLCL(:) .AND. (PDEPTH(:) > ZDEPTH_MAX1) )
   !$mnh_end_expand_array(JIJ=IIJB:IIJE)
   DO JK=1,IKT
     !$mnh_expand_array(JIJ=IIJB:IIJE)
-    GWORK2(IIJB:IIJE,JK) = GWORK1(IIJB:IIJE)
-    ZCOEF(IIJB:IIJE,JK) = (1.-(PDEPTH(IIJB:IIJE)-ZDEPTH_MAX1)/(ZDEPTH_MAX2-ZDEPTH_MAX1))
-    ZCOEF(IIJB:IIJE,JK)=MIN(MAX(ZCOEF(IIJB:IIJE,JK),0.),1.)
+    GWORK2(:,JK) = GWORK1(:)
+    ZCOEF(:,JK) = (1.-(PDEPTH(:)-ZDEPTH_MAX1)/(ZDEPTH_MAX2-ZDEPTH_MAX1))
+    ZCOEF(:,JK)=MIN(MAX(ZCOEF(:,JK),0.),1.)
     !$mnh_end_expand_array(JIJ=IIJB:IIJE)
   ENDDO
   !$mnh_expand_where(JIJ=IIJB:IIJE,JK=1:IKT)
-  WHERE (GWORK2(IIJB:IIJE,1:IKT)) 
-    PEMF(IIJB:IIJE,1:IKT)     = PEMF(IIJB:IIJE,1:IKT)     * ZCOEF(IIJB:IIJE,1:IKT)
-    PFRAC_UP(IIJB:IIJE,1:IKT) = PFRAC_UP(IIJB:IIJE,1:IKT) * ZCOEF(IIJB:IIJE,1:IKT)
+  WHERE (GWORK2(:,:)) 
+    PEMF(:,:)     = PEMF(:,:)     * ZCOEF(:,:)
+    PFRAC_UP(:,:) = PFRAC_UP(:,:) * ZCOEF(:,:)
   ENDWHERE
   !$mnh_end_expand_where(JIJ=IIJB:IIJE,JK=1:IKT)
 ENDIF
@@ -837,11 +837,11 @@ REAL, DIMENSION(D%NIJT),   INTENT(OUT)    ::  PPART_DRY ! ratio of dry part at t
   
 ZCOEFFMF_CLOUD=PARAMMF%XENTR_MF * CST%XG / PARAMMF%XCRAD_MF
 !$mnh_expand_array(JIJ=IIJB:IIJE)
-ZG_O_THVREF_ED(IIJB:IIJE)=CST%XG/PTHVM(IIJB:IIJE,KK)
+ZG_O_THVREF_ED(:)=CST%XG/PTHVM(:,KK)
 
-ZFRAC_ICE(IIJB:IIJE)=PFRAC_ICE(IIJB:IIJE) ! to not modify fraction of ice
+ZFRAC_ICE(:)=PFRAC_ICE(:) ! to not modify fraction of ice
 
-ZPRE(IIJB:IIJE)=PPRE_MINUS_HALF(IIJB:IIJE)
+ZPRE(:)=PPRE_MINUS_HALF(:)
 !$mnh_end_expand_array(JIJ=IIJB:IIJE)
 
 !                1.4 Estimation of PPART_DRY
@@ -880,16 +880,16 @@ END DO
 !               1.5 Gradient and flux values of thetav
 !$mnh_expand_array(JIJ=IIJB:IIJE)
 IF(KK/=KKB)THEN
-  ZCOEFF_MINUS_HALF(IIJB:IIJE)=((PTHVM(IIJB:IIJE,KK)-PTHVM(IIJB:IIJE,KK-KKL))/PDZZ(IIJB:IIJE,KK))
-  ZTHV_MINUS_HALF(IIJB:IIJE) = PTHVM(IIJB:IIJE,KK) - &
-                               & ZCOEFF_MINUS_HALF(IIJB:IIJE)*0.5*(PZZ(IIJB:IIJE,KK+KKL)-PZZ(IIJB:IIJE,KK))
+  ZCOEFF_MINUS_HALF(:)=((PTHVM(:,KK)-PTHVM(:,KK-KKL))/PDZZ(:,KK))
+  ZTHV_MINUS_HALF(:) = PTHVM(:,KK) - &
+                               & ZCOEFF_MINUS_HALF(:)*0.5*(PZZ(:,KK+KKL)-PZZ(:,KK))
 ELSE
-  ZCOEFF_MINUS_HALF(IIJB:IIJE)=0.
-  ZTHV_MINUS_HALF(IIJB:IIJE) = PTHVM(IIJB:IIJE,KK)
+  ZCOEFF_MINUS_HALF(:)=0.
+  ZTHV_MINUS_HALF(:) = PTHVM(:,KK)
 ENDIF
-ZCOEFF_PLUS_HALF(IIJB:IIJE)  = ((PTHVM(IIJB:IIJE,KK+KKL)-PTHVM(IIJB:IIJE,KK))/PDZZ(IIJB:IIJE,KK+KKL))
-ZTHV_PLUS_HALF(IIJB:IIJE)  = PTHVM(IIJB:IIJE,KK) + &
-                             & ZCOEFF_PLUS_HALF(IIJB:IIJE)*0.5*(PZZ(IIJB:IIJE,KK+KKL)-PZZ(IIJB:IIJE,KK))
+ZCOEFF_PLUS_HALF(:)  = ((PTHVM(:,KK+KKL)-PTHVM(:,KK))/PDZZ(:,KK+KKL))
+ZTHV_PLUS_HALF(:)  = PTHVM(:,KK) + &
+                             & ZCOEFF_PLUS_HALF(:)*0.5*(PZZ(:,KK+KKL)-PZZ(:,KK))
 !$mnh_end_expand_array(JIJ=IIJB:IIJE)
 
 !               2  Dry part computation:
@@ -946,8 +946,8 @@ ENDDO
 !MIX variables are used to avoid declaring new variables
 !but we are dealing with updraft and not mixture
 !$mnh_expand_array(JIJ=IIJB:IIJE)
-ZRCMIX(IIJB:IIJE)=PRC_UP(IIJB:IIJE)
-ZRIMIX(IIJB:IIJE)=PRI_UP(IIJB:IIJE)
+ZRCMIX(:)=PRC_UP(:)
+ZRIMIX(:)=PRI_UP(:)
 !$mnh_end_expand_array(JIJ=IIJB:IIJE)
 CALL TH_R_FROM_THL_RT(CST,NEB,D%NIJT,HFRAC_ICE,ZFRAC_ICE,&
              PPRE_PLUS_HALF,PTHL_UP,PRT_UP,&
@@ -955,7 +955,7 @@ CALL TH_R_FROM_THL_RT(CST,NEB,D%NIJT,HFRAC_ICE,ZFRAC_ICE,&
              ZRSATW_ED, ZRSATI_ED,OOCEAN=.FALSE.,&
              PBUF=ZBUF, KB=D%NIJB, KE=D%NIJE)
 !$mnh_expand_array(JIJ=IIJB:IIJE)
-ZTHV_UP_F2(IIJB:IIJE) = ZTHMIX(IIJB:IIJE)*(1.+ZRVORD*ZRVMIX(IIJB:IIJE))/(1.+PRT_UP(IIJB:IIJE))
+ZTHV_UP_F2(:) = ZTHMIX(:)*(1.+ZRVORD*ZRVMIX(:))/(1.+PRT_UP(:))
 !$mnh_end_expand_array(JIJ=IIJB:IIJE)
 
 ! Integral buoyancy for cloudy part
@@ -1021,11 +1021,7 @@ DO JIJ=IIJB,IIJE
                (PRTM(JIJ,KK)-ZDZ*(PRTM(JIJ,KK)-PRTM(JIJ,JKLIM))/PDZZ(JIJ,KK)) + &
                (1. - ZKIC_INIT)*PRT_UP(JIJ)
   ELSE
-#ifdef REPRO55
-    ZMIXTHL(JIJ) = 0.1
-#else
     ZMIXTHL(JIJ) = 300.
-#endif
     ZMIXRT(JIJ) = 0.1
   ENDIF
 ENDDO
@@ -1035,13 +1031,13 @@ CALL TH_R_FROM_THL_RT(CST,NEB,D%NIJT,HFRAC_ICE,ZFRAC_ICE,&
              ZRSATW_ED, ZRSATI_ED,OOCEAN=.FALSE.,&
              PBUF=ZBUF, KB=D%NIJB, KE=D%NIJE)
 !$mnh_expand_array(JIJ=IIJB:IIJE)
-ZTHVMIX(IIJB:IIJE) = ZTHMIX(IIJB:IIJE)*(1.+ZRVORD*ZRVMIX(IIJB:IIJE))/(1.+ZMIXRT(IIJB:IIJE))
+ZTHVMIX(:) = ZTHMIX(:)*(1.+ZRVORD*ZRVMIX(:))/(1.+ZMIXRT(:))
 
 !  Compute cons then non cons. var. of mixture at the flux level KK+KKL  with initial ZKIC
-ZMIXTHL(IIJB:IIJE) = ZKIC_INIT * 0.5*(PTHLM(IIJB:IIJE,KK)+PTHLM(IIJB:IIJE,KK+KKL))+&
-                       & (1. - ZKIC_INIT)*PTHL_UP(IIJB:IIJE)
-ZMIXRT(IIJB:IIJE)  = ZKIC_INIT * 0.5*(PRTM(IIJB:IIJE,KK)+PRTM(IIJB:IIJE,KK+KKL))+&
-                       & (1. - ZKIC_INIT)*PRT_UP(IIJB:IIJE)
+ZMIXTHL(:) = ZKIC_INIT * 0.5*(PTHLM(:,KK)+PTHLM(:,KK+KKL))+&
+                       & (1. - ZKIC_INIT)*PTHL_UP(:)
+ZMIXRT(:)  = ZKIC_INIT * 0.5*(PRTM(:,KK)+PRTM(:,KK+KKL))+&
+                       & (1. - ZKIC_INIT)*PRT_UP(:)
 !$mnh_end_expand_array(JIJ=IIJB:IIJE)
 CALL TH_R_FROM_THL_RT(CST,NEB,D%NIJT,HFRAC_ICE,ZFRAC_ICE,&
              PPRE_PLUS_HALF,ZMIXTHL,ZMIXRT,&
@@ -1049,7 +1045,7 @@ CALL TH_R_FROM_THL_RT(CST,NEB,D%NIJT,HFRAC_ICE,ZFRAC_ICE,&
              ZRSATW_ED, ZRSATI_ED,OOCEAN=.FALSE.,&
              PBUF=ZBUF, KB=D%NIJB, KE=D%NIJE)
 !$mnh_expand_array(JIJ=IIJB:IIJE)
-ZTHVMIX_F2(IIJB:IIJE) = ZTHMIX(IIJB:IIJE)*(1.+ZRVORD*ZRVMIX(IIJB:IIJE))/(1.+ZMIXRT(IIJB:IIJE))
+ZTHVMIX_F2(:) = ZTHMIX(:)*(1.+ZRVORD*ZRVMIX(:))/(1.+ZMIXRT(:))
 !$mnh_end_expand_array(JIJ=IIJB:IIJE)
 
 !Computation of mean ZKIC over the cloudy part
@@ -1093,14 +1089,14 @@ 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(IIJB:IIJE))
+!WHERE(OTEST(:))
 !  !Integration multiplied by 2
 !  WHERE(ZKIC<0.5)
-!    ZEPSI(IIJB:IIJE)=8.*ZKIC(IIJB:IIJE)**3/3.
-!    ZDELTA(IIJB:IIJE)=1.-4.*ZKIC(IIJB:IIJE)**2+8.*ZKIC(IIJB:IIJE)**3/3.
+!    ZEPSI(:)=8.*ZKIC(:)**3/3.
+!    ZDELTA(:)=1.-4.*ZKIC(:)**2+8.*ZKIC(:)**3/3.
 !  ELSEWHERE
-!    ZEPSI(IIJB:IIJE)=5./3.-4*ZKIC(IIJB:IIJE)**2+8.*ZKIC(IIJB:IIJE)**3/3.
-!    ZDELTA(IIJB:IIJE)=8.*(1.-ZKIC(IIJB:IIJE))**3/3.
+!    ZEPSI(:)=5./3.-4*ZKIC(:)**2+8.*ZKIC(:)**3/3.
+!    ZDELTA(:)=8.*(1.-ZKIC(:))**3/3.
 !  ENDWHERE
 !ENDWHERE
 
diff --git a/src/PHYEX/turb/mode_compute_updraft_raha.f90 b/src/PHYEX/turb/mode_compute_updraft_raha.f90
index 042afa8ffb717fd0f20f8cca318a6d38c9b49054..b8b4969997b0f412ee8b5c3859d419fa4893f3c0 100644
--- a/src/PHYEX/turb/mode_compute_updraft_raha.f90
+++ b/src/PHYEX/turb/mode_compute_updraft_raha.f90
@@ -245,7 +245,7 @@ ZBUO(:,:)      =0.
 PRI_UP(:,:)=0.
 PFRAC_ICE_UP(:,:)=0.
 !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-PRSAT_UP(IIJB:IIJE,1:IKT)=PRVM(IIJB:IIJE,1:IKT) ! should be initialised correctly but is (normaly) not used
+PRSAT_UP(:,:)=PRVM(:,:) ! should be initialised correctly but is (normaly) not used
 !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 
 ! Initialisation of environment variables at t-dt
@@ -259,33 +259,33 @@ CALL MZM_MF(D, PTKEM(:,:), ZTKEM_F(:,:))
 
 !DO JSV=1,ISV 
 ! IF (ONOMIXLG .AND. JSV >= KSV_LGBEG .AND. JSV<= KSV_LGEND) CYCLE
-!   ZSVM_F(IIJB:IIJE,KKB:IKU,JSV) = 0.5*(PSVM(IIJB:IIJE,KKB:IKU,JSV)+PSVM(IIJB:IIJE,1:IKU-1,JSV))
-!   ZSVM_F(IIJB:IIJE,1,JSV)       = ZSVM_F(IIJB:IIJE,KKB,JSV) 
+!   ZSVM_F(:,KKB:IKU,JSV) = 0.5*(PSVM(:,KKB:IKU,JSV)+PSVM(:,1:IKU-1,JSV))
+!   ZSVM_F(:,1,JSV)       = ZSVM_F(:,KKB,JSV) 
 !END DO  
 
 !          Initialisation of updraft characteristics 
 !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-PTHL_UP(IIJB:IIJE,1:IKT)=ZTHLM_F(IIJB:IIJE,1:IKT)
-PRT_UP(IIJB:IIJE,1:IKT)=ZRTM_F(IIJB:IIJE,1:IKT)
-PU_UP(IIJB:IIJE,1:IKT)=ZUM_F(IIJB:IIJE,1:IKT)
-PV_UP(IIJB:IIJE,1:IKT)=ZVM_F(IIJB:IIJE,1:IKT)
+PTHL_UP(:,:)=ZTHLM_F(:,:)
+PRT_UP(:,:)=ZRTM_F(:,:)
+PU_UP(:,:)=ZUM_F(:,:)
+PV_UP(:,:)=ZVM_F(:,:)
 !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 PSV_UP(:,:,:)=0.
 !IF (ONOMIXLG .AND. JSV >= KSV_LGBEG .AND. JSV<= KSV_LGEND) then
-!    PSV_UP(IIJB:IIJE,:,:)=ZSVM_F(IIJB:IIJE,:,:)
+!    PSV_UP(:,:,:)=ZSVM_F(:,:,:)
 !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(JIJ=IIJB:IIJE)
-PTHL_UP(IIJB:IIJE,IKB)= ZTHLM_F(IIJB:IIJE,IKB)+ &
-                          & MAX(0.,MIN(ZTMAX,(PSFTH(IIJB:IIJE)/SQRT(ZTKEM_F(IIJB:IIJE,IKB)))*PARAMMF%XALP_PERT))
-PRT_UP(IIJB:IIJE,IKB) = ZRTM_F(IIJB:IIJE,IKB)+ &
-                          & MAX(0.,MIN(ZRMAX,(PSFRV(IIJB:IIJE)/SQRT(ZTKEM_F(IIJB:IIJE,IKB)))*PARAMMF%XALP_PERT)) 
+PTHL_UP(:,IKB)= ZTHLM_F(:,IKB)+ &
+                          & MAX(0.,MIN(ZTMAX,(PSFTH(:)/SQRT(ZTKEM_F(:,IKB)))*PARAMMF%XALP_PERT))
+PRT_UP(:,IKB) = ZRTM_F(:,IKB)+ &
+                          & MAX(0.,MIN(ZRMAX,(PSFRV(:)/SQRT(ZTKEM_F(:,IKB)))*PARAMMF%XALP_PERT)) 
 
-ZQT_UP(IIJB:IIJE) = PRT_UP(IIJB:IIJE,IKB)/(1.+PRT_UP(IIJB:IIJE,IKB))
-ZTHS_UP(IIJB:IIJE,IKB)=PTHL_UP(IIJB:IIJE,IKB)*(1.+PARAMMF%XLAMBDA_MF*ZQT_UP(IIJB:IIJE))
+ZQT_UP(:) = PRT_UP(:,IKB)/(1.+PRT_UP(:,IKB))
+ZTHS_UP(:,IKB)=PTHL_UP(:,IKB)*(1.+PARAMMF%XLAMBDA_MF*ZQT_UP(:))
 !$mnh_end_expand_array(JIJ=IIJB:IIJE)
 
 CALL MZM_MF(D, PTHM (:,:), ZTHM_F(:,:))
@@ -295,25 +295,25 @@ CALL MZM_MF(D, PRVM(:,:), ZRVM_F(:,:))
 
 !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 ! thetav at mass and flux levels 
-ZTHVM_F(IIJB:IIJE,1:IKT)=ZTHM_F(IIJB:IIJE,1:IKT)*((1.+ZRVORD*ZRVM_F(IIJB:IIJE,1:IKT))/&
-                                                             &(1.+ZRTM_F(IIJB:IIJE,1:IKT)))
-ZTHVM(IIJB:IIJE,1:IKT)=PTHM(IIJB:IIJE,1:IKT)*((1.+ZRVORD*PRVM(IIJB:IIJE,1:IKT))/(1.+PRTM(IIJB:IIJE,1:IKT)))
+ZTHVM_F(:,:)=ZTHM_F(:,:)*((1.+ZRVORD*ZRVM_F(:,:))/&
+                                                             &(1.+ZRTM_F(:,:)))
+ZTHVM(:,:)=PTHM(:,:)*((1.+ZRVORD*PRVM(:,:))/(1.+PRTM(:,:)))
 
-PTHV_UP(IIJB:IIJE,1:IKT)= ZTHVM_F(IIJB:IIJE,1:IKT)
-PRV_UP(IIJB:IIJE,1:IKT) = ZRVM_F(IIJB:IIJE,1:IKT)
+PTHV_UP(:,:)= ZTHVM_F(:,:)
+PRV_UP(:,:) = ZRVM_F(:,:)
 !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 
 ZW_UP2(:,:)=ZEPS
 !$mnh_expand_array(JIJ=IIJB:IIJE)
-ZW_UP2(IIJB:IIJE,IKB) = MAX(0.0001,(1./6.)*ZTKEM_F(IIJB:IIJE,IKB))
-GTEST(IIJB:IIJE) = (ZW_UP2(IIJB:IIJE,IKB) > ZEPS)  
+ZW_UP2(:,IKB) = MAX(0.0001,(1./6.)*ZTKEM_F(:,IKB))
+GTEST(:) = (ZW_UP2(:,IKB) > ZEPS)  
 !$mnh_end_expand_array(JIJ=IIJB:IIJE)
 
 ! Computation of non conservative variable for the KKB level of the updraft
 ! (all or nothing ajustement)
 !$mnh_expand_array(JIJ=IIJB:IIJE)
-PRC_UP(IIJB:IIJE,IKB)=0.
-PRI_UP(IIJB:IIJE,IKB)=0.
+PRC_UP(:,IKB)=0.
+PRI_UP(:,IKB)=0.
 !$mnh_end_expand_array(JIJ=IIJB:IIJE)
 
 CALL TH_R_FROM_THL_RT(CST, NEB, D%NIJT, HFRAC_ICE,PFRAC_ICE_UP(:,IKB),ZPRES_F(:,IKB), &
@@ -323,16 +323,16 @@ CALL TH_R_FROM_THL_RT(CST, NEB, D%NIJT, HFRAC_ICE,PFRAC_ICE_UP(:,IKB),ZPRES_F(:,
 
 !$mnh_expand_array(JIJ=IIJB:IIJE)
 ! compute updraft thevav and buoyancy term at KKB level             
-PTHV_UP(IIJB:IIJE,IKB) = ZTH_UP(IIJB:IIJE,IKB)*((1+ZRVORD*PRV_UP(IIJB:IIJE,IKB))/(1+PRT_UP(IIJB:IIJE,IKB))) 
+PTHV_UP(:,IKB) = ZTH_UP(:,IKB)*((1+ZRVORD*PRV_UP(:,IKB))/(1+PRT_UP(:,IKB))) 
 ! compute mean rsat in updraft
-PRSAT_UP(IIJB:IIJE,IKB) = ZRSATW(IIJB:IIJE)*(1-PFRAC_ICE_UP(IIJB:IIJE,IKB)) + &
-                            & ZRSATI(IIJB:IIJE)*PFRAC_ICE_UP(IIJB:IIJE,IKB)
+PRSAT_UP(:,IKB) = ZRSATW(:)*(1-PFRAC_ICE_UP(:,IKB)) + &
+                            & ZRSATI(:)*PFRAC_ICE_UP(:,IKB)
 !$mnh_end_expand_array(JIJ=IIJB:IIJE)
 
 !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(JIJ=IIJB:IIJE,JK=1:IKT)
-ZG_O_THVREF(IIJB:IIJE,1:IKT)=CST%XG/ZTHVM_F(IIJB:IIJE,1:IKT)
+ZG_O_THVREF(:,:)=CST%XG/ZTHVM_F(:,:)
 !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 
 !  Definition de l'alimentation au sens de la fermeture de Hourdin et al
@@ -343,15 +343,15 @@ IALIM(:)          = IKB   ! <== Top level of the alimentation layer
 
 DO JK=IKB,IKE-IKL,IKL   !  Vertical loop
   !$mnh_expand_where(JIJ=IIJB:IIJE)
-  ZZDZ(IIJB:IIJE,JK)   = MAX(ZEPS,PZZ(IIJB:IIJE,JK+IKL)-PZZ(IIJB:IIJE,JK))       ! <== Delta Z between two flux level
-  ZZZ(IIJB:IIJE,JK)    = MAX(0.,0.5*(PZZ(IIJB:IIJE,JK+IKL)+PZZ(IIJB:IIJE,JK)) )  ! <== Hight of mass levels
-  ZDTHETASDZ(IIJB:IIJE,JK) = (ZTHVM_F(IIJB:IIJE,JK)-ZTHVM_F(IIJB:IIJE,JK+IKL))   ! <== Delta theta_v
+  ZZDZ(:,JK)   = MAX(ZEPS,PZZ(:,JK+IKL)-PZZ(:,JK))       ! <== Delta Z between two flux level
+  ZZZ(:,JK)    = MAX(0.,0.5*(PZZ(:,JK+IKL)+PZZ(:,JK)) )  ! <== Hight of mass levels
+  ZDTHETASDZ(:,JK) = (ZTHVM_F(:,JK)-ZTHVM_F(:,JK+IKL))   ! <== Delta theta_v
   
-  WHERE ((ZTHVM_F(IIJB:IIJE,JK+IKL)<ZTHVM_F(IIJB:IIJE,JK)) .AND. &
-        &(ZTHVM_F(IIJB:IIJE,IKB)>=ZTHVM_F(IIJB:IIJE,JK)))
-     ZALIM_STAR(IIJB:IIJE,JK)  = SQRT(ZZZ(IIJB:IIJE,JK))*ZDTHETASDZ(IIJB:IIJE,JK)/ZZDZ(IIJB:IIJE,JK)
-     ZALIM_STAR_TOT(IIJB:IIJE) = ZALIM_STAR_TOT(IIJB:IIJE)+ZALIM_STAR(IIJB:IIJE,JK)*ZZDZ(IIJB:IIJE,JK)
-     IALIM(IIJB:IIJE)          = JK
+  WHERE ((ZTHVM_F(:,JK+IKL)<ZTHVM_F(:,JK)) .AND. &
+        &(ZTHVM_F(:,IKB)>=ZTHVM_F(:,JK)))
+     ZALIM_STAR(:,JK)  = SQRT(ZZZ(:,JK))*ZDTHETASDZ(:,JK)/ZZDZ(:,JK)
+     ZALIM_STAR_TOT(:) = ZALIM_STAR_TOT(:)+ZALIM_STAR(:,JK)*ZZDZ(:,JK)
+     IALIM(:)          = JK
   ENDWHERE
   !$mnh_end_expand_where(JIJ=IIJB:IIJE)
 ENDDO
@@ -359,8 +359,8 @@ ENDDO
 ! Normalization of ZALIM_STAR
 DO JK=IKB,IKE-IKL,IKL   !  Vertical loop   
    !$mnh_expand_where(JIJ=IIJB:IIJE)
-   WHERE (ZALIM_STAR_TOT(IIJB:IIJE) > ZEPS)
-      ZALIM_STAR(IIJB:IIJE,JK)  = ZALIM_STAR(IIJB:IIJE,JK)/ZALIM_STAR_TOT(IIJB:IIJE)
+   WHERE (ZALIM_STAR_TOT(:) > ZEPS)
+      ZALIM_STAR(:,JK)  = ZALIM_STAR(:,JK)/ZALIM_STAR_TOT(:)
    ENDWHERE
    !$mnh_end_expand_where(JIJ=IIJB:IIJE)
 ENDDO
@@ -392,16 +392,16 @@ DO JK=IKB,IKE-IKL,IKL
   !$mnh_expand_where(JIJ=IIJB:IIJE)
   ! IF the updraft top is reached for all column, stop the loop on levels
 
-  !ITEST=COUNT(GTEST(IIJB:IIJE))
+  !ITEST=COUNT(GTEST(:))
   !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(IIJB:IIJE,JK)+PRI_UP(IIJB:IIJE,JK)>0.).AND.(.NOT.(GTESTLCL(IIJB:IIJE))))
-    KKLCL(IIJB:IIJE) = JK           
-    GTESTLCL(IIJB:IIJE)=.TRUE.
+  WHERE ((PRC_UP(:,JK)+PRI_UP(:,JK)>0.).AND.(.NOT.(GTESTLCL(:))))
+    KKLCL(:) = JK           
+    GTESTLCL(:)=.TRUE.
   ENDWHERE
 
   ! COMPUTE PENTR and PDETR at mass level JK
@@ -411,155 +411,155 @@ DO JK=IKB,IKE-IKL,IKL
 
   ! Compute theta_v of updraft at flux level JK    
     
-  ZRC_UP(IIJB:IIJE)  = PRC_UP(IIJB:IIJE,JK)
-  ZRI_UP(IIJB:IIJE)  = PRI_UP(IIJB:IIJE,JK) ! guess 
-  ZRV_UP(IIJB:IIJE)  = PRV_UP(IIJB:IIJE,JK)
-  ZBUO(IIJB:IIJE,JK) = ZG_O_THVREF(IIJB:IIJE,JK)*(PTHV_UP(IIJB:IIJE,JK) - ZTHVM_F(IIJB:IIJE,JK))
-  PBUO_INTEG(IIJB:IIJE,JK) = ZBUO(IIJB:IIJE,JK)*(PZZ(IIJB:IIJE,JK+IKL)-PZZ(IIJB:IIJE,JK))
+  ZRC_UP(:)  = PRC_UP(:,JK)
+  ZRI_UP(:)  = PRI_UP(:,JK) ! guess 
+  ZRV_UP(:)  = PRV_UP(:,JK)
+  ZBUO(:,JK) = ZG_O_THVREF(:,JK)*(PTHV_UP(:,JK) - ZTHVM_F(:,JK))
+  PBUO_INTEG(:,JK) = ZBUO(:,JK)*(PZZ(:,JK+IKL)-PZZ(:,JK))
   
-  ZDZ(IIJB:IIJE)   = MAX(ZEPS,PZZ(IIJB:IIJE,JK+IKL)-PZZ(IIJB:IIJE,JK))
-  ZTEST(IIJB:IIJE) = PARAMMF%XA1*ZBUO(IIJB:IIJE,JK) -  PARAMMF%XB*ZW_UP2(IIJB:IIJE,JK)
+  ZDZ(:)   = MAX(ZEPS,PZZ(:,JK+IKL)-PZZ(:,JK))
+  ZTEST(:) = PARAMMF%XA1*ZBUO(:,JK) -  PARAMMF%XB*ZW_UP2(:,JK)
 
-  ZCOE(IIJB:IIJE)      = ZDZ(IIJB:IIJE)
-  WHERE (ZTEST(IIJB:IIJE)>0.)
-    ZCOE(IIJB:IIJE)    = ZDZ(IIJB:IIJE)/(1.+ PARAMMF%XBETA1)
+  ZCOE(:)      = ZDZ(:)
+  WHERE (ZTEST(:)>0.)
+    ZCOE(:)    = ZDZ(:)/(1.+ PARAMMF%XBETA1)
   ENDWHERE   
 
   !  Calcul de la vitesse
 
-  ZWCOE(IIJB:IIJE)         = (1.-PARAMMF%XB*ZCOE(IIJB:IIJE))/(1.+PARAMMF%XB*ZCOE(IIJB:IIJE))
-  ZBUCOE(IIJB:IIJE)        =  2.*ZCOE(IIJB:IIJE)/(1.+PARAMMF%XB*ZCOE(IIJB:IIJE))
+  ZWCOE(:)         = (1.-PARAMMF%XB*ZCOE(:))/(1.+PARAMMF%XB*ZCOE(:))
+  ZBUCOE(:)        =  2.*ZCOE(:)/(1.+PARAMMF%XB*ZCOE(:))
 
-  ZW_UP2(IIJB:IIJE,JK+IKL) = MAX(ZEPS,ZW_UP2(IIJB:IIJE,JK)*ZWCOE(IIJB:IIJE) + &
-                                         &PARAMMF%XA1*ZBUO(IIJB:IIJE,JK)*ZBUCOE(IIJB:IIJE))
-  ZW_MAX(IIJB:IIJE) = MAX(ZW_MAX(IIJB:IIJE), SQRT(ZW_UP2(IIJB:IIJE,JK+IKL)))
-  ZWUP_MEAN(IIJB:IIJE)     = MAX(ZEPS,0.5*(ZW_UP2(IIJB:IIJE,JK+IKL)+ZW_UP2(IIJB:IIJE,JK)))
+  ZW_UP2(:,JK+IKL) = MAX(ZEPS,ZW_UP2(:,JK)*ZWCOE(:) + &
+                                         &PARAMMF%XA1*ZBUO(:,JK)*ZBUCOE(:))
+  ZW_MAX(:) = MAX(ZW_MAX(:), SQRT(ZW_UP2(:,JK+IKL)))
+  ZWUP_MEAN(:)     = MAX(ZEPS,0.5*(ZW_UP2(:,JK+IKL)+ZW_UP2(:,JK)))
 
   !  Entrainement et detrainement
 
-  PENTR(IIJB:IIJE,JK)  = MAX(0.,(PARAMMF%XBETA1/(1.+PARAMMF%XBETA1))* &
-                                 &(PARAMMF%XA1*ZBUO(IIJB:IIJE,JK)/ZWUP_MEAN(IIJB:IIJE)-PARAMMF%XB))
+  PENTR(:,JK)  = MAX(0.,(PARAMMF%XBETA1/(1.+PARAMMF%XBETA1))* &
+                                 &(PARAMMF%XA1*ZBUO(:,JK)/ZWUP_MEAN(:)-PARAMMF%XB))
   
-  ZDETR_BUO(IIJB:IIJE) = MAX(0., -(PARAMMF%XBETA1/(1.+PARAMMF%XBETA1))*PARAMMF%XA1*ZBUO(IIJB:IIJE,JK)/ &
-                                   &ZWUP_MEAN(IIJB:IIJE))
-  ZDETR_RT(IIJB:IIJE)  = PARAMMF%XC*SQRT(MAX(0.,(PRT_UP(IIJB:IIJE,JK) - ZRTM_F(IIJB:IIJE,JK))) / &
-                                          &MAX(ZEPS,ZRTM_F(IIJB:IIJE,JK)) / ZWUP_MEAN(IIJB:IIJE))
-  PDETR(IIJB:IIJE,JK)  = ZDETR_RT(IIJB:IIJE)+ZDETR_BUO(IIJB:IIJE)
+  ZDETR_BUO(:) = MAX(0., -(PARAMMF%XBETA1/(1.+PARAMMF%XBETA1))*PARAMMF%XA1*ZBUO(:,JK)/ &
+                                   &ZWUP_MEAN(:))
+  ZDETR_RT(:)  = PARAMMF%XC*SQRT(MAX(0.,(PRT_UP(:,JK) - ZRTM_F(:,JK))) / &
+                                          &MAX(ZEPS,ZRTM_F(:,JK)) / ZWUP_MEAN(:))
+  PDETR(:,JK)  = ZDETR_RT(:)+ZDETR_BUO(:)
 
    
   ! If the updraft did not stop, compute cons updraft characteritics at jk+1
-  WHERE(GTEST(IIJB:IIJE))     
-    ZZTOP(IIJB:IIJE) = MAX(ZZTOP(IIJB:IIJE),PZZ(IIJB:IIJE,JK+IKL))
-    ZMIX2(IIJB:IIJE) = (PZZ(IIJB:IIJE,JK+IKL)-PZZ(IIJB:IIJE,JK))*PENTR(IIJB:IIJE,JK) !&
-    ZMIX3(IIJB:IIJE) = (PZZ(IIJB:IIJE,JK+IKL)-PZZ(IIJB:IIJE,JK))*PDETR(IIJB:IIJE,JK) !&                   
+  WHERE(GTEST(:))     
+    ZZTOP(:) = MAX(ZZTOP(:),PZZ(:,JK+IKL))
+    ZMIX2(:) = (PZZ(:,JK+IKL)-PZZ(:,JK))*PENTR(:,JK) !&
+    ZMIX3(:) = (PZZ(:,JK+IKL)-PZZ(:,JK))*PDETR(:,JK) !&                   
            
-    ZQTM(IIJB:IIJE) = PRTM(IIJB:IIJE,JK)/(1.+PRTM(IIJB:IIJE,JK))            
-    ZTHSM(IIJB:IIJE,JK) = PTHLM(IIJB:IIJE,JK)*(1.+PARAMMF%XLAMBDA_MF*ZQTM(IIJB:IIJE))
-    ZTHS_UP(IIJB:IIJE,JK+IKL)=(ZTHS_UP(IIJB:IIJE,JK)*(1.-0.5*ZMIX2(IIJB:IIJE)) + &
-                                    &ZTHSM(IIJB:IIJE,JK)*ZMIX2(IIJB:IIJE))&
-                          /(1.+0.5*ZMIX2(IIJB:IIJE))   
-    PRT_UP(IIJB:IIJE,JK+IKL)=(PRT_UP(IIJB:IIJE,JK)*(1.-0.5*ZMIX2(IIJB:IIJE)) + &
-                                   &PRTM(IIJB:IIJE,JK)*ZMIX2(IIJB:IIJE))  &
-                          /(1.+0.5*ZMIX2(IIJB:IIJE))
-    ZQT_UP(IIJB:IIJE) = PRT_UP(IIJB:IIJE,JK+IKL)/(1.+PRT_UP(IIJB:IIJE,JK+IKL))
-    PTHL_UP(IIJB:IIJE,JK+IKL)=ZTHS_UP(IIJB:IIJE,JK+IKL)/(1.+PARAMMF%XLAMBDA_MF*ZQT_UP(IIJB:IIJE))                      
+    ZQTM(:) = PRTM(:,JK)/(1.+PRTM(:,JK))            
+    ZTHSM(:,JK) = PTHLM(:,JK)*(1.+PARAMMF%XLAMBDA_MF*ZQTM(:))
+    ZTHS_UP(:,JK+IKL)=(ZTHS_UP(:,JK)*(1.-0.5*ZMIX2(:)) + &
+                                    &ZTHSM(:,JK)*ZMIX2(:))&
+                          /(1.+0.5*ZMIX2(:))   
+    PRT_UP(:,JK+IKL)=(PRT_UP(:,JK)*(1.-0.5*ZMIX2(:)) + &
+                                   &PRTM(:,JK)*ZMIX2(:))  &
+                          /(1.+0.5*ZMIX2(:))
+    ZQT_UP(:) = PRT_UP(:,JK+IKL)/(1.+PRT_UP(:,JK+IKL))
+    PTHL_UP(:,JK+IKL)=ZTHS_UP(:,JK+IKL)/(1.+PARAMMF%XLAMBDA_MF*ZQT_UP(:))                      
   ENDWHERE
   
 
   IF(PARAMMF%LMIXUV) THEN
     IF(JK/=IKB) THEN
-      WHERE(GTEST(IIJB:IIJE))
-        PU_UP(IIJB:IIJE,JK+IKL) = (PU_UP(IIJB:IIJE,JK)*(1-0.5*ZMIX2(IIJB:IIJE)) + &
-                                        &PUM(IIJB:IIJE,JK)*ZMIX2(IIJB:IIJE)+ &
-                          0.5*PARAMMF%XPRES_UV*(PZZ(IIJB:IIJE,JK+IKL)-PZZ(IIJB:IIJE,JK))*&
-                          ((PUM(IIJB:IIJE,JK+IKL)-PUM(IIJB:IIJE,JK))/PDZZ(IIJB:IIJE,JK+IKL)+&
-                           (PUM(IIJB:IIJE,JK)-PUM(IIJB:IIJE,JK-IKL))/PDZZ(IIJB:IIJE,JK))        )   &
-                          /(1+0.5*ZMIX2(IIJB:IIJE))
-        PV_UP(IIJB:IIJE,JK+IKL) = (PV_UP(IIJB:IIJE,JK)*(1-0.5*ZMIX2(IIJB:IIJE)) + &
-                                        &PVM(IIJB:IIJE,JK)*ZMIX2(IIJB:IIJE)+ &
-                          0.5*PARAMMF%XPRES_UV*(PZZ(IIJB:IIJE,JK+IKL)-PZZ(IIJB:IIJE,JK))*&
-                          ((PVM(IIJB:IIJE,JK+IKL)-PVM(IIJB:IIJE,JK))/PDZZ(IIJB:IIJE,JK+IKL)+&
-                           (PVM(IIJB:IIJE,JK)-PVM(IIJB:IIJE,JK-IKL))/PDZZ(IIJB:IIJE,JK))    )   &
-                          /(1+0.5*ZMIX2(IIJB:IIJE))
+      WHERE(GTEST(:))
+        PU_UP(:,JK+IKL) = (PU_UP(:,JK)*(1-0.5*ZMIX2(:)) + &
+                                        &PUM(:,JK)*ZMIX2(:)+ &
+                          0.5*PARAMMF%XPRES_UV*(PZZ(:,JK+IKL)-PZZ(:,JK))*&
+                          ((PUM(:,JK+IKL)-PUM(:,JK))/PDZZ(:,JK+IKL)+&
+                           (PUM(:,JK)-PUM(:,JK-IKL))/PDZZ(:,JK))        )   &
+                          /(1+0.5*ZMIX2(:))
+        PV_UP(:,JK+IKL) = (PV_UP(:,JK)*(1-0.5*ZMIX2(:)) + &
+                                        &PVM(:,JK)*ZMIX2(:)+ &
+                          0.5*PARAMMF%XPRES_UV*(PZZ(:,JK+IKL)-PZZ(:,JK))*&
+                          ((PVM(:,JK+IKL)-PVM(:,JK))/PDZZ(:,JK+IKL)+&
+                           (PVM(:,JK)-PVM(:,JK-IKL))/PDZZ(:,JK))    )   &
+                          /(1+0.5*ZMIX2(:))
       ENDWHERE
     ELSE
-      WHERE(GTEST(IIJB:IIJE))
-        PU_UP(IIJB:IIJE,JK+IKL) = (PU_UP(IIJB:IIJE,JK)*(1-0.5*ZMIX2(IIJB:IIJE)) + &
-                                        &PUM(IIJB:IIJE,JK)*ZMIX2(IIJB:IIJE)+ &
-                          0.5*PARAMMF%XPRES_UV*(PZZ(IIJB:IIJE,JK+IKL)-PZZ(IIJB:IIJE,JK))*&
-                          ((PUM(IIJB:IIJE,JK+IKL)-PUM(IIJB:IIJE,JK))/PDZZ(IIJB:IIJE,JK+IKL))        )   &
-                          /(1+0.5*ZMIX2(IIJB:IIJE))
-        PV_UP(IIJB:IIJE,JK+IKL) = (PV_UP(IIJB:IIJE,JK)*(1-0.5*ZMIX2(IIJB:IIJE)) + &
-                                        &PVM(IIJB:IIJE,JK)*ZMIX2(IIJB:IIJE)+ &
-                          0.5*PARAMMF%XPRES_UV*(PZZ(IIJB:IIJE,JK+IKL)-PZZ(IIJB:IIJE,JK))*&
-                          ((PVM(IIJB:IIJE,JK+IKL)-PVM(IIJB:IIJE,JK))/PDZZ(IIJB:IIJE,JK+IKL))    )   &
-                          /(1+0.5*ZMIX2(IIJB:IIJE))
+      WHERE(GTEST(:))
+        PU_UP(:,JK+IKL) = (PU_UP(:,JK)*(1-0.5*ZMIX2(:)) + &
+                                        &PUM(:,JK)*ZMIX2(:)+ &
+                          0.5*PARAMMF%XPRES_UV*(PZZ(:,JK+IKL)-PZZ(:,JK))*&
+                          ((PUM(:,JK+IKL)-PUM(:,JK))/PDZZ(:,JK+IKL))        )   &
+                          /(1+0.5*ZMIX2(:))
+        PV_UP(:,JK+IKL) = (PV_UP(:,JK)*(1-0.5*ZMIX2(:)) + &
+                                        &PVM(:,JK)*ZMIX2(:)+ &
+                          0.5*PARAMMF%XPRES_UV*(PZZ(:,JK+IKL)-PZZ(:,JK))*&
+                          ((PVM(:,JK+IKL)-PVM(:,JK))/PDZZ(:,JK+IKL))    )   &
+                          /(1+0.5*ZMIX2(:))
       ENDWHERE
 
     ENDIF
   ENDIF
   !DO JSV=1,ISV 
   !   IF (ONOMIXLG .AND. JSV >= KSV_LGBEG .AND. JSV<= KSV_LGEND) CYCLE
-  !    WHERE(GTEST(IIJB:IIJE)) 
-  !         PSV_UP(IIJB:IIJE,JK+KKL,JSV) = (PSV_UP(IIJB:IIJE,JK,JSV)*(1-0.5*ZMIX2(IIJB:IIJE)) + &
-  !                      PSVM(IIJB:IIJE,JK,JSV)*ZMIX2(IIJB:IIJE))  /(1+0.5*ZMIX2(IIJB:IIJE))
+  !    WHERE(GTEST(:)) 
+  !         PSV_UP(:,JK+KKL,JSV) = (PSV_UP(:,JK,JSV)*(1-0.5*ZMIX2(:)) + &
+  !                      PSVM(:,JK,JSV)*ZMIX2(:))  /(1+0.5*ZMIX2(:))
   !    ENDWHERE                        
   !ENDDO  
   
   
   ! Compute non cons. var. at level JK+KKL
-  ZRC_UP(IIJB:IIJE)=PRC_UP(IIJB:IIJE,JK) ! guess = level just below
-  ZRI_UP(IIJB:IIJE)=PRI_UP(IIJB:IIJE,JK) ! guess = level just below
-  ZRV_UP(IIJB:IIJE)=PRV_UP(IIJB:IIJE,JK)
+  ZRC_UP(:)=PRC_UP(:,JK) ! guess = level just below
+  ZRI_UP(:)=PRI_UP(:,JK) ! guess = level just below
+  ZRV_UP(:)=PRV_UP(:,JK)
   !$mnh_end_expand_where(JIJ=IIJB:IIJE)
   CALL TH_R_FROM_THL_RT(CST,NEB, D%NIJT, HFRAC_ICE,PFRAC_ICE_UP(:,JK+IKL),ZPRES_F(:,JK+IKL), &
           PTHL_UP(:,JK+IKL),PRT_UP(:,JK+IKL),ZTH_UP(:,JK+IKL),              &
           ZRV_UP(:),ZRC_UP(:),ZRI_UP(:),ZRSATW(:),ZRSATI(:),OOCEAN=.FALSE.,&
           PBUF=ZBUF, KB=D%NIJB, KE=D%NIJE)
   !$mnh_expand_where(JIJ=IIJB:IIJE)
-  WHERE(GTEST(IIJB:IIJE))
-    ZT_UP(IIJB:IIJE) = ZTH_UP(IIJB:IIJE,JK+IKL)*PEXNM(IIJB:IIJE,JK+IKL)
-    ZCP(IIJB:IIJE) = CST%XCPD + CST%XCL * ZRC_UP(IIJB:IIJE)
-    ZLVOCPEXN(IIJB:IIJE)=(CST%XLVTT + (CST%XCPV-CST%XCL) *  (ZT_UP(IIJB:IIJE)-CST%XTT) ) / &
-                          &ZCP(IIJB:IIJE) / PEXNM(IIJB:IIJE,JK+IKL)
-    PRC_UP(IIJB:IIJE,JK+IKL)=MIN(0.5E-3,ZRC_UP(IIJB:IIJE))  ! On ne peut depasser 0.5 g/kg (autoconversion donc elimination !)
-    PTHL_UP(IIJB:IIJE,JK+IKL) = PTHL_UP(IIJB:IIJE,JK+IKL)+ &
-                                  & ZLVOCPEXN(IIJB:IIJE)*(ZRC_UP(IIJB:IIJE)-PRC_UP(IIJB:IIJE,JK+IKL))
-    PRV_UP(IIJB:IIJE,JK+IKL)=ZRV_UP(IIJB:IIJE)
-    PRI_UP(IIJB:IIJE,JK+IKL)=ZRI_UP(IIJB:IIJE)
-    PRT_UP(IIJB:IIJE,JK+IKL)  = PRC_UP(IIJB:IIJE,JK+IKL) + PRV_UP(IIJB:IIJE,JK+IKL)
-    PRSAT_UP(IIJB:IIJE,JK+IKL) = ZRSATW(IIJB:IIJE)*(1-PFRAC_ICE_UP(IIJB:IIJE,JK+IKL)) + &
-                                   & ZRSATI(IIJB:IIJE)*PFRAC_ICE_UP(IIJB:IIJE,JK+IKL)
+  WHERE(GTEST(:))
+    ZT_UP(:) = ZTH_UP(:,JK+IKL)*PEXNM(:,JK+IKL)
+    ZCP(:) = CST%XCPD + CST%XCL * ZRC_UP(:)
+    ZLVOCPEXN(:)=(CST%XLVTT + (CST%XCPV-CST%XCL) *  (ZT_UP(:)-CST%XTT) ) / &
+                          &ZCP(:) / PEXNM(:,JK+IKL)
+    PRC_UP(:,JK+IKL)=MIN(0.5E-3,ZRC_UP(:))  ! On ne peut depasser 0.5 g/kg (autoconversion donc elimination !)
+    PTHL_UP(:,JK+IKL) = PTHL_UP(:,JK+IKL)+ &
+                                  & ZLVOCPEXN(:)*(ZRC_UP(:)-PRC_UP(:,JK+IKL))
+    PRV_UP(:,JK+IKL)=ZRV_UP(:)
+    PRI_UP(:,JK+IKL)=ZRI_UP(:)
+    PRT_UP(:,JK+IKL)  = PRC_UP(:,JK+IKL) + PRV_UP(:,JK+IKL)
+    PRSAT_UP(:,JK+IKL) = ZRSATW(:)*(1-PFRAC_ICE_UP(:,JK+IKL)) + &
+                                   & ZRSATI(:)*PFRAC_ICE_UP(:,JK+IKL)
   ENDWHERE
   
 
   ! Compute the updraft theta_v, buoyancy and w**2 for level JK+1   
-  WHERE(GTEST(IIJB:IIJE))
-    !PTHV_UP(IIJB:IIJE,JK+KKL) = ZTH_UP(IIJB:IIJE,JK+KKL)*((1+ZRVORD*PRV_UP(IIJB:IIJE,JK+KKL))/(1+PRT_UP(IIJB:IIJE,JK+KKL)))
-    PTHV_UP(IIJB:IIJE,JK+IKL) = ZTH_UP(IIJB:IIJE,JK+IKL)* &
-                                  & (1.+0.608*PRV_UP(IIJB:IIJE,JK+IKL) - PRC_UP(IIJB:IIJE,JK+IKL))
+  WHERE(GTEST(:))
+    !PTHV_UP(:,JK+KKL) = ZTH_UP(:,JK+KKL)*((1+ZRVORD*PRV_UP(:,JK+KKL))/(1+PRT_UP(:,JK+KKL)))
+    PTHV_UP(:,JK+IKL) = ZTH_UP(:,JK+IKL)* &
+                                  & (1.+0.608*PRV_UP(:,JK+IKL) - PRC_UP(:,JK+IKL))
   ENDWHERE
 
 
   ! Test if the updraft has reach the ETL
-  GTESTETL(IIJB:IIJE)=.FALSE.
-  WHERE (GTEST(IIJB:IIJE).AND.(PBUO_INTEG(IIJB:IIJE,JK)<=0.))
-    KKETL(IIJB:IIJE) = JK+IKL
-    GTESTETL(IIJB:IIJE)=.TRUE.
+  GTESTETL(:)=.FALSE.
+  WHERE (GTEST(:).AND.(PBUO_INTEG(:,JK)<=0.))
+    KKETL(:) = JK+IKL
+    GTESTETL(:)=.TRUE.
   ENDWHERE
 
   ! Test is we have reached the top of the updraft
-  WHERE (GTEST(IIJB:IIJE).AND.((ZW_UP2(IIJB:IIJE,JK+IKL)<=ZEPS)))
-    ZW_UP2(IIJB:IIJE,JK+IKL)=ZEPS
-    GTEST(IIJB:IIJE)=.FALSE.
-    PTHL_UP(IIJB:IIJE,JK+IKL)=ZTHLM_F(IIJB:IIJE,JK+IKL)
-    PRT_UP(IIJB:IIJE,JK+IKL)=ZRTM_F(IIJB:IIJE,JK+IKL)
-    PRC_UP(IIJB:IIJE,JK+IKL)=0.
-    PRI_UP(IIJB:IIJE,JK+IKL)=0.
-    PRV_UP(IIJB:IIJE,JK+IKL)=0.
-    PTHV_UP(IIJB:IIJE,JK+IKL)=ZTHVM_F(IIJB:IIJE,JK+IKL)
-    PFRAC_UP(IIJB:IIJE,JK+IKL)=0.
-    KKCTL(IIJB:IIJE)=JK+IKL
+  WHERE (GTEST(:).AND.((ZW_UP2(:,JK+IKL)<=ZEPS)))
+    ZW_UP2(:,JK+IKL)=ZEPS
+    GTEST(:)=.FALSE.
+    PTHL_UP(:,JK+IKL)=ZTHLM_F(:,JK+IKL)
+    PRT_UP(:,JK+IKL)=ZRTM_F(:,JK+IKL)
+    PRC_UP(:,JK+IKL)=0.
+    PRI_UP(:,JK+IKL)=0.
+    PRV_UP(:,JK+IKL)=0.
+    PTHV_UP(:,JK+IKL)=ZTHVM_F(:,JK+IKL)
+    PFRAC_UP(:,JK+IKL)=0.
+    KKCTL(:)=JK+IKL
   ENDWHERE
   !$mnh_end_expand_where(JIJ=IIJB:IIJE)
 ENDDO 
@@ -569,62 +569,62 @@ ENDDO
 
 
 !$mnh_expand_array(JIJ=IIJB:IIJE)
-ZZTOP(IIJB:IIJE) = MAX(ZZTOP(IIJB:IIJE),ZEPS)
+ZZTOP(:) = MAX(ZZTOP(:),ZEPS)
 !$mnh_end_expand_array(JIJ=IIJB:IIJE)
 
 DO JK=IKB+IKL,IKE-IKL,IKL !  Vertical loop
   !$mnh_expand_where(JIJ=IIJB:IIJE)
-   WHERE(JK<=IALIM(IIJB:IIJE))
-     ZALIM_STAR_TOT(IIJB:IIJE) = ZALIM_STAR_TOT(IIJB:IIJE) + ZALIM_STAR(IIJB:IIJE,JK)**2* &
-                                                               & ZZDZ(IIJB:IIJE,JK)/PRHODREF(IIJB:IIJE,JK)
+   WHERE(JK<=IALIM(:))
+     ZALIM_STAR_TOT(:) = ZALIM_STAR_TOT(:) + ZALIM_STAR(:,JK)**2* &
+                                                               & ZZDZ(:,JK)/PRHODREF(:,JK)
    ENDWHERE
   !$mnh_end_expand_where(JIJ=IIJB:IIJE)
 ENDDO   
 
 !$mnh_expand_where(JIJ=IIJB:IIJE)
-WHERE (ZALIM_STAR_TOT(IIJB:IIJE)*ZZTOP(IIJB:IIJE) > ZEPS)
- ZPHI(IIJB:IIJE) =  ZW_MAX(IIJB:IIJE)/(PARAMMF%XR*ZZTOP(IIJB:IIJE)*ZALIM_STAR_TOT(IIJB:IIJE))
+WHERE (ZALIM_STAR_TOT(:)*ZZTOP(:) > ZEPS)
+ ZPHI(:) =  ZW_MAX(:)/(PARAMMF%XR*ZZTOP(:)*ZALIM_STAR_TOT(:))
 ENDWHERE
 
-GTEST(IIJB:IIJE) = .TRUE.
-PEMF(IIJB:IIJE,IKB+IKL) = ZPHI(IIJB:IIJE)*ZZDZ(IIJB:IIJE,IKB)*ZALIM_STAR(IIJB:IIJE,IKB)
+GTEST(:) = .TRUE.
+PEMF(:,IKB+IKL) = ZPHI(:)*ZZDZ(:,IKB)*ZALIM_STAR(:,IKB)
 ! Updraft fraction must be smaller than XFRAC_UP_MAX
-PFRAC_UP(IIJB:IIJE,IKB+IKL)=PEMF(IIJB:IIJE,IKB+IKL)/ &
-                                 &(SQRT(ZW_UP2(IIJB:IIJE,IKB+IKL))*ZRHO_F(IIJB:IIJE,IKB+IKL))
-PFRAC_UP(IIJB:IIJE,IKB+IKL)=MIN(PARAMMF%XFRAC_UP_MAX,PFRAC_UP(IIJB:IIJE,IKB+IKL))
-PEMF(IIJB:IIJE,IKB+IKL) = ZRHO_F(IIJB:IIJE,IKB+IKL)*PFRAC_UP(IIJB:IIJE,IKB+IKL)* &
-                              & SQRT(ZW_UP2(IIJB:IIJE,IKB+IKL))
+PFRAC_UP(:,IKB+IKL)=PEMF(:,IKB+IKL)/ &
+                                 &(SQRT(ZW_UP2(:,IKB+IKL))*ZRHO_F(:,IKB+IKL))
+PFRAC_UP(:,IKB+IKL)=MIN(PARAMMF%XFRAC_UP_MAX,PFRAC_UP(:,IKB+IKL))
+PEMF(:,IKB+IKL) = ZRHO_F(:,IKB+IKL)*PFRAC_UP(:,IKB+IKL)* &
+                              & SQRT(ZW_UP2(:,IKB+IKL))
 !$mnh_end_expand_where(JIJ=IIJB:IIJE)
 
 DO JK=IKB+IKL,IKE-IKL,IKL !  Vertical loop
   !$mnh_expand_where(JIJ=IIJB:IIJE)
      
-  GTEST(IIJB:IIJE) = (ZW_UP2(IIJB:IIJE,JK) > ZEPS)  
+  GTEST(:) = (ZW_UP2(:,JK) > ZEPS)  
 
-  WHERE (GTEST(IIJB:IIJE))
-    WHERE(JK<IALIM(IIJB:IIJE))
-      PEMF(IIJB:IIJE,JK+IKL) = MAX(0.,PEMF(IIJB:IIJE,JK) + ZPHI(IIJB:IIJE)*ZZDZ(IIJB:IIJE,JK)* &
-                                                                & (PENTR(IIJB:IIJE,JK) - PDETR(IIJB:IIJE,JK)))
+  WHERE (GTEST(:))
+    WHERE(JK<IALIM(:))
+      PEMF(:,JK+IKL) = MAX(0.,PEMF(:,JK) + ZPHI(:)*ZZDZ(:,JK)* &
+                                                                & (PENTR(:,JK) - PDETR(:,JK)))
     ELSEWHERE
-      ZMIX1(IIJB:IIJE)=ZZDZ(IIJB:IIJE,JK)*(PENTR(IIJB:IIJE,JK)-PDETR(IIJB:IIJE,JK))
-      PEMF(IIJB:IIJE,JK+IKL)=PEMF(IIJB:IIJE,JK)*EXP(ZMIX1(IIJB:IIJE))
+      ZMIX1(:)=ZZDZ(:,JK)*(PENTR(:,JK)-PDETR(:,JK))
+      PEMF(:,JK+IKL)=PEMF(:,JK)*EXP(ZMIX1(:))
     ENDWHERE
 
 ! Updraft fraction must be smaller than XFRAC_UP_MAX
-    PFRAC_UP(IIJB:IIJE,JK+IKL)=PEMF(IIJB:IIJE,JK+IKL)/&
-                                    &(SQRT(ZW_UP2(IIJB:IIJE,JK+IKL))*ZRHO_F(IIJB:IIJE,JK+IKL))
-    PFRAC_UP(IIJB:IIJE,JK+IKL)=MIN(PARAMMF%XFRAC_UP_MAX,PFRAC_UP(IIJB:IIJE,JK+IKL))
-    PEMF(IIJB:IIJE,JK+IKL) = ZRHO_F(IIJB:IIJE,JK+IKL)*PFRAC_UP(IIJB:IIJE,JK+IKL)*&
-                                 & SQRT(ZW_UP2(IIJB:IIJE,JK+IKL))
+    PFRAC_UP(:,JK+IKL)=PEMF(:,JK+IKL)/&
+                                    &(SQRT(ZW_UP2(:,JK+IKL))*ZRHO_F(:,JK+IKL))
+    PFRAC_UP(:,JK+IKL)=MIN(PARAMMF%XFRAC_UP_MAX,PFRAC_UP(:,JK+IKL))
+    PEMF(:,JK+IKL) = ZRHO_F(:,JK+IKL)*PFRAC_UP(:,JK+IKL)*&
+                                 & SQRT(ZW_UP2(:,JK+IKL))
   ENDWHERE
   !$mnh_end_expand_where(JIJ=IIJB:IIJE)
 ENDDO
 
 !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-PW_UP(IIJB:IIJE,1:IKT)=SQRT(ZW_UP2(IIJB:IIJE,1:IKT))
+PW_UP(:,:)=SQRT(ZW_UP2(:,:))
 !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 !$mnh_expand_array(JIJ=IIJB:IIJE)
-PEMF(IIJB:IIJE,IKB) =0.
+PEMF(:,IKB) =0.
 !$mnh_end_expand_array(JIJ=IIJB:IIJE)
 
 ! Limits the shallow convection scheme when cloud heigth is higher than 3000m.
@@ -638,19 +638,19 @@ DO JIJ=IIJB,IIJE
 END DO
 
 !$mnh_expand_array(JIJ=IIJB:IIJE)
-GWORK1(IIJB:IIJE)= (GTESTLCL(IIJB:IIJE) .AND. (PDEPTH(IIJB:IIJE) > ZDEPTH_MAX1) )
+GWORK1(:)= (GTESTLCL(:) .AND. (PDEPTH(:) > ZDEPTH_MAX1) )
 !$mnh_end_expand_array(JIJ=IIJB:IIJE)
 DO JK=1,D%NKT
   !$mnh_expand_array(JIJ=IIJB:IIJE)
-  GWORK2(IIJB:IIJE,JK) = GWORK1(IIJB:IIJE)
-  ZCOEF(IIJB:IIJE,JK) = (1.-(PDEPTH(IIJB:IIJE)-ZDEPTH_MAX1)/(ZDEPTH_MAX2-ZDEPTH_MAX1))
-  ZCOEF(IIJB:IIJE,JK)=MIN(MAX(ZCOEF(IIJB:IIJE,JK),0.),1.)
+  GWORK2(:,JK) = GWORK1(:)
+  ZCOEF(:,JK) = (1.-(PDEPTH(:)-ZDEPTH_MAX1)/(ZDEPTH_MAX2-ZDEPTH_MAX1))
+  ZCOEF(:,JK)=MIN(MAX(ZCOEF(:,JK),0.),1.)
   !$mnh_end_expand_array(JIJ=IIJB:IIJE)
 ENDDO
 !$mnh_expand_where(JIJ=IIJB:IIJE,JK=1:IKT)
-WHERE (GWORK2(IIJB:IIJE,1:IKT)) 
-  PEMF(IIJB:IIJE,1:IKT)     = PEMF(IIJB:IIJE,1:IKT)     * ZCOEF(IIJB:IIJE,1:IKT)
-  PFRAC_UP(IIJB:IIJE,1:IKT) = PFRAC_UP(IIJB:IIJE,1:IKT) * ZCOEF(IIJB:IIJE,1:IKT)
+WHERE (GWORK2(:,:)) 
+  PEMF(:,:)     = PEMF(:,:)     * ZCOEF(:,:)
+  PFRAC_UP(:,:) = PFRAC_UP(:,:) * ZCOEF(:,:)
 ENDWHERE
 !$mnh_end_expand_where(JIJ=IIJB:IIJE,JK=1:IKT)
 
diff --git a/src/PHYEX/turb/mode_compute_updraft_rhcj10.f90 b/src/PHYEX/turb/mode_compute_updraft_rhcj10.f90
index 5a4a9cfa0a5ff4edf72b4f626614bc0498528d00..85eccf595c1bc53c0f2abbe529d838d4b0050cda 100644
--- a/src/PHYEX/turb/mode_compute_updraft_rhcj10.f90
+++ b/src/PHYEX/turb/mode_compute_updraft_rhcj10.f90
@@ -250,7 +250,7 @@ ZBUO      =0.
 PRI_UP(:,:)=0.
 PFRAC_ICE_UP(:,:)=0.
 !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-PRSAT_UP(IIJB:IIJE,1:IKT)=PRVM(IIJB:IIJE,1:IKT) ! should be initialised correctly but is (normaly) not used
+PRSAT_UP(:,:)=PRVM(:,:) ! should be initialised correctly but is (normaly) not used
 !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 
 ! Initialisation of environment variables at t-dt
@@ -266,23 +266,23 @@ 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(IIJB:IIJE,KKB:IKU,JSV) = 0.5*(PSVM(IIJB:IIJE,KKB:IKU,JSV)+PSVM(IIJB:IIJE,1:IKU-1,JSV))
-!   ZSVM_F(IIJB:IIJE,1,JSV)       = ZSVM_F(IIJB:IIJE,KKB,JSV) 
+!   ZSVM_F(:,KKB:IKU,JSV) = 0.5*(PSVM(:,KKB:IKU,JSV)+PSVM(:,1:IKU-1,JSV))
+!   ZSVM_F(:,1,JSV)       = ZSVM_F(:,KKB,JSV) 
 ! *** the following single line comes from the Meso-NH version
-!  ZSVM_F(IIJB:IIJE,:,JSV) = MZM_MF(KKA,KKU,KKL,PSVM(IIJB:IIJE,:,JSV))
+!  ZSVM_F(:,:,JSV) = MZM_MF(KKA,KKU,KKL,PSVM(:,:,JSV))
 !END DO
 
 !          Initialisation of updraft characteristics 
 !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-PTHL_UP(IIJB:IIJE,1:IKT)=ZTHLM_F(IIJB:IIJE,1:IKT)
-PRT_UP(IIJB:IIJE,1:IKT)=ZRTM_F(IIJB:IIJE,1:IKT)
-PU_UP(IIJB:IIJE,1:IKT)=ZUM_F(IIJB:IIJE,1:IKT)
-PV_UP(IIJB:IIJE,1:IKT)=ZVM_F(IIJB:IIJE,1:IKT)
+PTHL_UP(:,:)=ZTHLM_F(:,:)
+PRT_UP(:,:)=ZRTM_F(:,:)
+PU_UP(:,:)=ZUM_F(:,:)
+PV_UP(:,:)=ZVM_F(:,:)
 !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-PSV_UP(IIJB:IIJE,1:IKT,:)=0.
+PSV_UP(:,:,:)=0.
 ! This updraft is not yet ready to use scalar variables
 !IF (ONOMIXLG .AND. JSV >= KSV_LGBEG .AND. JSV<= KSV_LGEND) then
-!    PSV_UP(IIJB:IIJE,:,:)=ZSVM_F(IIJB:IIJE,:,:)
+!    PSV_UP(:,:,:)=ZSVM_F(:,:,:)
 !ENDIF
 
 ! Computation or initialisation of updraft characteristics at the KKB level
@@ -310,22 +310,22 @@ DO JK=1,IKT
 ENDDO
 
 !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-PTHV_UP(IIJB:IIJE,1:IKT)= ZTHVM_F(IIJB:IIJE,1:IKT)
-PRV_UP(IIJB:IIJE,1:IKT)= ZRVM_F(IIJB:IIJE,1:IKT)
+PTHV_UP(:,:)= ZTHVM_F(:,:)
+PRV_UP(:,:)= ZRVM_F(:,:)
 !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 
 ZW_UP2(:,:)=ZEPS
 !$mnh_expand_array(JIJ=IIJB:IIJE)
-!ZW_UP2(IIJB:IIJE,KKB) = MAX(0.0001,(3./6.)*ZTKEM_F(IIJB:IIJE,KKB))
-ZW_UP2(IIJB:IIJE,IKB) = MAX(0.0001,(2./3.)*ZTKEM_F(IIJB:IIJE,IKB))
+!ZW_UP2(:,KKB) = MAX(0.0001,(3./6.)*ZTKEM_F(:,KKB))
+ZW_UP2(:,IKB) = MAX(0.0001,(2./3.)*ZTKEM_F(:,IKB))
 !$mnh_end_expand_array(JIJ=IIJB:IIJE)
 
 ! Computation of non conservative variable for the KKB level of the updraft
 ! (all or nothing ajustement)
 
 !$mnh_expand_array(JIJ=IIJB:IIJE)
-PRC_UP(IIJB:IIJE,IKB)=0.
-PRI_UP(IIJB:IIJE,IKB)=0.
+PRC_UP(:,IKB)=0.
+PRI_UP(:,IKB)=0.
 !$mnh_end_expand_array(JIJ=IIJB:IIJE)
 CALL TH_R_FROM_THL_RT(CST,NEB,D%NIJT,HFRAC_ICE,PFRAC_ICE_UP(:,IKB),ZPRES_F(:,IKB), &
              PTHL_UP(:,IKB),PRT_UP(:,IKB),ZTH_UP(:,IKB), &
@@ -343,7 +343,7 @@ ENDDO
 !  boucle verticale, une pour w et une pour PEMF                                                            
 
 !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-ZG_O_THVREF(IIJB:IIJE,1:IKT)=CST%XG/ZTHVM_F(IIJB:IIJE,1:IKT)
+ZG_O_THVREF(:,:)=CST%XG/ZTHVM_F(:,:)
 !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 
 ! Calcul de la fermeture de Julien Pergaut comme limite max de PHY
@@ -357,7 +357,7 @@ ENDDO
 ! compute L_up
 GLMIX=.TRUE.
 !$mnh_expand_array(JIJ=IIJB:IIJE)
-ZTKEM_F(IIJB:IIJE,IKB)=0.
+ZTKEM_F(:,IKB)=0.
 !$mnh_end_expand_array(JIJ=IIJB:IIJE)
 !
 IF(TURBN%CTURBLEN=='RM17') THEN
@@ -366,16 +366,16 @@ IF(TURBN%CTURBLEN=='RM17') THEN
   CALL GZ_M_W_MF(D, PVM, PDZZ, ZWK)
   CALL MZF_MF(D, ZWK, ZDVDZ)
   !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-  ZSHEAR(IIJB:IIJE,1:IKT) = SQRT(ZDUDZ(IIJB:IIJE,1:IKT)**2 + ZDVDZ(IIJB:IIJE,1:IKT)**2)
+  ZSHEAR(:,:) = SQRT(ZDUDZ(:,:)**2 + ZDVDZ(:,:)**2)
   !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 ELSE
-  ZSHEAR(IIJB:IIJE,:) = 0. !no shear in bl89 mixing length
+  ZSHEAR(:,:) = 0. !no shear in bl89 mixing length
 END IF
 !
 CALL COMPUTE_BL89_ML(D, CST, CSTURB, PDZZ,ZTKEM_F(:,IKB),ZG_O_THVREF(:,IKB), &
                        ZTHVM_F,IKB,GLMIX,.TRUE.,ZSHEAR,ZLUP)
 !$mnh_expand_array(JIJ=IIJB:IIJE)
-ZLUP(IIJB:IIJE)=MAX(ZLUP(IIJB:IIJE),1.E-10)
+ZLUP(:)=MAX(ZLUP(:),1.E-10)
 !$mnh_end_expand_array(JIJ=IIJB:IIJE)
 
 DO JIJ=IIJB,IIJE
@@ -442,9 +442,9 @@ DO JK=IKB,IKE-IKL,IKL
   ! Compute theta_v of updraft at flux level JK    
     
     !$mnh_expand_array(JIJ=IIJB:IIJE)
-    ZRC_UP(IIJB:IIJE)   =PRC_UP(IIJB:IIJE,JK) ! guess
-    ZRI_UP(IIJB:IIJE)   =PRI_UP(IIJB:IIJE,JK) ! guess 
-    ZRV_UP(IIJB:IIJE)   =PRV_UP(IIJB:IIJE,JK)
+    ZRC_UP(:)   =PRC_UP(:,JK) ! guess
+    ZRI_UP(:)   =PRI_UP(:,JK) ! guess 
+    ZRV_UP(:)   =PRV_UP(:,JK)
     !$mnh_end_expand_array(JIJ=IIJB:IIJE)
     CALL TH_R_FROM_THL_RT(CST,NEB, D%NIJT, HFRAC_ICE,PFRAC_ICE_UP(:,JK),&
                PPABSM(:,JK),PTHL_UP(:,JK),PRT_UP(:,JK),&
@@ -537,17 +537,17 @@ DO JK=IKB,IKE-IKL,IKL
 !  DO JSV=1,ISV 
 !     IF (ONOMIXLG .AND. JSV >= KSV_LGBEG .AND. JSV<= KSV_LGEND) CYCLE
 !      WHERE(GTEST) 
-!           PSV_UP(IIJB:IIJE,JK+KKL,JSV) = (PSV_UP (IIJB:IIJE,JK,JSV)*(1-0.5*ZMIX2(IIJB:IIJE)) + &
-!                        PSVM(IIJB:IIJE,JK,JSV)*ZMIX2(IIJB:IIJE))  /(1+0.5*ZMIX2(IIJB:IIJE))
+!           PSV_UP(:,JK+KKL,JSV) = (PSV_UP (:,JK,JSV)*(1-0.5*ZMIX2(:)) + &
+!                        PSVM(:,JK,JSV)*ZMIX2(:))  /(1+0.5*ZMIX2(:))
 !      ENDWHERE                        
 !  ENDDO  
   
   
   ! Compute non cons. var. at level JK+KKL
   !$mnh_expand_array(JIJ=IIJB:IIJE)
-  ZRC_UP(IIJB:IIJE)=PRC_UP(IIJB:IIJE,JK) ! guess = level just below
-  ZRI_UP(IIJB:IIJE)=PRI_UP(IIJB:IIJE,JK) ! guess = level just below
-  ZRV_UP(IIJB:IIJE)=PRV_UP(IIJB:IIJE,JK)
+  ZRC_UP(:)=PRC_UP(:,JK) ! guess = level just below
+  ZRI_UP(:)=PRI_UP(:,JK) ! guess = level just below
+  ZRV_UP(:)=PRV_UP(:,JK)
   !$mnh_end_expand_array(JIJ=IIJB:IIJE)
   CALL TH_R_FROM_THL_RT(CST,NEB, D%NIJT, HFRAC_ICE,PFRAC_ICE_UP(:,JK+IKL),ZPRES_F(:,JK+IKL), &
           PTHL_UP(:,JK+IKL),PRT_UP(:,JK+IKL),ZTH_UP(:,JK+IKL),              &
@@ -568,7 +568,7 @@ DO JK=IKB,IKE-IKL,IKL
       PRSAT_UP(JIJ,JK+IKL) = ZRSATW(JIJ)*(1-PFRAC_ICE_UP(JIJ,JK+IKL)) + ZRSATI(JIJ)*PFRAC_ICE_UP(JIJ,JK+IKL)
 
       ! Compute the updraft theta_v, buoyancy and w**2 for level JK+1   
-      !PTHV_UP(IIJB:IIJE,JK+KKL) = PTH_UP(IIJB:IIJE,JK+KKL)*((1+ZRVORD*PRV_UP(IIJB:IIJE,JK+KKL))/(1+PRT_UP(IIJB:IIJE,JK+KKL)))
+      !PTHV_UP(:,JK+KKL) = PTH_UP(:,JK+KKL)*((1+ZRVORD*PRV_UP(:,JK+KKL))/(1+PRT_UP(:,JK+KKL)))
       !PTHV_UP(JIJ,JK+KKL) = ZTH_UP(JIJ,JK+KKL)*(1.+0.608*PRV_UP(JIJ,JK+KKL) - PRC_UP(JIJ,JK+KKL))
       !! A corriger pour utiliser q et non r !!!!      
       !ZMIX1(JIJ)=ZZDZ(JIJ,JK)*(PENTR(JIJ,JK)-PDETR(JIJ,JK))
@@ -620,10 +620,10 @@ DO JK=IKB,IKE-IKL,IKL
 ENDDO   ! Fin de la boucle verticale 
 
 !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-PW_UP(IIJB:IIJE,1:IKT)=SQRT(ZW_UP2(IIJB:IIJE,1:IKT))
+PW_UP(:,:)=SQRT(ZW_UP2(:,:))
 !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 !$mnh_expand_array(JIJ=IIJB:IIJE)
-PEMF(IIJB:IIJE,IKB) =0.
+PEMF(:,IKB) =0.
 !$mnh_end_expand_array(JIJ=IIJB:IIJE)
 
 ! Limits the shallow convection scheme when cloud heigth is higher than 3000m.
@@ -637,13 +637,13 @@ DO JIJ=IIJB,IIJE
 ENDDO
 
 !$mnh_expand_array(JIJ=IIJB:IIJE)
-GWORK1(IIJB:IIJE)= (GTESTLCL(IIJB:IIJE) .AND. (PDEPTH(IIJB:IIJE) > ZDEPTH_MAX1) )
+GWORK1(:)= (GTESTLCL(:) .AND. (PDEPTH(:) > ZDEPTH_MAX1) )
 !$mnh_end_expand_array(JIJ=IIJB:IIJE)
 DO JK=1,IKT
   !$mnh_expand_array(JIJ=IIJB:IIJE)
-  GWORK2(IIJB:IIJE,JK) = GWORK1(IIJB:IIJE)
-  ZCOEF(IIJB:IIJE,JK) = (1.-(PDEPTH(IIJB:IIJE)-ZDEPTH_MAX1)/(ZDEPTH_MAX2-ZDEPTH_MAX1))
-  ZCOEF(IIJB:IIJE,JK)=MIN(MAX(ZCOEF(IIJB:IIJE,JK),0.),1.)
+  GWORK2(:,JK) = GWORK1(:)
+  ZCOEF(:,JK) = (1.-(PDEPTH(:)-ZDEPTH_MAX1)/(ZDEPTH_MAX2-ZDEPTH_MAX1))
+  ZCOEF(:,JK)=MIN(MAX(ZCOEF(:,JK),0.),1.)
   !$mnh_end_expand_array(JIJ=IIJB:IIJE)
 ENDDO
 DO JK=1,IKT
diff --git a/src/PHYEX/turb/mode_emoist.f90 b/src/PHYEX/turb/mode_emoist.f90
index 477e6373791683a053476a0fe0b71dcbc3383f91..ccb80699a775ddc5be706875ef6c01e3bf5739ed 100644
--- a/src/PHYEX/turb/mode_emoist.f90
+++ b/src/PHYEX/turb/mode_emoist.f90
@@ -110,79 +110,79 @@ IKT=D%NKT
 IF (OOCEAN) THEN
  IF ( KRR == 0 ) THEN                                ! Unsalted
   !$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:IKT)
-   PEMOIST(IIB:IIE,IJB:IJE,1:IKT) = 0.
+   PEMOIST(IIB:IIE,IJB:IJE,:) = 0.
   !$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:IKT)
  ELSE
    !$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:IKT)
-   PEMOIST(IIB:IIE,IJB:IJE,1:IKT) = 1.                              ! Salted case
+   PEMOIST(IIB:IIE,IJB:IJE,:) = 1.                              ! Salted case
    !$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:IKT)
  END IF
 !
 ELSE
 !
  IF ( KRR == 0 ) THEN                                ! dry case
-   PEMOIST(IIB:IIE,IJB:IJE,1:IKT) = 0.
+   PEMOIST(IIB:IIE,IJB:IJE,:) = 0.
  ELSE IF ( KRR == 1 ) THEN                           ! only vapor
   ZDELTA = (CST%XRV/CST%XRD) - 1.
   !$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:IKT)
-  PEMOIST(IIB:IIE,IJB:IJE,1:IKT) = ZDELTA*PTHLM(IIB:IIE,IJB:IJE,1:IKT)
+  PEMOIST(IIB:IIE,IJB:IJE,:) = ZDELTA*PTHLM(IIB:IIE,IJB:IJE,:)
   !$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:IKT)
  ELSE                                                ! liquid water & ice present
   ZDELTA = (CST%XRV/CST%XRD) - 1.
-  ZRW(IIB:IIE,IJB:IJE,1:IKT) = PRM(IIB:IIE,IJB:IJE,1:IKT,1)
+  ZRW(IIB:IIE,IJB:IJE,:) = PRM(IIB:IIE,IJB:IJE,:,1)
 !
   IF ( KRRI>0) THEN  ! rc and ri case
     !$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:IKT)
-    ZRW(IIB:IIE,IJB:IJE,1:IKT) = ZRW(IIB:IIE,IJB:IJE,1:IKT) + PRM(IIB:IIE,IJB:IJE,1:IKT,3)
+    ZRW(IIB:IIE,IJB:IJE,:) = ZRW(IIB:IIE,IJB:IJE,:) + PRM(IIB:IIE,IJB:IJE,:,3)
     !$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:IKT)
     DO JRR=5,KRR
       !$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:IKT)
-      ZRW(IIB:IIE,IJB:IJE,1:IKT) = ZRW(IIB:IIE,IJB:IJE,1:IKT) + PRM(IIB:IIE,IJB:IJE,1:IKT,JRR)
+      ZRW(IIB:IIE,IJB:IJE,:) = ZRW(IIB:IIE,IJB:IJE,:) + PRM(IIB:IIE,IJB:IJE,:,JRR)
       !$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:IKT)
     ENDDO
     !$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:IKT)
-    ZA(IIB:IIE,IJB:IJE,1:IKT) = 1. + (                                    &  ! Compute A
-              (1.+ZDELTA) * (PRM(IIB:IIE,IJB:IJE,1:IKT,1) - PRM(IIB:IIE,IJB:IJE,1:IKT,2) - PRM(IIB:IIE,IJB:IJE,1:IKT,4)) &
-              -ZRW(IIB:IIE,IJB:IJE,1:IKT)                                                &
-                     )  /  (1. + ZRW(IIB:IIE,IJB:IJE,1:IKT)) 
+    ZA(IIB:IIE,IJB:IJE,:) = 1. + (                                    &  ! Compute A
+              (1.+ZDELTA) * (PRM(IIB:IIE,IJB:IJE,:,1) - PRM(IIB:IIE,IJB:IJE,:,2) - PRM(IIB:IIE,IJB:IJE,:,4)) &
+              -ZRW(IIB:IIE,IJB:IJE,:)                                                &
+                     )  /  (1. + ZRW(IIB:IIE,IJB:IJE,:)) 
   !
   !   Emoist = ZB + ZC * Amoist
   !   ZB is computed from line 1 to line 2
   !   ZC is computed from line 3 to line 5
   !   Amoist* 2 * SRC is computed at line 6
   !
-    PEMOIST(IIB:IIE,IJB:IJE,1:IKT) = ZDELTA * (PTHLM(IIB:IIE,IJB:IJE,1:IKT) + PLOCPEXNM(IIB:IIE,IJB:IJE,1:IKT)*(           &
-                                                    PRM(IIB:IIE,IJB:IJE,1:IKT,2)+PRM(IIB:IIE,IJB:IJE,1:IKT,4)))&
-                            / (1. + ZRW(IIB:IIE,IJB:IJE,1:IKT))                                &
-        +( PLOCPEXNM(IIB:IIE,IJB:IJE,1:IKT) * ZA(IIB:IIE,IJB:IJE,1:IKT)                                        &
-               -(1.+ZDELTA) * (PTHLM(IIB:IIE,IJB:IJE,1:IKT) + PLOCPEXNM(IIB:IIE,IJB:IJE,1:IKT)*(               &
-                                                    PRM(IIB:IIE,IJB:IJE,1:IKT,2)+PRM(IIB:IIE,IJB:IJE,1:IKT,4)))&
-                            / (1. + ZRW(IIB:IIE,IJB:IJE,1:IKT))                                &
-         ) * PAMOIST(IIB:IIE,IJB:IJE,1:IKT) * 2. * PSRCM(IIB:IIE,IJB:IJE,1:IKT)
+    PEMOIST(IIB:IIE,IJB:IJE,:) = ZDELTA * (PTHLM(IIB:IIE,IJB:IJE,:) + PLOCPEXNM(IIB:IIE,IJB:IJE,:)*(           &
+                                                    PRM(IIB:IIE,IJB:IJE,:,2)+PRM(IIB:IIE,IJB:IJE,:,4)))&
+                            / (1. + ZRW(IIB:IIE,IJB:IJE,:))                                &
+        +( PLOCPEXNM(IIB:IIE,IJB:IJE,:) * ZA(IIB:IIE,IJB:IJE,:)                                        &
+               -(1.+ZDELTA) * (PTHLM(IIB:IIE,IJB:IJE,:) + PLOCPEXNM(IIB:IIE,IJB:IJE,:)*(               &
+                                                    PRM(IIB:IIE,IJB:IJE,:,2)+PRM(IIB:IIE,IJB:IJE,:,4)))&
+                            / (1. + ZRW(IIB:IIE,IJB:IJE,:))                                &
+         ) * PAMOIST(IIB:IIE,IJB:IJE,:) * 2. * PSRCM(IIB:IIE,IJB:IJE,:)
     !$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:IKT)
   ELSE
     DO JRR=3,KRR
       !$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:IKT)
-      ZRW(IIB:IIE,IJB:IJE,1:IKT) = ZRW(IIB:IIE,IJB:IJE,1:IKT) + PRM(IIB:IIE,IJB:IJE,1:IKT,JRR)
+      ZRW(IIB:IIE,IJB:IJE,:) = ZRW(IIB:IIE,IJB:IJE,:) + PRM(IIB:IIE,IJB:IJE,:,JRR)
       !$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:IKT)
     ENDDO
     !$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:IKT)
-    ZA(IIB:IIE,IJB:IJE,1:IKT) = 1. + (                                    &  ! Compute ZA
-              (1.+ZDELTA) * (PRM(IIB:IIE,IJB:IJE,1:IKT,1) - PRM(IIB:IIE,IJB:IJE,1:IKT,2)) &
-              -ZRW(IIB:IIE,IJB:IJE,1:IKT)                                 &
-                     )  /  (1. + ZRW(IIB:IIE,IJB:IJE,1:IKT)) 
+    ZA(IIB:IIE,IJB:IJE,:) = 1. + (                                    &  ! Compute ZA
+              (1.+ZDELTA) * (PRM(IIB:IIE,IJB:IJE,:,1) - PRM(IIB:IIE,IJB:IJE,:,2)) &
+              -ZRW(IIB:IIE,IJB:IJE,:)                                 &
+                     )  /  (1. + ZRW(IIB:IIE,IJB:IJE,:)) 
   !
   !   Emoist = ZB + ZC * Amoist
   !   ZB is computed from line 1 to line 2
   !   ZC is computed from line 3 to line 5
   !   Amoist* 2 * SRC is computed at line 6
   !
-    PEMOIST(IIB:IIE,IJB:IJE,1:IKT) = ZDELTA * (PTHLM(IIB:IIE,IJB:IJE,1:IKT) + PLOCPEXNM(IIB:IIE,IJB:IJE,1:IKT)* &
-                                       PRM(IIB:IIE,IJB:IJE,1:IKT,2)) / (1. + ZRW(IIB:IIE,IJB:IJE,1:IKT))          &
-        +( PLOCPEXNM(IIB:IIE,IJB:IJE,1:IKT) * ZA(IIB:IIE,IJB:IJE,1:IKT)                                        &
-               -(1.+ZDELTA) * (PTHLM(IIB:IIE,IJB:IJE,1:IKT) + PLOCPEXNM(IIB:IIE,IJB:IJE,1:IKT)* &
-               PRM(IIB:IIE,IJB:IJE,1:IKT,2)) / (1. + ZRW(IIB:IIE,IJB:IJE,1:IKT))                                &
-         ) * PAMOIST(IIB:IIE,IJB:IJE,1:IKT) * 2. * PSRCM(IIB:IIE,IJB:IJE,1:IKT)
+    PEMOIST(IIB:IIE,IJB:IJE,:) = ZDELTA * (PTHLM(IIB:IIE,IJB:IJE,:) + PLOCPEXNM(IIB:IIE,IJB:IJE,:)* &
+                                       PRM(IIB:IIE,IJB:IJE,:,2)) / (1. + ZRW(IIB:IIE,IJB:IJE,:))          &
+        +( PLOCPEXNM(IIB:IIE,IJB:IJE,:) * ZA(IIB:IIE,IJB:IJE,:)                                        &
+               -(1.+ZDELTA) * (PTHLM(IIB:IIE,IJB:IJE,:) + PLOCPEXNM(IIB:IIE,IJB:IJE,:)* &
+               PRM(IIB:IIE,IJB:IJE,:,2)) / (1. + ZRW(IIB:IIE,IJB:IJE,:))                                &
+         ) * PAMOIST(IIB:IIE,IJB:IJE,:) * 2. * PSRCM(IIB:IIE,IJB:IJE,:)
     !$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:IKT)
   END IF
  END IF
diff --git a/src/PHYEX/turb/mode_etheta.f90 b/src/PHYEX/turb/mode_etheta.f90
index 0c03e420beea467ac2ab2fbc8d5a95a9890b87db..01297bdb7bcde7e757ab0548131cb9c821d6252c 100644
--- a/src/PHYEX/turb/mode_etheta.f90
+++ b/src/PHYEX/turb/mode_etheta.f90
@@ -114,71 +114,71 @@ IKT=D%NKT
 !
 IF (OOCEAN) THEN                                    ! ocean case
   !$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:IKT)
-  PETHETA(IIB:IIE,IJB:IJE,1:IKT) =  1.
+  PETHETA(IIB:IIE,IJB:IJE,:) =  1.
   !$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:IKT)
 ELSE   
  IF ( KRR == 0) THEN                                ! dry case
  !$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:IKT)
-  PETHETA(IIB:IIE,IJB:IJE,1:IKT) = 1.
+  PETHETA(IIB:IIE,IJB:IJE,:) = 1.
  !$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:IKT)
  ELSE IF ( KRR == 1 ) THEN                           ! only vapor
   ZDELTA = (CST%XRV/CST%XRD) - 1.
   !$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:IKT)
-  PETHETA(IIB:IIE,IJB:IJE,1:IKT) = 1. + ZDELTA*PRM(IIB:IIE,IJB:IJE,1:IKT,1)
+  PETHETA(IIB:IIE,IJB:IJE,:) = 1. + ZDELTA*PRM(IIB:IIE,IJB:IJE,:,1)
   !$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:IKT)
  ELSE                                                ! liquid water & ice present
   ZDELTA = (CST%XRV/CST%XRD) - 1.
   !$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:IKT)
-  ZRW(IIB:IIE,IJB:IJE,1:IKT) = PRM(IIB:IIE,IJB:IJE,1:IKT,1)
+  ZRW(IIB:IIE,IJB:IJE,:) = PRM(IIB:IIE,IJB:IJE,:,1)
   !$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:IKT)
 !
   IF ( KRRI>0 ) THEN  ! rc and ri case
     !$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:IKT)
-    ZRW(IIB:IIE,IJB:IJE,1:IKT) = ZRW(IIB:IIE,IJB:IJE,1:IKT) + PRM(IIB:IIE,IJB:IJE,1:IKT,3)
+    ZRW(IIB:IIE,IJB:IJE,:) = ZRW(IIB:IIE,IJB:IJE,:) + PRM(IIB:IIE,IJB:IJE,:,3)
     !$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:IKT)
     DO JRR=5,KRR
       !$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:IKT)
-      ZRW(IIB:IIE,IJB:IJE,1:IKT) = ZRW(IIB:IIE,IJB:IJE,1:IKT) + PRM(IIB:IIE,IJB:IJE,1:IKT,JRR)
+      ZRW(IIB:IIE,IJB:IJE,:) = ZRW(IIB:IIE,IJB:IJE,:) + PRM(IIB:IIE,IJB:IJE,:,JRR)
       !$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:IKT)
     ENDDO
     !$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:IKT)
-    ZA(IIB:IIE,IJB:IJE,1:IKT) = 1. + (                                    &  ! Compute A
-              (1.+ZDELTA) * (PRM(IIB:IIE,IJB:IJE,1:IKT,1) - PRM(IIB:IIE,IJB:IJE,1:IKT,2) - PRM(IIB:IIE,IJB:IJE,1:IKT,4)) &
-              -ZRW(IIB:IIE,IJB:IJE,1:IKT)                                                &
-                     )  /  (1. + ZRW(IIB:IIE,IJB:IJE,1:IKT))
+    ZA(IIB:IIE,IJB:IJE,:) = 1. + (                                    &  ! Compute A
+              (1.+ZDELTA) * (PRM(IIB:IIE,IJB:IJE,:,1) - PRM(IIB:IIE,IJB:IJE,:,2) - PRM(IIB:IIE,IJB:IJE,:,4)) &
+              -ZRW(IIB:IIE,IJB:IJE,:)                                                &
+                     )  /  (1. + ZRW(IIB:IIE,IJB:IJE,:))
   !
   !   Etheta = ZA + ZC * Atheta  
   !   ZC is computed from line 2 to line 5
   !   - Atheta * 2. * SRC is computed at line 6 
   !
-    PETHETA(IIB:IIE,IJB:IJE,1:IKT) = ZA(IIB:IIE,IJB:IJE,1:IKT)                                                 &
-        +( PLOCPEXNM(IIB:IIE,IJB:IJE,1:IKT) * ZA(IIB:IIE,IJB:IJE,1:IKT)                                        &
-               -(1.+ZDELTA) * (PTHLM(IIB:IIE,IJB:IJE,1:IKT) + PLOCPEXNM(IIB:IIE,IJB:IJE,1:IKT)*(               &
-                                                    PRM(IIB:IIE,IJB:IJE,1:IKT,2)+PRM(IIB:IIE,IJB:IJE,1:IKT,4)))&
-                            / (1. + ZRW(IIB:IIE,IJB:IJE,1:IKT))                                &
-         ) * PATHETA(IIB:IIE,IJB:IJE,1:IKT) * 2. * PSRCM(IIB:IIE,IJB:IJE,1:IKT)
+    PETHETA(IIB:IIE,IJB:IJE,:) = ZA(IIB:IIE,IJB:IJE,:)                                                 &
+        +( PLOCPEXNM(IIB:IIE,IJB:IJE,:) * ZA(IIB:IIE,IJB:IJE,:)                                        &
+               -(1.+ZDELTA) * (PTHLM(IIB:IIE,IJB:IJE,:) + PLOCPEXNM(IIB:IIE,IJB:IJE,:)*(               &
+                                                    PRM(IIB:IIE,IJB:IJE,:,2)+PRM(IIB:IIE,IJB:IJE,:,4)))&
+                            / (1. + ZRW(IIB:IIE,IJB:IJE,:))                                &
+         ) * PATHETA(IIB:IIE,IJB:IJE,:) * 2. * PSRCM(IIB:IIE,IJB:IJE,:)
     !$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:IKT)
   ELSE
     DO JRR=3,KRR
       !$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:IKT)
-      ZRW(IIB:IIE,IJB:IJE,1:IKT) = ZRW(IIB:IIE,IJB:IJE,1:IKT) + PRM(IIB:IIE,IJB:IJE,1:IKT,JRR)
+      ZRW(IIB:IIE,IJB:IJE,:) = ZRW(IIB:IIE,IJB:IJE,:) + PRM(IIB:IIE,IJB:IJE,:,JRR)
       !$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:IKT)
     ENDDO
     !$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:IKT)
-    ZA(IIB:IIE,IJB:IJE,1:IKT) = 1. + (                                    &  ! Compute A
-              (1.+ZDELTA) * (PRM(IIB:IIE,IJB:IJE,1:IKT,1) - PRM(IIB:IIE,IJB:IJE,1:IKT,2)) &
-              -ZRW(IIB:IIE,IJB:IJE,1:IKT)                                 &
-                     )  /  (1. + ZRW(IIB:IIE,IJB:IJE,1:IKT))
+    ZA(IIB:IIE,IJB:IJE,:) = 1. + (                                    &  ! Compute A
+              (1.+ZDELTA) * (PRM(IIB:IIE,IJB:IJE,:,1) - PRM(IIB:IIE,IJB:IJE,:,2)) &
+              -ZRW(IIB:IIE,IJB:IJE,:)                                 &
+                     )  /  (1. + ZRW(IIB:IIE,IJB:IJE,:))
   !
   !   Etheta = ZA + ZC * Atheta  
   !   ZC is computed from line 2 to line 5
   !   - Atheta * 2. * SRC is computed at line 6 
   !
-    PETHETA(IIB:IIE,IJB:IJE,1:IKT) = ZA(IIB:IIE,IJB:IJE,1:IKT)                                                 &
-        +( PLOCPEXNM(IIB:IIE,IJB:IJE,1:IKT) * ZA(IIB:IIE,IJB:IJE,1:IKT) -(1.+ZDELTA) * (PTHLM(IIB:IIE,IJB:IJE,1:IKT) &
-        + PLOCPEXNM(IIB:IIE,IJB:IJE,1:IKT)*PRM(IIB:IIE,IJB:IJE,1:IKT,2))   &
-         / (1. + ZRW(IIB:IIE,IJB:IJE,1:IKT))                                 &
-         ) * PATHETA(IIB:IIE,IJB:IJE,1:IKT) * 2. * PSRCM(IIB:IIE,IJB:IJE,1:IKT)
+    PETHETA(IIB:IIE,IJB:IJE,:) = ZA(IIB:IIE,IJB:IJE,:)                                                 &
+        +( PLOCPEXNM(IIB:IIE,IJB:IJE,:) * ZA(IIB:IIE,IJB:IJE,:) -(1.+ZDELTA) * (PTHLM(IIB:IIE,IJB:IJE,:) &
+        + PLOCPEXNM(IIB:IIE,IJB:IJE,:)*PRM(IIB:IIE,IJB:IJE,:,2))   &
+         / (1. + ZRW(IIB:IIE,IJB:IJE,:))                                 &
+         ) * PATHETA(IIB:IIE,IJB:IJE,:) * 2. * PSRCM(IIB:IIE,IJB:IJE,:)
     !$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:IKT)
   END IF
  END IF
diff --git a/src/PHYEX/turb/mode_mf_turb.f90 b/src/PHYEX/turb/mode_mf_turb.f90
index f168dfc9606cf5ea552063937da23328a00a934e..0cede49ad0e9f14b030d1d005c51ffd31f246681 100644
--- a/src/PHYEX/turb/mode_mf_turb.f90
+++ b/src/PHYEX/turb/mode_mf_turb.f90
@@ -162,17 +162,17 @@ CALL MZM_MF(D, PRTM(:,:), PFLXZRMF(:,:))
 CALL MZM_MF(D, PTHVM(:,:), PFLXZTHVMF(:,:))
 
 !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-PFLXZTHMF(IIJB:IIJE,1:IKT) = PEMF(IIJB:IIJE,1:IKT)*(PTHL_UP(IIJB:IIJE,1:IKT)-PFLXZTHMF(IIJB:IIJE,1:IKT))
-PFLXZRMF(IIJB:IIJE,1:IKT) =  PEMF(IIJB:IIJE,1:IKT)*(PRT_UP(IIJB:IIJE,1:IKT)-PFLXZRMF(IIJB:IIJE,1:IKT))
-PFLXZTHVMF(IIJB:IIJE,1:IKT) = PEMF(IIJB:IIJE,1:IKT)*(PTHV_UP(IIJB:IIJE,1:IKT)-PFLXZTHVMF(IIJB:IIJE,1:IKT))
+PFLXZTHMF(:,:) = PEMF(:,:)*(PTHL_UP(:,:)-PFLXZTHMF(:,:))
+PFLXZRMF(:,:) =  PEMF(:,:)*(PRT_UP(:,:)-PFLXZRMF(:,:))
+PFLXZTHVMF(:,:) = PEMF(:,:)*(PTHV_UP(:,:)-PFLXZTHVMF(:,:))
 !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 
 IF (OMIXUV) THEN
   CALL MZM_MF(D, PUM(:,:), PFLXZUMF(:,:))
   CALL MZM_MF(D, PVM(:,:), PFLXZVMF(:,:))
   !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-  PFLXZUMF(IIJB:IIJE,1:IKT) =  PEMF(IIJB:IIJE,1:IKT)*(PU_UP(IIJB:IIJE,1:IKT)-PFLXZUMF(IIJB:IIJE,1:IKT))
-  PFLXZVMF(IIJB:IIJE,1:IKT) =  PEMF(IIJB:IIJE,1:IKT)*(PV_UP(IIJB:IIJE,1:IKT)-PFLXZVMF(IIJB:IIJE,1:IKT))
+  PFLXZUMF(:,:) =  PEMF(:,:)*(PU_UP(:,:)-PFLXZUMF(:,:))
+  PFLXZVMF(:,:) =  PEMF(:,:)*(PV_UP(:,:)-PFLXZVMF(:,:))
   !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 ELSE
   PFLXZUMF(:,:) = 0.
@@ -197,8 +197,8 @@ CALL TRIDIAG_MASSFLUX(D,PTHLM,PFLXZTHMF,-PEMF,PTSTEP,PIMPL,  &
 ! compute new flux and THL tendency
 CALL MZM_MF(D, ZVARS(:,:), PFLXZTHMF(:,:))
 !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-PFLXZTHMF(IIJB:IIJE,1:IKT) = PEMF(IIJB:IIJE,1:IKT)*(PTHL_UP(IIJB:IIJE,1:IKT)-PFLXZTHMF(IIJB:IIJE,1:IKT))
-PTHLDT(IIJB:IIJE,1:IKT)= (ZVARS(IIJB:IIJE,1:IKT)-PTHLM(IIJB:IIJE,1:IKT))/PTSTEP
+PFLXZTHMF(:,:) = PEMF(:,:)*(PTHL_UP(:,:)-PFLXZTHMF(:,:))
+PTHLDT(:,:)= (ZVARS(:,:)-PTHLM(:,:))/PTSTEP
 !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 
 !
@@ -209,8 +209,8 @@ CALL TRIDIAG_MASSFLUX(D,PRTM(:,:),PFLXZRMF,-PEMF,PTSTEP,PIMPL,  &
 ! compute new flux and RT tendency
 CALL MZM_MF(D, ZVARS(:,:), PFLXZRMF(:,:))
 !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-PFLXZRMF(IIJB:IIJE,1:IKT) =  PEMF(IIJB:IIJE,1:IKT)*(PRT_UP(IIJB:IIJE,1:IKT)-PFLXZRMF(IIJB:IIJE,1:IKT))
-PRTDT(IIJB:IIJE,1:IKT) = (ZVARS(IIJB:IIJE,1:IKT)-PRTM(IIJB:IIJE,1:IKT))/PTSTEP
+PFLXZRMF(:,:) =  PEMF(:,:)*(PRT_UP(:,:)-PFLXZRMF(:,:))
+PRTDT(:,:) = (ZVARS(:,:)-PRTM(:,:))/PTSTEP
 !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 !
 
@@ -225,8 +225,8 @@ IF (OMIXUV) THEN
   ! compute new flux and U tendency
   CALL MZM_MF(D, ZVARS(:,:), PFLXZUMF(:,:))
   !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-  PFLXZUMF(IIJB:IIJE,1:IKT) = PEMF(IIJB:IIJE,1:IKT)*(PU_UP(IIJB:IIJE,1:IKT)-PFLXZUMF(IIJB:IIJE,1:IKT))
-  PUDT(IIJB:IIJE,1:IKT)= (ZVARS(IIJB:IIJE,1:IKT)-PUM(IIJB:IIJE,1:IKT))/PTSTEP
+  PFLXZUMF(:,:) = PEMF(:,:)*(PU_UP(:,:)-PFLXZUMF(:,:))
+  PUDT(:,:)= (ZVARS(:,:)-PUM(:,:))/PTSTEP
   !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
   !
   !
@@ -239,8 +239,8 @@ IF (OMIXUV) THEN
   ! compute new flux and V tendency
   CALL MZM_MF(D, ZVARS(:,:), PFLXZVMF(:,:))
   !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-  PFLXZVMF(IIJB:IIJE,1:IKT) = PEMF(IIJB:IIJE,1:IKT)*(PV_UP(IIJB:IIJE,1:IKT)-PFLXZVMF(IIJB:IIJE,1:IKT))
-  PVDT(IIJB:IIJE,1:IKT)= (ZVARS(IIJB:IIJE,1:IKT)-PVM(IIJB:IIJE,1:IKT))/PTSTEP
+  PFLXZVMF(:,:) = PEMF(:,:)*(PV_UP(:,:)-PFLXZVMF(:,:))
+  PVDT(:,:)= (ZVARS(:,:)-PVM(:,:))/PTSTEP
   !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 ELSE
   PUDT(:,:)=0.
@@ -256,8 +256,8 @@ DO JSV=1,KSV
 
   CALL MZM_MF(D, PSVM(:,:,JSV), PFLXZSVMF(:,:,JSV))
   !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-  PFLXZSVMF(IIJB:IIJE,1:IKT,JSV) = PEMF(IIJB:IIJE,1:IKT)*&
-                                       & (PSV_UP(IIJB:IIJE,1:IKT,JSV)-PFLXZSVMF(IIJB:IIJE,1:IKT,JSV))
+  PFLXZSVMF(:,:,JSV) = PEMF(:,:)*&
+                                       & (PSV_UP(:,:,JSV)-PFLXZSVMF(:,:,JSV))
   !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
   !
   ! 3.5 Compute the tendency for scalar variables
@@ -268,9 +268,9 @@ DO JSV=1,KSV
   ! compute new flux and Sv tendency
   CALL MZM_MF(D, ZVARS, PFLXZSVMF(:,:,JSV))
   !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-  PFLXZSVMF(IIJB:IIJE,1:IKT,JSV) = PEMF(IIJB:IIJE,1:IKT)*&
-                                       & (PSV_UP(IIJB:IIJE,1:IKT,JSV)-PFLXZSVMF(IIJB:IIJE,1:IKT,JSV))
-  PSVDT(IIJB:IIJE,1:IKT,JSV)= (ZVARS(IIJB:IIJE,1:IKT)-PSVM(IIJB:IIJE,1:IKT,JSV))/PTSTEP
+  PFLXZSVMF(:,:,JSV) = PEMF(:,:)*&
+                                       & (PSV_UP(:,:,JSV)-PFLXZSVMF(:,:,JSV))
+  PSVDT(:,:,JSV)= (ZVARS(:,:)-PSVM(:,:,JSV))/PTSTEP
   !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 
 ENDDO
diff --git a/src/PHYEX/turb/mode_mf_turb_expl.f90 b/src/PHYEX/turb/mode_mf_turb_expl.f90
index 79fc3919e2eaa1ad73986573b672e0ef3787812c..8463dd902a9d46b751d72663cd10101cc9ddfefc 100644
--- a/src/PHYEX/turb/mode_mf_turb_expl.f90
+++ b/src/PHYEX/turb/mode_mf_turb_expl.f90
@@ -138,29 +138,29 @@ PVDT   = 0.
 CALL MZM_MF(D, PRTM (:,:), ZRTM_F(:,:))
 CALL MZM_MF(D, PTHLM(:,:), ZTHLM_F(:,:))
 !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-ZQTM(IIJB:IIJE,1:IKT)   = ZRTM_F(IIJB:IIJE,1:IKT)/(1.+ZRTM_F(IIJB:IIJE,1:IKT))
-ZQT_UP(IIJB:IIJE,1:IKT) = PRT_UP(IIJB:IIJE,1:IKT)/(1.+PRT_UP(IIJB:IIJE,1:IKT))
-ZTHS_UP(IIJB:IIJE,1:IKT)= PTHL_UP(IIJB:IIJE,1:IKT)*(1.+PARAMMF%XLAMBDA_MF*ZQT_UP(IIJB:IIJE,1:IKT))
-ZTHSM(IIJB:IIJE,1:IKT)  = ZTHLM_F(IIJB:IIJE,1:IKT)*(1.+PARAMMF%XLAMBDA_MF*ZQTM(IIJB:IIJE,1:IKT))
+ZQTM(:,:)   = ZRTM_F(:,:)/(1.+ZRTM_F(:,:))
+ZQT_UP(:,:) = PRT_UP(:,:)/(1.+PRT_UP(:,:))
+ZTHS_UP(:,:)= PTHL_UP(:,:)*(1.+PARAMMF%XLAMBDA_MF*ZQT_UP(:,:))
+ZTHSM(:,:)  = ZTHLM_F(:,:)*(1.+PARAMMF%XLAMBDA_MF*ZQTM(:,:))
 !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 
 CALL MZM_MF(D, PTHLM(:,:), PFLXZTHLMF(:,:))
 CALL MZM_MF(D, PRTM(:,:), PFLXZRMF(:,:))
 CALL MZM_MF(D, PTHVM(:,:), PFLXZTHVMF(:,:))
 !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-PFLXZTHLMF(IIJB:IIJE,1:IKT)  = PEMF(IIJB:IIJE,1:IKT)*(PTHL_UP(IIJB:IIJE,1:IKT)-PFLXZTHLMF(IIJB:IIJE,1:IKT))  ! ThetaL
-PFLXZRMF(IIJB:IIJE,1:IKT)    = PEMF(IIJB:IIJE,1:IKT)*(PRT_UP(IIJB:IIJE,1:IKT)-PFLXZRMF(IIJB:IIJE,1:IKT))  ! Rt
-PFLXZTHVMF(IIJB:IIJE,1:IKT)  = PEMF(IIJB:IIJE,1:IKT)*(PTHV_UP(IIJB:IIJE,1:IKT)-PFLXZTHVMF(IIJB:IIJE,1:IKT))  ! ThetaV
+PFLXZTHLMF(:,:)  = PEMF(:,:)*(PTHL_UP(:,:)-PFLXZTHLMF(:,:))  ! ThetaL
+PFLXZRMF(:,:)    = PEMF(:,:)*(PRT_UP(:,:)-PFLXZRMF(:,:))  ! Rt
+PFLXZTHVMF(:,:)  = PEMF(:,:)*(PTHV_UP(:,:)-PFLXZTHVMF(:,:))  ! ThetaV
 
-ZFLXZTHSMF(IIJB:IIJE,1:IKT)  = PEMF(IIJB:IIJE,1:IKT)*(ZTHS_UP(IIJB:IIJE,1:IKT)-ZTHSM(IIJB:IIJE,1:IKT))    ! Theta S flux
+ZFLXZTHSMF(:,:)  = PEMF(:,:)*(ZTHS_UP(:,:)-ZTHSM(:,:))    ! Theta S flux
 !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 
 IF (PARAMMF%LMIXUV) THEN
   CALL MZM_MF(D, PUM(:,:), PFLXZUMF(:,:))
   CALL MZM_MF(D, PVM(:,:), PFLXZVMF(:,:))
   !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-  PFLXZUMF(IIJB:IIJE,1:IKT) =  PEMF(IIJB:IIJE,1:IKT)*(PU_UP(IIJB:IIJE,1:IKT)-PFLXZUMF(IIJB:IIJE,1:IKT))  ! U
-  PFLXZVMF(IIJB:IIJE,1:IKT) =  PEMF(IIJB:IIJE,1:IKT)*(PV_UP(IIJB:IIJE,1:IKT)-PFLXZVMF(IIJB:IIJE,1:IKT))  ! V
+  PFLXZUMF(:,:) =  PEMF(:,:)*(PU_UP(:,:)-PFLXZUMF(:,:))  ! U
+  PFLXZVMF(:,:) =  PEMF(:,:)*(PV_UP(:,:)-PFLXZVMF(:,:))  ! V
   !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 ELSE
   PFLXZUMF(:,:) = 0.
diff --git a/src/PHYEX/turb/mode_prandtl.f90 b/src/PHYEX/turb/mode_prandtl.f90
index f911cba340f766ae9cb41483fdb0fbed6072bb3b..f8f63f41324260074f34c016112306acd8e4fae9 100644
--- a/src/PHYEX/turb/mode_prandtl.f90
+++ b/src/PHYEX/turb/mode_prandtl.f90
@@ -264,8 +264,8 @@ CALL EMOIST(D,CST,KRR,KRRI,PTHLM,PRM,PLOCPEXNM,PAMOIST,PSRCM,OOCEAN,ZWORK2)
 CALL MZM_PHY(D,ZWORK1,PETHETA)
 CALL MZM_PHY(D,ZWORK2,PEMOIST)
 !$mnh_expand_array(JIJ=IIJB:IIJE)
-PETHETA(IIJB:IIJE,IKA) = 2.*PETHETA(IIJB:IIJE,IKB) - PETHETA(IIJB:IIJE,IKB+IKL)
-PEMOIST(IIJB:IIJE,IKA) = 2.*PEMOIST(IIJB:IIJE,IKB) - PEMOIST(IIJB:IIJE,IKB+IKL)
+PETHETA(:,IKA) = 2.*PETHETA(:,IKB) - PETHETA(:,IKB+IKL)
+PEMOIST(:,IKA) = 2.*PEMOIST(:,IKB) - PEMOIST(:,IKB+IKL)
 !$mnh_end_expand_array(JIJ=IIJB:IIJE)
 !
 !---------------------------------------------------------------------------
@@ -275,13 +275,13 @@ IF (.NOT. OHARAT) THEN
 !
 IF (OOCEAN) THEN
   !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-  ZWORK1(IIJB:IIJE,1:IKT) = CST%XG * CST%XALPHAOC * PLM(IIJB:IIJE,1:IKT) & 
-                                    * PLEPS(IIJB:IIJE,1:IKT) / PTKEM(IIJB:IIJE,1:IKT)
+  ZWORK1(:,:) = CST%XG * CST%XALPHAOC * PLM(:,:) & 
+                                    * PLEPS(:,:) / PTKEM(:,:)
   !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 ELSE
   !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-  ZWORK1(IIJB:IIJE,1:IKT) = CST%XG / PTHVREF(IIJB:IIJE,1:IKT) * PLM(IIJB:IIJE,1:IKT) & 
-                                    * PLEPS(IIJB:IIJE,1:IKT) / PTKEM(IIJB:IIJE,1:IKT)
+  ZWORK1(:,:) = CST%XG / PTHVREF(:,:) * PLM(:,:) & 
+                                    * PLEPS(:,:) / PTKEM(:,:)
   !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 END IF
 !
@@ -290,22 +290,22 @@ CALL GZ_M_W_PHY(D,PTHLM,PDZZ,ZWORK1)
 !
 IF (OOCEAN) THEN
   !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-  PREDTH1(IIJB:IIJE,1:IKT)= CSTURB%XCTV*PBLL_O_E(IIJB:IIJE,1:IKT)*ZWORK1(IIJB:IIJE,1:IKT)
+  PREDTH1(:,:)= CSTURB%XCTV*PBLL_O_E(:,:)*ZWORK1(:,:)
   !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
   PREDR1(:,:) = 0.
 ELSE
   IF (KRR /= 0) THEN                ! moist case
     CALL GZ_M_W_PHY(D,PRM(:,:,1),PDZZ,ZWORK2)
     !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-    PREDTH1(IIJB:IIJE,1:IKT)= CSTURB%XCTV*PBLL_O_E(IIJB:IIJE,1:IKT) * PETHETA(IIJB:IIJE,1:IKT) &
-                                      * ZWORK1(IIJB:IIJE,1:IKT)
-    PREDR1(IIJB:IIJE,1:IKT) = CSTURB%XCTV*PBLL_O_E(IIJB:IIJE,1:IKT) * PEMOIST(IIJB:IIJE,1:IKT) &
-                                      * ZWORK2(IIJB:IIJE,1:IKT)
+    PREDTH1(:,:)= CSTURB%XCTV*PBLL_O_E(:,:) * PETHETA(:,:) &
+                                      * ZWORK1(:,:)
+    PREDR1(:,:) = CSTURB%XCTV*PBLL_O_E(:,:) * PEMOIST(:,:) &
+                                      * ZWORK2(:,:)
     !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
   ELSE                              ! dry case
     !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-    PREDTH1(IIJB:IIJE,1:IKT)= CSTURB%XCTV*PBLL_O_E(IIJB:IIJE,1:IKT)  * ZWORK1(IIJB:IIJE,1:IKT)
-    PREDR1(IIJB:IIJE,1:IKT) = 0.
+    PREDTH1(:,:)= CSTURB%XCTV*PBLL_O_E(:,:)  * ZWORK1(:,:)
+    PREDR1(:,:) = 0.
     !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
   END IF
 END IF
@@ -371,7 +371,7 @@ ENDDO
 DO JSV=1,KSV
   CALL GZ_M_W_PHY(D,PSVM(:,:,JSV),PDZZ,ZWORK1)
   !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-  PREDS1(IIJB:IIJE,1:IKT,JSV)=CSTURB%XCTV*PBLL_O_E(IIJB:IIJE,1:IKT)*ZWORK1(IIJB:IIJE,1:IKT)
+  PREDS1(:,:,JSV)=CSTURB%XCTV*PBLL_O_E(:,:)*ZWORK1(:,:)
   !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 END DO
 !
@@ -397,60 +397,60 @@ IF(HTURBDIM=='1DIM') THEN        ! 1D case
 !
 !
   !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-  PRED2TH3(IIJB:IIJE,1:IKT)  = PREDTH1(IIJB:IIJE,1:IKT)**2
+  PRED2TH3(:,:)  = PREDTH1(:,:)**2
 !
-  PRED2R3(IIJB:IIJE,1:IKT)   = PREDR1(IIJB:IIJE,1:IKT) **2
+  PRED2R3(:,:)   = PREDR1(:,:) **2
 !
-  PRED2THR3(IIJB:IIJE,1:IKT) = PREDTH1(IIJB:IIJE,1:IKT) * PREDR1(IIJB:IIJE,1:IKT)
+  PRED2THR3(:,:) = PREDTH1(:,:) * PREDR1(:,:)
   !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 !
 ELSE IF (O2D) THEN                      ! 3D case in a 2D model
 !
     CALL GX_M_M_PHY(D,OFLAT,PTHLM,PDXX,PDZZ,PDZX,ZGXMM_PTH)
     !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-    ZWORK1(IIJB:IIJE,1:IKT) = ZGXMM_PTH(IIJB:IIJE,1:IKT)**2
+    ZWORK1(:,:) = ZGXMM_PTH(:,:)**2
     !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
     CALL MZM_PHY(D,ZWORK1,ZWORK2)
     !
   IF (KRR /= 0) THEN                 ! moist 3D case
     CALL GX_M_M_PHY(D,OFLAT,PRM(:,:,1),PDXX,PDZZ,PDZX,ZGXMM_PRM)
     !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-    ZWORK1(IIJB:IIJE,1:IKT) = ZGXMM_PRM(IIJB:IIJE,1:IKT)**2
+    ZWORK1(:,:) = ZGXMM_PRM(:,:)**2
     !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
     CALL MZM_PHY(D,ZWORK1,ZWORK3)
     !
     !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-    ZWORK1(IIJB:IIJE,1:IKT) = ZGXMM_PTH(IIJB:IIJE,1:IKT) * ZGXMM_PRM(IIJB:IIJE,1:IKT)
+    ZWORK1(:,:) = ZGXMM_PTH(:,:) * ZGXMM_PRM(:,:)
     !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
     CALL MZM_PHY(D,ZWORK1,ZWORK4)
     !
     !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-    PRED2TH3(IIJB:IIJE,1:IKT)= PREDTH1(IIJB:IIJE,1:IKT)**2+(CSTURB%XCTV*PBLL_O_E(IIJB:IIJE,1:IKT) &
-                                       *PETHETA(IIJB:IIJE,1:IKT) )**2 * ZWORK2(IIJB:IIJE,1:IKT)
+    PRED2TH3(:,:)= PREDTH1(:,:)**2+(CSTURB%XCTV*PBLL_O_E(:,:) &
+                                       *PETHETA(:,:) )**2 * ZWORK2(:,:)
 !
-    PRED2R3(IIJB:IIJE,1:IKT)= PREDR1(IIJB:IIJE,1:IKT)**2 + (CSTURB%XCTV*PBLL_O_E(IIJB:IIJE,1:IKT) &
-                                     * PEMOIST(IIJB:IIJE,1:IKT))**2 * ZWORK3(IIJB:IIJE,1:IKT)
+    PRED2R3(:,:)= PREDR1(:,:)**2 + (CSTURB%XCTV*PBLL_O_E(:,:) &
+                                     * PEMOIST(:,:))**2 * ZWORK3(:,:)
 !
-    PRED2THR3(IIJB:IIJE,1:IKT)= PREDR1(IIJB:IIJE,1:IKT) * PREDTH1(IIJB:IIJE,1:IKT) +  CSTURB%XCTV**2 &
-                                        * PBLL_O_E(IIJB:IIJE,1:IKT)**2   &
-                                        * PEMOIST(IIJB:IIJE,1:IKT) * PETHETA(IIJB:IIJE,1:IKT) &
-                                        * ZWORK4(IIJB:IIJE,1:IKT)
+    PRED2THR3(:,:)= PREDR1(:,:) * PREDTH1(:,:) +  CSTURB%XCTV**2 &
+                                        * PBLL_O_E(:,:)**2   &
+                                        * PEMOIST(:,:) * PETHETA(:,:) &
+                                        * ZWORK4(:,:)
     !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 !
-    PRED2TH3(IIJB:IIJE,IKB)=PRED2TH3(IIJB:IIJE,IKB+IKL)
-    PRED2R3(IIJB:IIJE,IKB)=PRED2R3(IIJB:IIJE,IKB+IKL) 
-    PRED2THR3(IIJB:IIJE,IKB)=PRED2THR3(IIJB:IIJE,IKB+IKL)
+    PRED2TH3(:,IKB)=PRED2TH3(:,IKB+IKL)
+    PRED2R3(:,IKB)=PRED2R3(:,IKB+IKL) 
+    PRED2THR3(:,IKB)=PRED2THR3(:,IKB+IKL)
 !
   ELSE                 ! dry 3D case in a 2D model
     !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-    PRED2TH3(IIJB:IIJE,1:IKT) = PREDTH1(IIJB:IIJE,1:IKT)**2 +  CSTURB%XCTV**2 & 
-                                       * PBLL_O_E(IIJB:IIJE,1:IKT)**2 * ZWORK2(IIJB:IIJE,1:IKT)      
+    PRED2TH3(:,:) = PREDTH1(:,:)**2 +  CSTURB%XCTV**2 & 
+                                       * PBLL_O_E(:,:)**2 * ZWORK2(:,:)      
     !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-    PRED2TH3(IIJB:IIJE,IKB)=PRED2TH3(IIJB:IIJE,IKB+IKL)
+    PRED2TH3(:,IKB)=PRED2TH3(:,IKB+IKL)
 !
-    PRED2R3(IIJB:IIJE,1:IKT) = 0.
+    PRED2R3(:,:) = 0.
 !
-    PRED2THR3(IIJB:IIJE,1:IKT) = 0.
+    PRED2THR3(:,:) = 0.
 !
   END IF
 !
@@ -459,7 +459,7 @@ ELSE                                 ! 3D case in a 3D model
   CALL GX_M_M_PHY(D,OFLAT,PTHLM,PDXX,PDZZ,PDZX,ZGXMM_PTH)
   CALL GY_M_M_PHY(D,OFLAT,PTHLM,PDYY,PDZZ,PDZY,ZGYMM_PTH)
   !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-  ZWORK1(IIJB:IIJE,1:IKT) = ZGXMM_PTH(IIJB:IIJE,1:IKT)**2 + ZGYMM_PTH(IIJB:IIJE,1:IKT)**2
+  ZWORK1(:,:) = ZGXMM_PTH(:,:)**2 + ZGYMM_PTH(:,:)**2
   !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
   CALL MZM_PHY(D,ZWORK1,ZWORK2)
   !
@@ -467,44 +467,44 @@ ELSE                                 ! 3D case in a 3D model
     CALL GX_M_M_PHY(D,OFLAT,PRM(:,:,1),PDXX,PDZZ,PDZX,ZGXMM_PRM)
     CALL GY_M_M_PHY(D,OFLAT,PRM(:,:,1),PDYY,PDZZ,PDZY,ZGYMM_PRM)
     !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-    ZWORK1(IIJB:IIJE,1:IKT) = ZGXMM_PRM(IIJB:IIJE,1:IKT)**2 + ZGYMM_PRM(IIJB:IIJE,1:IKT)**2
+    ZWORK1(:,:) = ZGXMM_PRM(:,:)**2 + ZGYMM_PRM(:,:)**2
     !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
     CALL MZM_PHY(D,ZWORK1,ZWORK3)
     !
     !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-    ZWORK1(IIJB:IIJE,1:IKT) = ZGXMM_PRM(IIJB:IIJE,1:IKT) * ZGXMM_PTH(IIJB:IIJE,1:IKT) &
-                                    + ZGYMM_PRM(IIJB:IIJE,1:IKT) * ZGYMM_PTH(IIJB:IIJE,1:IKT)
+    ZWORK1(:,:) = ZGXMM_PRM(:,:) * ZGXMM_PTH(:,:) &
+                                    + ZGYMM_PRM(:,:) * ZGYMM_PTH(:,:)
     !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
     CALL MZM_PHY(D,ZWORK1,ZWORK4)
     !
     !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-    PRED2TH3(IIJB:IIJE,1:IKT)= PREDTH1(IIJB:IIJE,1:IKT)**2 +  ( CSTURB%XCTV*PBLL_O_E(IIJB:IIJE,1:IKT) &
-                                      * PETHETA(IIJB:IIJE,1:IKT) )**2 * ZWORK2(IIJB:IIJE,1:IKT)      
+    PRED2TH3(:,:)= PREDTH1(:,:)**2 +  ( CSTURB%XCTV*PBLL_O_E(:,:) &
+                                      * PETHETA(:,:) )**2 * ZWORK2(:,:)      
 !
-    PRED2R3(IIJB:IIJE,1:IKT)= PREDR1(IIJB:IIJE,1:IKT)**2 + (CSTURB%XCTV*PBLL_O_E(IIJB:IIJE,1:IKT) &
-                                     * PEMOIST(IIJB:IIJE,1:IKT))**2 * ZWORK3(IIJB:IIJE,1:IKT)
+    PRED2R3(:,:)= PREDR1(:,:)**2 + (CSTURB%XCTV*PBLL_O_E(:,:) &
+                                     * PEMOIST(:,:))**2 * ZWORK3(:,:)
 !
-    PRED2THR3(IIJB:IIJE,1:IKT)= PREDR1(IIJB:IIJE,1:IKT) * PREDTH1(IIJB:IIJE,1:IKT) +  CSTURB%XCTV**2 &
-                                       * PBLL_O_E(IIJB:IIJE,1:IKT)**2 *   &
-                            PEMOIST(IIJB:IIJE,1:IKT) * PETHETA(IIJB:IIJE,1:IKT) * ZWORK4(IIJB:IIJE,1:IKT)
+    PRED2THR3(:,:)= PREDR1(:,:) * PREDTH1(:,:) +  CSTURB%XCTV**2 &
+                                       * PBLL_O_E(:,:)**2 *   &
+                            PEMOIST(:,:) * PETHETA(:,:) * ZWORK4(:,:)
 
     !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 !
-    PRED2TH3(IIJB:IIJE,IKB)=PRED2TH3(IIJB:IIJE,IKB+IKL)
-    PRED2R3(IIJB:IIJE,IKB)=PRED2R3(IIJB:IIJE,IKB+IKL)
-    PRED2THR3(IIJB:IIJE,IKB)=PRED2THR3(IIJB:IIJE,IKB+IKL)
+    PRED2TH3(:,IKB)=PRED2TH3(:,IKB+IKL)
+    PRED2R3(:,IKB)=PRED2R3(:,IKB+IKL)
+    PRED2THR3(:,IKB)=PRED2THR3(:,IKB+IKL)
 !
   ELSE                 ! dry 3D case in a 3D model
     !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-    PRED2TH3(IIJB:IIJE,1:IKT) = PREDTH1(IIJB:IIJE,1:IKT)**2 +  CSTURB%XCTV**2 &
-                                        * PBLL_O_E(IIJB:IIJE,1:IKT)**2 * ZWORK2(IIJB:IIJE,1:IKT)
+    PRED2TH3(:,:) = PREDTH1(:,:)**2 +  CSTURB%XCTV**2 &
+                                        * PBLL_O_E(:,:)**2 * ZWORK2(:,:)
     !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 ! 
-    PRED2TH3(IIJB:IIJE,IKB)=PRED2TH3(IIJB:IIJE,IKB+IKL)
+    PRED2TH3(:,IKB)=PRED2TH3(:,IKB+IKL)
 !
-    PRED2R3(IIJB:IIJE,1:IKT) = 0.
+    PRED2R3(:,:) = 0.
 !
-    PRED2THR3(IIJB:IIJE,1:IKT) = 0.
+    PRED2THR3(:,:) = 0.
 !
   END IF
 !
@@ -520,11 +520,11 @@ DO JSV=1,KSV
   IF(HTURBDIM=='1DIM') THEN
 !        1D case
     !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-    PRED2THS3(IIJB:IIJE,1:IKT,JSV)  = PREDS1(IIJB:IIJE,1:IKT,JSV) * PREDTH1(IIJB:IIJE,1:IKT)
+    PRED2THS3(:,:,JSV)  = PREDS1(:,:,JSV) * PREDTH1(:,:)
     IF (KRR /= 0) THEN
-      PRED2RS3(IIJB:IIJE,1:IKT,JSV)   = PREDR1(IIJB:IIJE,1:IKT) *PREDS1(IIJB:IIJE,1:IKT,JSV)
+      PRED2RS3(:,:,JSV)   = PREDR1(:,:) *PREDS1(:,:,JSV)
     ELSE
-      PRED2RS3(IIJB:IIJE,1:IKT,JSV)   = 0.
+      PRED2RS3(:,:,JSV)   = 0.
     END IF
     !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 !
@@ -532,21 +532,21 @@ DO JSV=1,KSV
 !
     IF (OOCEAN) THEN
       !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-      ZWORK1(IIJB:IIJE,1:IKT) = (CST%XG *CST%XALPHAOC * PLM(IIJB:IIJE,1:IKT) * PLEPS(IIJB:IIJE,1:IKT) &
-                                       / PTKEM(IIJB:IIJE,1:IKT))**2
+      ZWORK1(:,:) = (CST%XG *CST%XALPHAOC * PLM(:,:) * PLEPS(:,:) &
+                                       / PTKEM(:,:))**2
       !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
       CALL MZM_PHY(D,ZWORK1,ZWORK2)  
       IF (KRR /= 0) THEN
         !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-        ZW1(IIJB:IIJE,1:IKT) = ZWORK2(IIJB:IIJE,1:IKT) * PETHETA(IIJB:IIJE,1:IKT)
+        ZW1(:,:) = ZWORK2(:,:) * PETHETA(:,:)
         !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
       ELSE
         ZW1 = ZWORK2
       END IF
     ELSE
       !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-      ZWORK1(IIJB:IIJE,1:IKT) = (CST%XG / PTHVREF(IIJB:IIJE,1:IKT) * PLM(IIJB:IIJE,1:IKT) &
-                                      * PLEPS(IIJB:IIJE,1:IKT) / PTKEM(IIJB:IIJE,1:IKT))**2
+      ZWORK1(:,:) = (CST%XG / PTHVREF(:,:) * PLM(:,:) &
+                                      * PLEPS(:,:) / PTKEM(:,:))**2
       !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
       CALL MZM_PHY(D,ZWORK1,ZW1)  
       !
@@ -555,29 +555,29 @@ DO JSV=1,KSV
       CALL GX_M_M_PHY(D,OFLAT,PRM(:,:,1),PDXX,PDZZ,PDZX,ZGXMM_PRM)
       !
       !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-      ZWORK1(IIJB:IIJE,1:IKT) = ZGXMM_PSV(IIJB:IIJE,1:IKT) * ZGXMM_PTH(IIJB:IIJE,1:IKT)
+      ZWORK1(:,:) = ZGXMM_PSV(:,:) * ZGXMM_PTH(:,:)
       !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
       CALL MZM_PHY(D,ZWORK1,ZWORK2)
       !
       !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-      ZWORK1(IIJB:IIJE,1:IKT) = ZGXMM_PSV(IIJB:IIJE,1:IKT) * ZGXMM_PRM(IIJB:IIJE,1:IKT)
+      ZWORK1(:,:) = ZGXMM_PSV(:,:) * ZGXMM_PRM(:,:)
       !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
       CALL MZM_PHY(D,ZWORK1,ZWORK3)
 !
       !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)    
       IF (KRR /= 0) THEN
-        ZWORK1(IIJB:IIJE,1:IKT) = ZW1(IIJB:IIJE,1:IKT)*PETHETA(IIJB:IIJE,1:IKT)
+        ZWORK1(:,:) = ZW1(:,:)*PETHETA(:,:)
       ELSE
-        ZWORK1(IIJB:IIJE,1:IKT) = ZW1(IIJB:IIJE,1:IKT)
+        ZWORK1(:,:) = ZW1(:,:)
       END IF
-      PRED2THS3(IIJB:IIJE,1:IKT,JSV) = PREDTH1(IIJB:IIJE,1:IKT) * PREDS1(IIJB:IIJE,1:IKT,JSV)   +        &
-                         ZWORK1(IIJB:IIJE,1:IKT) * ZWORK2(IIJB:IIJE,1:IKT)
+      PRED2THS3(:,:,JSV) = PREDTH1(:,:) * PREDS1(:,:,JSV)   +        &
+                         ZWORK1(:,:) * ZWORK2(:,:)
                          !
       IF (KRR /= 0) THEN
-        PRED2RS3(IIJB:IIJE,1:IKT,JSV) = PREDR1(IIJB:IIJE,1:IKT) * PREDS1(IIJB:IIJE,1:IKT,JSV)   +        &
-                         ZW1(IIJB:IIJE,1:IKT) * PEMOIST(IIJB:IIJE,1:IKT) * ZWORK3(IIJB:IIJE,1:IKT)
+        PRED2RS3(:,:,JSV) = PREDR1(:,:) * PREDS1(:,:,JSV)   +        &
+                         ZW1(:,:) * PEMOIST(:,:) * ZWORK3(:,:)
       ELSE
-        PRED2RS3(IIJB:IIJE,1:IKT,JSV) = 0.
+        PRED2RS3(:,:,JSV) = 0.
       END IF
       !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
     END IF
@@ -586,21 +586,21 @@ DO JSV=1,KSV
 !
     IF (OOCEAN) THEN
       !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-      ZWORK1(IIJB:IIJE,1:IKT) = (CST%XG *CST%XALPHAOC * PLM(IIJB:IIJE,1:IKT) * PLEPS(IIJB:IIJE,1:IKT) &
-                                       / PTKEM(IIJB:IIJE,1:IKT))**2
+      ZWORK1(:,:) = (CST%XG *CST%XALPHAOC * PLM(:,:) * PLEPS(:,:) &
+                                       / PTKEM(:,:))**2
       !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
       CALL MZM_PHY(D,ZWORK1,ZWORK2)  
       IF (KRR /= 0) THEN
         !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-        ZW1(IIJB:IIJE,1:IKT) = ZWORK2(IIJB:IIJE,1:IKT) * PETHETA(IIJB:IIJE,1:IKT)
+        ZW1(:,:) = ZWORK2(:,:) * PETHETA(:,:)
         !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
       ELSE
         ZW1 = ZWORK2
       END IF
     ELSE
       !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-      ZWORK1(IIJB:IIJE,1:IKT) = (CST%XG / PTHVREF(IIJB:IIJE,1:IKT) * PLM(IIJB:IIJE,1:IKT) &
-                                      * PLEPS(IIJB:IIJE,1:IKT) / PTKEM(IIJB:IIJE,1:IKT))**2
+      ZWORK1(:,:) = (CST%XG / PTHVREF(:,:) * PLM(:,:) &
+                                      * PLEPS(:,:) / PTKEM(:,:))**2
       !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
       CALL MZM_PHY(D,ZWORK1,ZW1)
       !
@@ -612,35 +612,35 @@ DO JSV=1,KSV
       CALL GY_M_M_PHY(D,OFLAT,PRM(:,:,1),PDYY,PDZZ,PDZY,ZGYMM_PRM)      
       !
       !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-      ZWORK1(IIJB:IIJE,1:IKT) = ZGXMM_PSV(IIJB:IIJE,1:IKT) * ZGXMM_PTH(IIJB:IIJE,1:IKT) &
-                                      + ZGYMM_PSV(IIJB:IIJE,1:IKT) * ZGYMM_PTH(IIJB:IIJE,1:IKT)
+      ZWORK1(:,:) = ZGXMM_PSV(:,:) * ZGXMM_PTH(:,:) &
+                                      + ZGYMM_PSV(:,:) * ZGYMM_PTH(:,:)
       !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
       CALL MZM_PHY(D,ZWORK1,ZWORK2)
       !
       !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-      ZWORK1(IIJB:IIJE,1:IKT) = ZGXMM_PSV(IIJB:IIJE,1:IKT) * ZGXMM_PRM(IIJB:IIJE,1:IKT) &
-                                      + ZGYMM_PSV(IIJB:IIJE,1:IKT) * ZGYMM_PRM(IIJB:IIJE,1:IKT)
+      ZWORK1(:,:) = ZGXMM_PSV(:,:) * ZGXMM_PRM(:,:) &
+                                      + ZGYMM_PSV(:,:) * ZGYMM_PRM(:,:)
       !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
       CALL MZM_PHY(D,ZWORK1,ZWORK3)      
       !
       IF (KRR /= 0) THEN
         !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-        ZWORK1(IIJB:IIJE,1:IKT) = ZW1(IIJB:IIJE,1:IKT)*PETHETA(IIJB:IIJE,1:IKT)
+        ZWORK1(:,:) = ZW1(:,:)*PETHETA(:,:)
         !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
       ELSE
-        ZWORK1(IIJB:IIJE,1:IKT) = ZW1(IIJB:IIJE,1:IKT)
+        ZWORK1(:,:) = ZW1(:,:)
       END IF
       !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-      PRED2THS3(IIJB:IIJE,1:IKT,JSV) = PREDTH1(IIJB:IIJE,1:IKT) * PREDS1(IIJB:IIJE,1:IKT,JSV)   +        &
-                         ZWORK1(IIJB:IIJE,1:IKT)*ZWORK2(IIJB:IIJE,1:IKT)
+      PRED2THS3(:,:,JSV) = PREDTH1(:,:) * PREDS1(:,:,JSV)   +        &
+                         ZWORK1(:,:)*ZWORK2(:,:)
       !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
       IF (KRR /= 0) THEN
         !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-        PRED2RS3(IIJB:IIJE,1:IKT,JSV) = PREDR1(IIJB:IIJE,1:IKT) * PREDS1(IIJB:IIJE,1:IKT,JSV)   +        &
-                         ZW1(IIJB:IIJE,1:IKT) * PEMOIST(IIJB:IIJE,1:IKT) * ZWORK3(IIJB:IIJE,1:IKT)
+        PRED2RS3(:,:,JSV) = PREDR1(:,:) * PREDS1(:,:,JSV)   +        &
+                         ZW1(:,:) * PEMOIST(:,:) * ZWORK3(:,:)
         !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
       ELSE
-        PRED2RS3(IIJB:IIJE,1:IKT,JSV) = 0.
+        PRED2RS3(:,:,JSV) = 0.
       END IF
   END IF 
 !
@@ -755,10 +755,10 @@ IIJB=D%NIJB
 IKT=D%NKT
 !
 !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)    
-ZCOEF(IIJB:IIJE,1:IKT) = MAX(MIN((  10.*(1.-PPHI3(IIJB:IIJE,1:IKT)/CSTURB%XPHI_LIM)) ,1.), 0.) 
+ZCOEF(:,:) = MAX(MIN((  10.*(1.-PPHI3(:,:)/CSTURB%XPHI_LIM)) ,1.), 0.) 
 !
-PF(IIJB:IIJE,1:IKT) =     ZCOEF(IIJB:IIJE,1:IKT)   * PF(IIJB:IIJE,1:IKT)    &
-          + (1.-ZCOEF(IIJB:IIJE,1:IKT))  * PF_LIM(IIJB:IIJE,1:IKT)
+PF(:,:) =     ZCOEF(:,:)   * PF(:,:)    &
+          + (1.-ZCOEF(:,:))  * PF_LIM(:,:)
 !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)    
 !
 END SUBROUTINE SMOOTH_TURB_FUNCT
@@ -790,48 +790,48 @@ IF (HTURBDIM=='3DIM') THEN
         !* 3DIM case
   !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)    
   IF (OUSERV) THEN
-    ZW1(IIJB:IIJE,1:IKT) = 1. + 1.5* (PREDTH1(IIJB:IIJE,1:IKT)+PREDR1(IIJB:IIJE,1:IKT)) +      &
-                   ( 0.5 * (PREDTH1(IIJB:IIJE,1:IKT)**2+PREDR1(IIJB:IIJE,1:IKT)**2)  &
-                         + PREDTH1(IIJB:IIJE,1:IKT) * PREDR1(IIJB:IIJE,1:IKT)        &
+    ZW1(:,:) = 1. + 1.5* (PREDTH1(:,:)+PREDR1(:,:)) +      &
+                   ( 0.5 * (PREDTH1(:,:)**2+PREDR1(:,:)**2)  &
+                         + PREDTH1(:,:) * PREDR1(:,:)        &
                    )
 
-    ZW2(IIJB:IIJE,1:IKT) = 0.5 * (PRED2TH3(IIJB:IIJE,1:IKT)-PRED2R3(IIJB:IIJE,1:IKT))
+    ZW2(:,:) = 0.5 * (PRED2TH3(:,:)-PRED2R3(:,:))
 
-    PPHI3(IIJB:IIJE,1:IKT)= 1. -                                          &
-    ( ( (1.+PREDR1(IIJB:IIJE,1:IKT)) *                                   &
-        (PRED2THR3(IIJB:IIJE,1:IKT) + PRED2TH3(IIJB:IIJE,1:IKT)) / PREDTH1(IIJB:IIJE,1:IKT)  &
-      ) + ZW2(IIJB:IIJE,1:IKT)                                           &
-    ) / ZW1(IIJB:IIJE,1:IKT)
+    PPHI3(:,:)= 1. -                                          &
+    ( ( (1.+PREDR1(:,:)) *                                   &
+        (PRED2THR3(:,:) + PRED2TH3(:,:)) / PREDTH1(:,:)  &
+      ) + ZW2(:,:)                                           &
+    ) / ZW1(:,:)
   ELSE
-    ZW1(IIJB:IIJE,1:IKT) = 1. + 1.5* PREDTH1(IIJB:IIJE,1:IKT) + &
-                 0.5* PREDTH1(IIJB:IIJE,1:IKT)**2
+    ZW1(:,:) = 1. + 1.5* PREDTH1(:,:) + &
+                 0.5* PREDTH1(:,:)**2
 
-    ZW2(IIJB:IIJE,1:IKT) = 0.5* PRED2TH3(IIJB:IIJE,1:IKT)
+    ZW2(:,:) = 0.5* PRED2TH3(:,:)
 
-    PPHI3(IIJB:IIJE,1:IKT)= 1. -                                       &
-            (PRED2TH3(IIJB:IIJE,1:IKT) / PREDTH1(IIJB:IIJE,1:IKT) + ZW2(IIJB:IIJE,1:IKT)) &
-            / ZW1(IIJB:IIJE,1:IKT)
+    PPHI3(:,:)= 1. -                                       &
+            (PRED2TH3(:,:) / PREDTH1(:,:) + ZW2(:,:)) &
+            / ZW1(:,:)
   END IF
   !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)    
 
   !$mnh_expand_where(JIJ=IIJB:IIJE,JK=1:IKT)    
-  WHERE( PPHI3(IIJB:IIJE,1:IKT) <= 0. .OR. PPHI3(IIJB:IIJE,1:IKT) > CSTURB%XPHI_LIM )
-    PPHI3(IIJB:IIJE,1:IKT) = CSTURB%XPHI_LIM
+  WHERE( PPHI3(:,:) <= 0. .OR. PPHI3(:,:) > CSTURB%XPHI_LIM )
+    PPHI3(:,:) = CSTURB%XPHI_LIM
   END WHERE
   !$mnh_end_expand_where(JIJ=IIJB:IIJE,JK=1:IKT)    
 ELSE
         !* 1DIM case
   !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
   IF (OUSERV) THEN
-    PPHI3(IIJB:IIJE,1:IKT)= 1./(1.+PREDTH1(IIJB:IIJE,1:IKT)+PREDR1(IIJB:IIJE,1:IKT))
+    PPHI3(:,:)= 1./(1.+PREDTH1(:,:)+PREDR1(:,:))
   ELSE
-    PPHI3(IIJB:IIJE,1:IKT)= 1./(1.+PREDTH1(IIJB:IIJE,1:IKT))
+    PPHI3(:,:)= 1./(1.+PREDTH1(:,:))
   END IF
   !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)    
 END IF
 !
-PPHI3(IIJB:IIJE,IKB-1)=PPHI3(IIJB:IIJE,IKB)
-PPHI3(IIJB:IIJE,IKE+1)=PPHI3(IIJB:IIJE,IKE)
+PPHI3(:,IKB-1)=PPHI3(:,IKB)
+PPHI3(:,IKE+1)=PPHI3(:,IKE)
 !
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:PHI3',1,ZHOOK_HANDLE)
 END SUBROUTINE PHI3
@@ -862,30 +862,30 @@ IKT=D%NKT
 !
 DO JSV=1,KSV
   !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)    
-  PPSI_SV(IIJB:IIJE,1:IKT,JSV) = ( 1.                                             &
+  PPSI_SV(:,:,JSV) = ( 1.                                             &
     - (CSTURB%XCPR3+CSTURB%XCPR5) * &
-    (PRED2THS(IIJB:IIJE,1:IKT,JSV)/PREDS1(IIJB:IIJE,1:IKT,JSV)-PREDTH1(IIJB:IIJE,1:IKT)) &
+    (PRED2THS(:,:,JSV)/PREDS1(:,:,JSV)-PREDTH1(:,:)) &
     - (CSTURB%XCPR4+CSTURB%XCPR5) * &
-    (PRED2RS(IIJB:IIJE,1:IKT,JSV)/PREDS1(IIJB:IIJE,1:IKT,JSV)-PREDR1(IIJB:IIJE,1:IKT)) &
+    (PRED2RS(:,:,JSV)/PREDS1(:,:,JSV)-PREDR1(:,:)) &
     - CSTURB%XCPR3 * &
-    PREDTH1(IIJB:IIJE,1:IKT) * PPHI3(IIJB:IIJE,1:IKT) &
-    - CSTURB%XCPR4 * PREDR1(IIJB:IIJE,1:IKT) * PPSI3(IIJB:IIJE,1:IKT)                 &
-                ) / (  1. + CSTURB%XCPR5 * ( PREDTH1(IIJB:IIJE,1:IKT) + PREDR1(IIJB:IIJE,1:IKT) ) )           
+    PREDTH1(:,:) * PPHI3(:,:) &
+    - CSTURB%XCPR4 * PREDR1(:,:) * PPSI3(:,:)                 &
+                ) / (  1. + CSTURB%XCPR5 * ( PREDTH1(:,:) + PREDR1(:,:) ) )           
   
   !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)    
 !        control of the PSI_SV positivity
   !$mnh_expand_where(JIJ=IIJB:IIJE,JK=1:IKT)    
-  WHERE ( (PPSI_SV(IIJB:IIJE,1:IKT,JSV) <=0.).AND. (PREDTH1(IIJB:IIJE,1:IKT)+PREDR1(IIJB:IIJE,1:IKT))<=0.)
-    PPSI_SV(IIJB:IIJE,1:IKT,JSV)=CSTURB%XPHI_LIM
+  WHERE ( (PPSI_SV(:,:,JSV) <=0.).AND. (PREDTH1(:,:)+PREDR1(:,:))<=0.)
+    PPSI_SV(:,:,JSV)=CSTURB%XPHI_LIM
   END WHERE
   !$mnh_end_expand_where(JIJ=IIJB:IIJE,JK=1:IKT)    
 
   !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)    
-  PPSI_SV(IIJB:IIJE,1:IKT,JSV) = MAX( 1.E-4, MIN(CSTURB%XPHI_LIM,PPSI_SV(IIJB:IIJE,1:IKT,JSV)) )
+  PPSI_SV(:,:,JSV) = MAX( 1.E-4, MIN(CSTURB%XPHI_LIM,PPSI_SV(:,:,JSV)) )
   !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)    
 !
-  PPSI_SV(IIJB:IIJE,IKB-1,JSV)=PPSI_SV(IIJB:IIJE,IKB,JSV)
-  PPSI_SV(IIJB:IIJE,IKE+1,JSV)=PPSI_SV(IIJB:IIJE,IKE,JSV)
+  PPSI_SV(:,IKB-1,JSV)=PPSI_SV(:,IKB,JSV)
+  PPSI_SV(:,IKE+1,JSV)=PPSI_SV(:,IKE,JSV)
 END DO
 !
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:PSI_SV',1,ZHOOK_HANDLE)
@@ -917,23 +917,23 @@ IF (HTURBDIM=='3DIM') THEN
   IF (OUSERV) THEN
    !$mnh_expand_where(JIJ=IIJB:IIJE,JK=1:IKT)    
 #ifdef REPRO48
-    WHERE (PPHI3(IIJB:IIJE,1:IKT)/=CSTURB%XPHI_LIM)
+    WHERE (PPHI3(:,:)/=CSTURB%XPHI_LIM)
 #else
-    WHERE (PPHI3(IIJB:IIJE,1:IKT)<=CSTURB%XPHI_LIM)
+    WHERE (PPHI3(:,:)<=CSTURB%XPHI_LIM)
 #endif
-      PD_PHI3DTDZ_O_DDTDZ(IIJB:IIJE,1:IKT) = PPHI3(IIJB:IIJE,1:IKT)                       &
-          * (1. - PREDTH1(IIJB:IIJE,1:IKT) * (3./2.+PREDTH1(IIJB:IIJE,1:IKT)+PREDR1(IIJB:IIJE,1:IKT))   &
-               /((1.+PREDTH1(IIJB:IIJE,1:IKT)+PREDR1(IIJB:IIJE,1:IKT)) &
-               *(1.+1./2.*(PREDTH1(IIJB:IIJE,1:IKT)+PREDR1(IIJB:IIJE,1:IKT))))) &
-          + (1.+PREDR1(IIJB:IIJE,1:IKT))*(PRED2THR3(IIJB:IIJE,1:IKT)+PRED2TH3(IIJB:IIJE,1:IKT))         &
-               / (PREDTH1(IIJB:IIJE,1:IKT)*(1.+PREDTH1(IIJB:IIJE,1:IKT)+PREDR1(IIJB:IIJE,1:IKT))* &
-                 (1.+1./2.*(PREDTH1(IIJB:IIJE,1:IKT)+PREDR1(IIJB:IIJE,1:IKT)))) &
-          - (1./2.*PREDTH1(IIJB:IIJE,1:IKT)+PREDR1(IIJB:IIJE,1:IKT) &
-          * (1.+PREDTH1(IIJB:IIJE,1:IKT)+PREDR1(IIJB:IIJE,1:IKT)))           &
-               / ((1.+PREDTH1(IIJB:IIJE,1:IKT)+PREDR1(IIJB:IIJE,1:IKT))&
-               *(1.+1./2.*(PREDTH1(IIJB:IIJE,1:IKT)+PREDR1(IIJB:IIJE,1:IKT))))
+      PD_PHI3DTDZ_O_DDTDZ(:,:) = PPHI3(:,:)                       &
+          * (1. - PREDTH1(:,:) * (3./2.+PREDTH1(:,:)+PREDR1(:,:))   &
+               /((1.+PREDTH1(:,:)+PREDR1(:,:)) &
+               *(1.+1./2.*(PREDTH1(:,:)+PREDR1(:,:))))) &
+          + (1.+PREDR1(:,:))*(PRED2THR3(:,:)+PRED2TH3(:,:))         &
+               / (PREDTH1(:,:)*(1.+PREDTH1(:,:)+PREDR1(:,:))* &
+                 (1.+1./2.*(PREDTH1(:,:)+PREDR1(:,:)))) &
+          - (1./2.*PREDTH1(:,:)+PREDR1(:,:) &
+          * (1.+PREDTH1(:,:)+PREDR1(:,:)))           &
+               / ((1.+PREDTH1(:,:)+PREDR1(:,:))&
+               *(1.+1./2.*(PREDTH1(:,:)+PREDR1(:,:))))
     ELSEWHERE
-      PD_PHI3DTDZ_O_DDTDZ(IIJB:IIJE,1:IKT) = PPHI3(IIJB:IIJE,1:IKT)
+      PD_PHI3DTDZ_O_DDTDZ(:,:) = PPHI3(:,:)
     ENDWHERE
    !$mnh_end_expand_where(JIJ=IIJB:IIJE,JK=1:IKT)    
 
@@ -941,19 +941,19 @@ IF (HTURBDIM=='3DIM') THEN
   ELSE
    !$mnh_expand_where(JIJ=IIJB:IIJE,JK=1:IKT)    
 #ifdef REPRO48
-    WHERE (PPHI3(IIJB:IIJE,1:IKT)/=CSTURB%XPHI_LIM)
+    WHERE (PPHI3(:,:)/=CSTURB%XPHI_LIM)
 #else
-    WHERE (PPHI3(IIJB:IIJE,1:IKT)<=CSTURB%XPHI_LIM)
+    WHERE (PPHI3(:,:)<=CSTURB%XPHI_LIM)
 #endif
-    PD_PHI3DTDZ_O_DDTDZ(IIJB:IIJE,1:IKT) = PPHI3(IIJB:IIJE,1:IKT)             &
-          * (1. - PREDTH1(IIJB:IIJE,1:IKT) * (3./2.+PREDTH1(IIJB:IIJE,1:IKT))      &
-               /((1.+PREDTH1(IIJB:IIJE,1:IKT))*(1.+1./2.*PREDTH1(IIJB:IIJE,1:IKT))))        &
-          + PRED2TH3(IIJB:IIJE,1:IKT) &
-          / (PREDTH1(IIJB:IIJE,1:IKT)*(1.+PREDTH1(IIJB:IIJE,1:IKT))*(1.+1./2.*PREDTH1(IIJB:IIJE,1:IKT))) &
-          - 1./2.*PREDTH1(IIJB:IIJE,1:IKT) &
-          / ((1.+PREDTH1(IIJB:IIJE,1:IKT))*(1.+1./2.*PREDTH1(IIJB:IIJE,1:IKT)))
+    PD_PHI3DTDZ_O_DDTDZ(:,:) = PPHI3(:,:)             &
+          * (1. - PREDTH1(:,:) * (3./2.+PREDTH1(:,:))      &
+               /((1.+PREDTH1(:,:))*(1.+1./2.*PREDTH1(:,:))))        &
+          + PRED2TH3(:,:) &
+          / (PREDTH1(:,:)*(1.+PREDTH1(:,:))*(1.+1./2.*PREDTH1(:,:))) &
+          - 1./2.*PREDTH1(:,:) &
+          / ((1.+PREDTH1(:,:))*(1.+1./2.*PREDTH1(:,:)))
     ELSEWHERE
-      PD_PHI3DTDZ_O_DDTDZ(IIJB:IIJE,1:IKT) = PPHI3(IIJB:IIJE,1:IKT)
+      PD_PHI3DTDZ_O_DDTDZ(:,:) = PPHI3(:,:)
     ENDWHERE
    !$mnh_end_expand_where(JIJ=IIJB:IIJE,JK=1:IKT)    
 !
@@ -978,8 +978,8 @@ END IF
 CALL SMOOTH_TURB_FUNCT(D,CSTURB,PPHI3,PPHI3,PD_PHI3DTDZ_O_DDTDZ)
 #endif
 !
-PD_PHI3DTDZ_O_DDTDZ(IIJB:IIJE,IKB-1)=PD_PHI3DTDZ_O_DDTDZ(IIJB:IIJE,IKB)
-PD_PHI3DTDZ_O_DDTDZ(IIJB:IIJE,IKE+1)=PD_PHI3DTDZ_O_DDTDZ(IIJB:IIJE,IKE)
+PD_PHI3DTDZ_O_DDTDZ(:,IKB-1)=PD_PHI3DTDZ_O_DDTDZ(:,IKB)
+PD_PHI3DTDZ_O_DDTDZ(:,IKE+1)=PD_PHI3DTDZ_O_DDTDZ(:,IKE)
 !
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:D_PHI3DTDZ_O_DDTDZ',1,ZHOOK_HANDLE)
 END SUBROUTINE D_PHI3DTDZ_O_DDTDZ
@@ -1011,40 +1011,40 @@ IF (HTURBDIM=='3DIM') THEN
   IF (OUSERV) THEN
    !$mnh_expand_where(JIJ=IIJB:IIJE,JK=1:IKT)    
 #ifdef REPRO48
-    WHERE (PPHI3(IIJB:IIJE,1:IKT)/=CSTURB%XPHI_LIM)
+    WHERE (PPHI3(:,:)/=CSTURB%XPHI_LIM)
 #else
-    WHERE (PPHI3(IIJB:IIJE,1:IKT)<=CSTURB%XPHI_LIM)
+    WHERE (PPHI3(:,:)<=CSTURB%XPHI_LIM)
 #endif
-      PD_PHI3DRDZ_O_DDRDZ(IIJB:IIJE,1:IKT) = PPHI3(IIJB:IIJE,1:IKT) &
-      * (1.-PREDR1(IIJB:IIJE,1:IKT)*(3./2.+PREDTH1(IIJB:IIJE,1:IKT)+PREDR1(IIJB:IIJE,1:IKT)) &
-      / ((1.+PREDTH1(IIJB:IIJE,1:IKT)+PREDR1(IIJB:IIJE,1:IKT)) & 
-      *(1.+1./2.*(PREDTH1(IIJB:IIJE,1:IKT)+PREDR1(IIJB:IIJE,1:IKT)))))  &
-      - PREDR1(IIJB:IIJE,1:IKT) &
-      * (PRED2THR3(IIJB:IIJE,1:IKT)+PRED2TH3(IIJB:IIJE,1:IKT)) / (PREDTH1(IIJB:IIJE,1:IKT)         &
-      * (1.+PREDTH1(IIJB:IIJE,1:IKT)+PREDR1(IIJB:IIJE,1:IKT))*&
-      (1.+1./2.*(PREDTH1(IIJB:IIJE,1:IKT)+PREDR1(IIJB:IIJE,1:IKT))))    &
-      + PREDR1(IIJB:IIJE,1:IKT) * (1./2.+PREDTH1(IIJB:IIJE,1:IKT)+PREDR1(IIJB:IIJE,1:IKT))         &
-      / ((1.+PREDTH1(IIJB:IIJE,1:IKT)+PREDR1(IIJB:IIJE,1:IKT))&
-      *(1.+1./2.*(PREDTH1(IIJB:IIJE,1:IKT)+PREDR1(IIJB:IIJE,1:IKT))))
+      PD_PHI3DRDZ_O_DDRDZ(:,:) = PPHI3(:,:) &
+      * (1.-PREDR1(:,:)*(3./2.+PREDTH1(:,:)+PREDR1(:,:)) &
+      / ((1.+PREDTH1(:,:)+PREDR1(:,:)) & 
+      *(1.+1./2.*(PREDTH1(:,:)+PREDR1(:,:)))))  &
+      - PREDR1(:,:) &
+      * (PRED2THR3(:,:)+PRED2TH3(:,:)) / (PREDTH1(:,:)         &
+      * (1.+PREDTH1(:,:)+PREDR1(:,:))*&
+      (1.+1./2.*(PREDTH1(:,:)+PREDR1(:,:))))    &
+      + PREDR1(:,:) * (1./2.+PREDTH1(:,:)+PREDR1(:,:))         &
+      / ((1.+PREDTH1(:,:)+PREDR1(:,:))&
+      *(1.+1./2.*(PREDTH1(:,:)+PREDR1(:,:))))
     ELSEWHERE
-      PD_PHI3DRDZ_O_DDRDZ(IIJB:IIJE,1:IKT) = PPHI3(IIJB:IIJE,1:IKT)
+      PD_PHI3DRDZ_O_DDRDZ(:,:) = PPHI3(:,:)
     END WHERE
    !$mnh_end_expand_where(JIJ=IIJB:IIJE,JK=1:IKT)    
   ELSE
-    PD_PHI3DRDZ_O_DDRDZ(IIJB:IIJE,1:IKT) = PPHI3(IIJB:IIJE,1:IKT)
+    PD_PHI3DRDZ_O_DDRDZ(:,:) = PPHI3(:,:)
   END IF
 ELSE
         !* 1DIM case
     !$mnh_expand_where(JIJ=IIJB:IIJE,JK=1:IKT)    
 #ifdef REPRO48
-    WHERE (PPHI3(IIJB:IIJE,1:IKT)/=CSTURB%XPHI_LIM)
+    WHERE (PPHI3(:,:)/=CSTURB%XPHI_LIM)
 #else
-    WHERE (PPHI3(IIJB:IIJE,1:IKT)<=CSTURB%XPHI_LIM)
+    WHERE (PPHI3(:,:)<=CSTURB%XPHI_LIM)
 #endif
-    PD_PHI3DRDZ_O_DDRDZ(IIJB:IIJE,1:IKT) = PPHI3(IIJB:IIJE,1:IKT)                           &
-          * (1. - PREDR1(IIJB:IIJE,1:IKT)*PPHI3(IIJB:IIJE,1:IKT))
+    PD_PHI3DRDZ_O_DDRDZ(:,:) = PPHI3(:,:)                           &
+          * (1. - PREDR1(:,:)*PPHI3(:,:))
   ELSEWHERE
-    PD_PHI3DRDZ_O_DDRDZ(IIJB:IIJE,1:IKT) = PPHI3(IIJB:IIJE,1:IKT)
+    PD_PHI3DRDZ_O_DDRDZ(:,:) = PPHI3(:,:)
   END WHERE
   !$mnh_end_expand_where(JIJ=IIJB:IIJE,JK=1:IKT)    
 END IF
@@ -1055,8 +1055,8 @@ END IF
 CALL SMOOTH_TURB_FUNCT(D,CSTURB,PPHI3,PPHI3,PD_PHI3DRDZ_O_DDRDZ)
 #endif
 !
-PD_PHI3DRDZ_O_DDRDZ(IIJB:IIJE,IKB-1)=PD_PHI3DRDZ_O_DDRDZ(IIJB:IIJE,IKB)
-PD_PHI3DRDZ_O_DDRDZ(IIJB:IIJE,IKE+1)=PD_PHI3DRDZ_O_DDRDZ(IIJB:IIJE,IKE)
+PD_PHI3DRDZ_O_DDRDZ(:,IKB-1)=PD_PHI3DRDZ_O_DDRDZ(:,IKB)
+PD_PHI3DRDZ_O_DDRDZ(:,IKE+1)=PD_PHI3DRDZ_O_DDRDZ(:,IKE)
 !
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:D_PHI3DRDZ_O_DDRDZ',1,ZHOOK_HANDLE)
 END SUBROUTINE D_PHI3DRDZ_O_DDRDZ
@@ -1089,21 +1089,21 @@ IF (HTURBDIM=='3DIM') THEN
    ! by derivation of (phi3 dtdz) * dtdz according to dtdz we obtain:
    CALL D_PHI3DTDZ_O_DDTDZ(D,CSTURB,PPHI3,PREDTH1,PREDR1,PRED2TH3,PRED2THR3,HTURBDIM,OUSERV,ZWORK1)
    !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-   PD_PHI3DTDZ2_O_DDTDZ(IIJB:IIJE,1:IKT) = PDTDZ(IIJB:IIJE,1:IKT) &
-   * (PPHI3(IIJB:IIJE,1:IKT) +  ZWORK1(IIJB:IIJE,1:IKT))
+   PD_PHI3DTDZ2_O_DDTDZ(:,:) = PDTDZ(:,:) &
+   * (PPHI3(:,:) +  ZWORK1(:,:))
    !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 ELSE
         !* 1DIM case
     !$mnh_expand_where(JIJ=IIJB:IIJE,JK=1:IKT)    
 #ifdef REPRO48
-    WHERE (PPHI3(IIJB:IIJE,1:IKT)/=CSTURB%XPHI_LIM)
+    WHERE (PPHI3(:,:)/=CSTURB%XPHI_LIM)
 #else
-    WHERE (PPHI3(IIJB:IIJE,1:IKT)<=CSTURB%XPHI_LIM)
+    WHERE (PPHI3(:,:)<=CSTURB%XPHI_LIM)
 #endif
-      PD_PHI3DTDZ2_O_DDTDZ(IIJB:IIJE,1:IKT) = PPHI3(IIJB:IIJE,1:IKT)*PDTDZ(IIJB:IIJE,1:IKT)             &
-          * (2. - PREDTH1(IIJB:IIJE,1:IKT)*PPHI3(IIJB:IIJE,1:IKT))
+      PD_PHI3DTDZ2_O_DDTDZ(:,:) = PPHI3(:,:)*PDTDZ(:,:)             &
+          * (2. - PREDTH1(:,:)*PPHI3(:,:))
     ELSEWHERE
-      PD_PHI3DTDZ2_O_DDTDZ(IIJB:IIJE,1:IKT) = PPHI3(IIJB:IIJE,1:IKT) * 2. * PDTDZ(IIJB:IIJE,1:IKT)
+      PD_PHI3DTDZ2_O_DDTDZ(:,:) = PPHI3(:,:) * 2. * PDTDZ(:,:)
     END WHERE
     !$mnh_end_expand_where(JIJ=IIJB:IIJE,JK=1:IKT)    
 END IF
@@ -1115,8 +1115,8 @@ CALL SMOOTH_TURB_FUNCT(D,CSTURB,PPHI3,PPHI3*2.*PDTDZ,PD_PHI3DTDZ2_O_DDTDZ)
 #endif
 !
 !
-PD_PHI3DTDZ2_O_DDTDZ(IIJB:IIJE,IKB-1)=PD_PHI3DTDZ2_O_DDTDZ(IIJB:IIJE,IKB)
-PD_PHI3DTDZ2_O_DDTDZ(IIJB:IIJE,IKE+1)=PD_PHI3DTDZ2_O_DDTDZ(IIJB:IIJE,IKE)
+PD_PHI3DTDZ2_O_DDTDZ(:,IKB-1)=PD_PHI3DTDZ2_O_DDTDZ(:,IKB)
+PD_PHI3DTDZ2_O_DDTDZ(:,IKE+1)=PD_PHI3DTDZ2_O_DDTDZ(:,IKE)
 !
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:D_PHI3DTDZ2_O_DDTDZ',1,ZHOOK_HANDLE)
 END SUBROUTINE D_PHI3DTDZ2_O_DDTDZ
@@ -1141,12 +1141,12 @@ IIJB=D%NIJB
 IKT=D%NKT
 !
 !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-PM3_WTH_WTH2(IIJB:IIJE,1:IKT) = CSTURB%XCSHF*PBLL_O_E(IIJB:IIJE,1:IKT)&
-                   * PETHETA(IIJB:IIJE,1:IKT)*0.5/CSTURB%XCTD        &
-                   * (1.+0.5*PREDTH1(IIJB:IIJE,1:IKT)+PREDR1(IIJB:IIJE,1:IKT)) / PD(IIJB:IIJE,1:IKT)
+PM3_WTH_WTH2(:,:) = CSTURB%XCSHF*PBLL_O_E(:,:)&
+                   * PETHETA(:,:)*0.5/CSTURB%XCTD        &
+                   * (1.+0.5*PREDTH1(:,:)+PREDR1(:,:)) / PD(:,:)
 !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-PM3_WTH_WTH2(IIJB:IIJE,IKB-1)=PM3_WTH_WTH2(IIJB:IIJE,IKB)
-PM3_WTH_WTH2(IIJB:IIJE,IKE+1)=PM3_WTH_WTH2(IIJB:IIJE,IKE)
+PM3_WTH_WTH2(:,IKB-1)=PM3_WTH_WTH2(:,IKB)
+PM3_WTH_WTH2(:,IKE+1)=PM3_WTH_WTH2(:,IKE)
 !
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:M3_WTH_WTH2',1,ZHOOK_HANDLE)
 END SUBROUTINE M3_WTH_WTH2
@@ -1172,15 +1172,15 @@ IIJB=D%NIJB
 IKT=D%NKT
 !
 !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-PD_M3_WTH_WTH2_O_DDTDZ(IIJB:IIJE,1:IKT) = &
-(0.5*CSTURB%XCSHF*PBLL_O_E(IIJB:IIJE,1:IKT)*PETHETA(IIJB:IIJE,1:IKT)*0.5/CSTURB%XCTD/PD(IIJB:IIJE,1:IKT) &
-- PM3_WTH_WTH2(IIJB:IIJE,1:IKT)/PD(IIJB:IIJE,1:IKT)&
-*(1.5+PREDTH1(IIJB:IIJE,1:IKT)+PREDR1(IIJB:IIJE,1:IKT))  )&
-* PBLL_O_E(IIJB:IIJE,1:IKT) * PETHETA(IIJB:IIJE,1:IKT) * CSTURB%XCTV
+PD_M3_WTH_WTH2_O_DDTDZ(:,:) = &
+(0.5*CSTURB%XCSHF*PBLL_O_E(:,:)*PETHETA(:,:)*0.5/CSTURB%XCTD/PD(:,:) &
+- PM3_WTH_WTH2(:,:)/PD(:,:)&
+*(1.5+PREDTH1(:,:)+PREDR1(:,:))  )&
+* PBLL_O_E(:,:) * PETHETA(:,:) * CSTURB%XCTV
 !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 !
-PD_M3_WTH_WTH2_O_DDTDZ(IIJB:IIJE,IKB-1)=PD_M3_WTH_WTH2_O_DDTDZ(IIJB:IIJE,IKB)
-PD_M3_WTH_WTH2_O_DDTDZ(IIJB:IIJE,IKE+1)=PD_M3_WTH_WTH2_O_DDTDZ(IIJB:IIJE,IKE)
+PD_M3_WTH_WTH2_O_DDTDZ(:,IKB-1)=PD_M3_WTH_WTH2_O_DDTDZ(:,IKB)
+PD_M3_WTH_WTH2_O_DDTDZ(:,IKE+1)=PD_M3_WTH_WTH2_O_DDTDZ(:,IKE)
 !
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:D_M3_WTH_WTH2_O_DDTDZ',1,ZHOOK_HANDLE)
 END SUBROUTINE D_M3_WTH_WTH2_O_DDTDZ
@@ -1207,13 +1207,13 @@ IKT=D%NKT
 !
 CALL MZM_PHY(D,PTKE,ZWORK1)
 !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-PM3_WTH_W2TH(IIJB:IIJE,1:IKT) = CSTURB%XCSHF*PKEFF(IIJB:IIJE,1:IKT)*1.5/ZWORK1(IIJB:IIJE,1:IKT) &
-  * (1. - 0.5*PREDR1(IIJB:IIJE,1:IKT)*(1.+PREDR1(IIJB:IIJE,1:IKT))/PD(IIJB:IIJE,1:IKT) ) &
-  / (1.+PREDTH1(IIJB:IIJE,1:IKT))
+PM3_WTH_W2TH(:,:) = CSTURB%XCSHF*PKEFF(:,:)*1.5/ZWORK1(:,:) &
+  * (1. - 0.5*PREDR1(:,:)*(1.+PREDR1(:,:))/PD(:,:) ) &
+  / (1.+PREDTH1(:,:))
 !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 !
-PM3_WTH_W2TH(IIJB:IIJE,IKB-1)=PM3_WTH_W2TH(IIJB:IIJE,IKB)
-PM3_WTH_W2TH(IIJB:IIJE,IKE+1)=PM3_WTH_W2TH(IIJB:IIJE,IKE)
+PM3_WTH_W2TH(:,IKB-1)=PM3_WTH_W2TH(:,IKB)
+PM3_WTH_W2TH(:,IKE+1)=PM3_WTH_W2TH(:,IKE)
 !
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:M3_WTH_W2TH',1,ZHOOK_HANDLE)
 END SUBROUTINE M3_WTH_W2TH
@@ -1242,16 +1242,16 @@ IKT=D%NKT
 !
 CALL MZM_PHY(D,PTKE,ZWORK1)
 !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-PD_M3_WTH_W2TH_O_DDTDZ(IIJB:IIJE,1:IKT) = &
- - CSTURB%XCSHF*PKEFF(IIJB:IIJE,1:IKT)*1.5/ZWORK1(IIJB:IIJE,1:IKT)/(1.+PREDTH1(IIJB:IIJE,1:IKT))**2 &
- * CSTURB%XCTV*PBLL_O_E(IIJB:IIJE,1:IKT)*PETHETA(IIJB:IIJE,1:IKT)  &
- * (1. - 0.5*PREDR1(IIJB:IIJE,1:IKT)*(1.+PREDR1(IIJB:IIJE,1:IKT))/PD(IIJB:IIJE,1:IKT)* &
-   ( 1.+(1.+PREDTH1(IIJB:IIJE,1:IKT))*(1.5+PREDR1(IIJB:IIJE,1:IKT)+PREDTH1(IIJB:IIJE,1:IKT))&
-   /PD(IIJB:IIJE,1:IKT)) )
+PD_M3_WTH_W2TH_O_DDTDZ(:,:) = &
+ - CSTURB%XCSHF*PKEFF(:,:)*1.5/ZWORK1(:,:)/(1.+PREDTH1(:,:))**2 &
+ * CSTURB%XCTV*PBLL_O_E(:,:)*PETHETA(:,:)  &
+ * (1. - 0.5*PREDR1(:,:)*(1.+PREDR1(:,:))/PD(:,:)* &
+   ( 1.+(1.+PREDTH1(:,:))*(1.5+PREDR1(:,:)+PREDTH1(:,:))&
+   /PD(:,:)) )
 !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 !
-PD_M3_WTH_W2TH_O_DDTDZ(IIJB:IIJE,IKB-1)=PD_M3_WTH_W2TH_O_DDTDZ(IIJB:IIJE,IKB)
-PD_M3_WTH_W2TH_O_DDTDZ(IIJB:IIJE,IKE+1)=PD_M3_WTH_W2TH_O_DDTDZ(IIJB:IIJE,IKE)
+PD_M3_WTH_W2TH_O_DDTDZ(:,IKB-1)=PD_M3_WTH_W2TH_O_DDTDZ(:,IKB)
+PD_M3_WTH_W2TH_O_DDTDZ(:,IKE+1)=PD_M3_WTH_W2TH_O_DDTDZ(:,IKE)
 !
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:D_M3_WTH_W2TH_O_DDTDZ',1,ZHOOK_HANDLE)
 END SUBROUTINE D_M3_WTH_W2TH_O_DDTDZ
@@ -1279,13 +1279,13 @@ IKT=D%NKT
 !
 CALL MZM_PHY(D,PTKE,ZWORK1)
 !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-PM3_WTH_W2R(IIJB:IIJE,1:IKT) = &
-  - CSTURB%XCSHF*PKEFF(IIJB:IIJE,1:IKT)*0.75*CSTURB%XCTV*PBLL_O_E(IIJB:IIJE,1:IKT) &
-  /ZWORK1(IIJB:IIJE,1:IKT)*PEMOIST(IIJB:IIJE,1:IKT)*PDTDZ(IIJB:IIJE,1:IKT)/PD(IIJB:IIJE,1:IKT)
+PM3_WTH_W2R(:,:) = &
+  - CSTURB%XCSHF*PKEFF(:,:)*0.75*CSTURB%XCTV*PBLL_O_E(:,:) &
+  /ZWORK1(:,:)*PEMOIST(:,:)*PDTDZ(:,:)/PD(:,:)
 !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 !
-PM3_WTH_W2R(IIJB:IIJE,IKB-1)=PM3_WTH_W2R(IIJB:IIJE,IKB)
-PM3_WTH_W2R(IIJB:IIJE,IKE+1)=PM3_WTH_W2R(IIJB:IIJE,IKE)
+PM3_WTH_W2R(:,IKB-1)=PM3_WTH_W2R(:,IKB)
+PM3_WTH_W2R(:,IKE+1)=PM3_WTH_W2R(:,IKE)
 !
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:M3_WTH_W2R',1,ZHOOK_HANDLE)
 END SUBROUTINE M3_WTH_W2R
@@ -1314,15 +1314,15 @@ IKT=D%NKT
 !
 CALL MZM_PHY(D,PTKE,ZWORK1)
 !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-PD_M3_WTH_W2R_O_DDTDZ(IIJB:IIJE,1:IKT) = &
-- CSTURB%XCSHF*PKEFF(IIJB:IIJE,1:IKT)*0.75*CSTURB%XCTV*PBLL_O_E(IIJB:IIJE,1:IKT) &
-                               /ZWORK1(IIJB:IIJE,1:IKT)*PEMOIST(IIJB:IIJE,1:IKT)/PD(IIJB:IIJE,1:IKT) &
-                                     * (1. -  PREDTH1(IIJB:IIJE,1:IKT)*(1.5+PREDTH1(IIJB:IIJE,1:IKT)& 
-                                     +PREDR1(IIJB:IIJE,1:IKT))/PD(IIJB:IIJE,1:IKT))
+PD_M3_WTH_W2R_O_DDTDZ(:,:) = &
+- CSTURB%XCSHF*PKEFF(:,:)*0.75*CSTURB%XCTV*PBLL_O_E(:,:) &
+                               /ZWORK1(:,:)*PEMOIST(:,:)/PD(:,:) &
+                                     * (1. -  PREDTH1(:,:)*(1.5+PREDTH1(:,:)& 
+                                     +PREDR1(:,:))/PD(:,:))
 !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 !
-PD_M3_WTH_W2R_O_DDTDZ(IIJB:IIJE,IKB-1)=PD_M3_WTH_W2R_O_DDTDZ(IIJB:IIJE,IKB)
-PD_M3_WTH_W2R_O_DDTDZ(IIJB:IIJE,IKE+1)=PD_M3_WTH_W2R_O_DDTDZ(IIJB:IIJE,IKE)
+PD_M3_WTH_W2R_O_DDTDZ(:,IKB-1)=PD_M3_WTH_W2R_O_DDTDZ(:,IKB)
+PD_M3_WTH_W2R_O_DDTDZ(:,IKE+1)=PD_M3_WTH_W2R_O_DDTDZ(:,IKE)
 !
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:D_M3_WTH_W2R_O_DDTDZ',1,ZHOOK_HANDLE)
 END SUBROUTINE D_M3_WTH_W2R_O_DDTDZ
@@ -1352,18 +1352,18 @@ IIJB=D%NIJB
 IKT=D%NKT
 !
 !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-ZWORK1(IIJB:IIJE,1:IKT) = PBETA(IIJB:IIJE,1:IKT)*PLEPS(IIJB:IIJE,1:IKT) &
-                                 /(PSQRT_TKE(IIJB:IIJE,1:IKT)*PTKE(IIJB:IIJE,1:IKT))
+ZWORK1(:,:) = PBETA(:,:)*PLEPS(:,:) &
+                                 /(PSQRT_TKE(:,:)*PTKE(:,:))
 !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 CALL MZM_PHY(D,ZWORK1,ZWORK2)
 !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-PM3_WTH_WR2(IIJB:IIJE,1:IKT) = - CSTURB%XCSHF*PKEFF(IIJB:IIJE,1:IKT)& 
-                           *0.25*PBLL_O_E(IIJB:IIJE,1:IKT)*CSTURB%XCTV*PEMOIST(IIJB:IIJE,1:IKT)**2 &
-                           *ZWORK2(IIJB:IIJE,1:IKT)/CSTURB%XCTD*PDTDZ(IIJB:IIJE,1:IKT)/PD(IIJB:IIJE,1:IKT)
+PM3_WTH_WR2(:,:) = - CSTURB%XCSHF*PKEFF(:,:)& 
+                           *0.25*PBLL_O_E(:,:)*CSTURB%XCTV*PEMOIST(:,:)**2 &
+                           *ZWORK2(:,:)/CSTURB%XCTD*PDTDZ(:,:)/PD(:,:)
 !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 !
-PM3_WTH_WR2(IIJB:IIJE,IKB-1)=PM3_WTH_WR2(IIJB:IIJE,IKB)
-PM3_WTH_WR2(IIJB:IIJE,IKE+1)=PM3_WTH_WR2(IIJB:IIJE,IKE)
+PM3_WTH_WR2(:,IKB-1)=PM3_WTH_WR2(:,IKB)
+PM3_WTH_WR2(:,IKE+1)=PM3_WTH_WR2(:,IKE)
 !
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:M3_WTH_WR2',1,ZHOOK_HANDLE)
 END SUBROUTINE M3_WTH_WR2
@@ -1394,20 +1394,20 @@ IIJB=D%NIJB
 IKT=D%NKT
 !
 !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-ZWORK1(IIJB:IIJE,1:IKT) = PBETA(IIJB:IIJE,1:IKT)*PLEPS(IIJB:IIJE,1:IKT)&
-                                  /(PSQRT_TKE(IIJB:IIJE,1:IKT)*PTKE(IIJB:IIJE,1:IKT))
+ZWORK1(:,:) = PBETA(:,:)*PLEPS(:,:)&
+                                  /(PSQRT_TKE(:,:)*PTKE(:,:))
 !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 CALL MZM_PHY(D,ZWORK1,ZWORK2)
 !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-PD_M3_WTH_WR2_O_DDTDZ(IIJB:IIJE,1:IKT) = - CSTURB%XCSHF*PKEFF(IIJB:IIJE,1:IKT)& 
-                           *0.25*PBLL_O_E(IIJB:IIJE,1:IKT)*CSTURB%XCTV*PEMOIST(IIJB:IIJE,1:IKT)**2 &
-                           *ZWORK2(IIJB:IIJE,1:IKT)/CSTURB%XCTD/PD(IIJB:IIJE,1:IKT)     &
-                           * (1. -  PREDTH1(IIJB:IIJE,1:IKT)* &
-                           (1.5+PREDTH1(IIJB:IIJE,1:IKT)+PREDR1(IIJB:IIJE,1:IKT))/PD(IIJB:IIJE,1:IKT))
+PD_M3_WTH_WR2_O_DDTDZ(:,:) = - CSTURB%XCSHF*PKEFF(:,:)& 
+                           *0.25*PBLL_O_E(:,:)*CSTURB%XCTV*PEMOIST(:,:)**2 &
+                           *ZWORK2(:,:)/CSTURB%XCTD/PD(:,:)     &
+                           * (1. -  PREDTH1(:,:)* &
+                           (1.5+PREDTH1(:,:)+PREDR1(:,:))/PD(:,:))
 !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 !
-PD_M3_WTH_WR2_O_DDTDZ(IIJB:IIJE,IKB-1)=PD_M3_WTH_WR2_O_DDTDZ(IIJB:IIJE,IKB)
-PD_M3_WTH_WR2_O_DDTDZ(IIJB:IIJE,IKE+1)=PD_M3_WTH_WR2_O_DDTDZ(IIJB:IIJE,IKE)
+PD_M3_WTH_WR2_O_DDTDZ(:,IKB-1)=PD_M3_WTH_WR2_O_DDTDZ(:,IKB)
+PD_M3_WTH_WR2_O_DDTDZ(:,IKE+1)=PD_M3_WTH_WR2_O_DDTDZ(:,IKE)
 !
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:D_M3_WTH_WR2_O_DDTDZ',1,ZHOOK_HANDLE)
 END SUBROUTINE D_M3_WTH_WR2_O_DDTDZ
@@ -1436,18 +1436,18 @@ IIJB=D%NIJB
 IKT=D%NKT
 !
 !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-ZWORK1(IIJB:IIJE,1:IKT) = PBETA(IIJB:IIJE,1:IKT)*PLEPS(IIJB:IIJE,1:IKT)&
-                                  /(PSQRT_TKE(IIJB:IIJE,1:IKT)*PTKE(IIJB:IIJE,1:IKT))
+ZWORK1(:,:) = PBETA(:,:)*PLEPS(:,:)&
+                                  /(PSQRT_TKE(:,:)*PTKE(:,:))
 !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 CALL MZM_PHY(D,ZWORK1,ZWORK2)
 !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-PM3_WTH_WTHR(IIJB:IIJE,1:IKT) = &
-                   CSTURB%XCSHF*PKEFF(IIJB:IIJE,1:IKT)*PEMOIST(IIJB:IIJE,1:IKT)*ZWORK2(IIJB:IIJE,1:IKT) &
-                   *0.5*PLEPS(IIJB:IIJE,1:IKT)/CSTURB%XCTD*(1+PREDR1(IIJB:IIJE,1:IKT))/PD(IIJB:IIJE,1:IKT)
+PM3_WTH_WTHR(:,:) = &
+                   CSTURB%XCSHF*PKEFF(:,:)*PEMOIST(:,:)*ZWORK2(:,:) &
+                   *0.5*PLEPS(:,:)/CSTURB%XCTD*(1+PREDR1(:,:))/PD(:,:)
 !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 !
-PM3_WTH_WTHR(IIJB:IIJE,IKB-1)=PM3_WTH_WTHR(IIJB:IIJE,IKB)
-PM3_WTH_WTHR(IIJB:IIJE,IKE+1)=PM3_WTH_WTHR(IIJB:IIJE,IKE)
+PM3_WTH_WTHR(:,IKB-1)=PM3_WTH_WTHR(:,IKB)
+PM3_WTH_WTHR(:,IKE+1)=PM3_WTH_WTHR(:,IKE)
 !
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:M3_WTH_WTHR',1,ZHOOK_HANDLE)
 END SUBROUTINE M3_WTH_WTHR
@@ -1473,13 +1473,13 @@ IIJB=D%NIJB
 IKT=D%NKT
 !
 !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-PD_M3_WTH_WTHR_O_DDTDZ(IIJB:IIJE,1:IKT) = &
-                - PM3_WTH_WTHR(IIJB:IIJE,1:IKT) * (1.5+PREDTH1(IIJB:IIJE,1:IKT)+PREDR1(IIJB:IIJE,1:IKT))&
-                /PD(IIJB:IIJE,1:IKT)*CSTURB%XCTV*PBLL_O_E(IIJB:IIJE,1:IKT)*PETHETA(IIJB:IIJE,1:IKT)
+PD_M3_WTH_WTHR_O_DDTDZ(:,:) = &
+                - PM3_WTH_WTHR(:,:) * (1.5+PREDTH1(:,:)+PREDR1(:,:))&
+                /PD(:,:)*CSTURB%XCTV*PBLL_O_E(:,:)*PETHETA(:,:)
 !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 !
-PD_M3_WTH_WTHR_O_DDTDZ(IIJB:IIJE,IKB-1)=PD_M3_WTH_WTHR_O_DDTDZ(IIJB:IIJE,IKB)
-PD_M3_WTH_WTHR_O_DDTDZ(IIJB:IIJE,IKE+1)=PD_M3_WTH_WTHR_O_DDTDZ(IIJB:IIJE,IKE)
+PD_M3_WTH_WTHR_O_DDTDZ(:,IKB-1)=PD_M3_WTH_WTHR_O_DDTDZ(:,IKB)
+PD_M3_WTH_WTHR_O_DDTDZ(:,IKE+1)=PD_M3_WTH_WTHR_O_DDTDZ(:,IKE)
 !
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:D_M3_WTH_WTHR_O_DDTDZ',1,ZHOOK_HANDLE)
 END SUBROUTINE D_M3_WTH_WTHR_O_DDTDZ
@@ -1507,17 +1507,17 @@ IIJB=D%NIJB
 IKT=D%NKT
 !
 !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-ZWORK1(IIJB:IIJE,1:IKT) = (1.-0.5*PREDR1(IIJB:IIJE,1:IKT)*(1.+PREDR1(IIJB:IIJE,1:IKT))& 
-                                /PD(IIJB:IIJE,1:IKT))/(1.+PREDTH1(IIJB:IIJE,1:IKT))*PDTDZ(IIJB:IIJE,1:IKT)
+ZWORK1(:,:) = (1.-0.5*PREDR1(:,:)*(1.+PREDR1(:,:))& 
+                                /PD(:,:))/(1.+PREDTH1(:,:))*PDTDZ(:,:)
 !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 CALL MZF_PHY(D,ZWORK1,ZWORK2)
 !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-PM3_TH2_W2TH(IIJB:IIJE,1:IKT) = - ZWORK2(IIJB:IIJE,1:IKT) &
-                       * 1.5*PLM(IIJB:IIJE,1:IKT)*PLEPS(IIJB:IIJE,1:IKT)/PTKE(IIJB:IIJE,1:IKT)*CSTURB%XCTV
+PM3_TH2_W2TH(:,:) = - ZWORK2(:,:) &
+                       * 1.5*PLM(:,:)*PLEPS(:,:)/PTKE(:,:)*CSTURB%XCTV
 !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 !
-PM3_TH2_W2TH(IIJB:IIJE,IKB-1)=PM3_TH2_W2TH(IIJB:IIJE,IKB)
-PM3_TH2_W2TH(IIJB:IIJE,IKE+1)=PM3_TH2_W2TH(IIJB:IIJE,IKE)
+PM3_TH2_W2TH(:,IKB-1)=PM3_TH2_W2TH(:,IKB)
+PM3_TH2_W2TH(:,IKE+1)=PM3_TH2_W2TH(:,IKE)
 !
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:M3_TH2_W2TH',1,ZHOOK_HANDLE)
 END SUBROUTINE M3_TH2_W2TH
@@ -1545,33 +1545,33 @@ IIJB=D%NIJB
 IKT=D%NKT
 !
 IF (OUSERV) THEN
-!  D_M3_TH2_W2TH_O_DDTDZ(IIJB:IIJE,1:IKT) = - 1.5*PLM*PLEPS/PTKE*CSTURB%XCTV * MZF(                    &
+!  D_M3_TH2_W2TH_O_DDTDZ(:,:) = - 1.5*PLM*PLEPS/PTKE*CSTURB%XCTV * MZF(                    &
 !          (1.-0.5*PREDR1*(1.+PREDR1)/PD)*(1.-(1.5+PREDTH1+PREDR1)*(1.+PREDTH1)/PD )  &
 !        / (1.+PREDTH1)**2, IKA, IKU, IKL)
   !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-  ZWORK1(IIJB:IIJE,1:IKT) = (1.-0.5*PREDR1(IIJB:IIJE,1:IKT)*(1.+PREDR1(IIJB:IIJE,1:IKT))&
-             / PD(IIJB:IIJE,1:IKT))*(1.-(1.5+PREDTH1(IIJB:IIJE,1:IKT)+PREDR1(IIJB:IIJE,1:IKT))   &
-             * PREDTH1(IIJB:IIJE,1:IKT)*(1.+PREDTH1(IIJB:IIJE,1:IKT))/PD(IIJB:IIJE,1:IKT) ) &
-             / (1.+PREDTH1(IIJB:IIJE,1:IKT))**2
+  ZWORK1(:,:) = (1.-0.5*PREDR1(:,:)*(1.+PREDR1(:,:))&
+             / PD(:,:))*(1.-(1.5+PREDTH1(:,:)+PREDR1(:,:))   &
+             * PREDTH1(:,:)*(1.+PREDTH1(:,:))/PD(:,:) ) &
+             / (1.+PREDTH1(:,:))**2
   !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
   CALL MZF_PHY(D,ZWORK1,ZWORK2)
   !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-  PD_M3_TH2_W2TH_O_DDTDZ(IIJB:IIJE,1:IKT) = - 1.5*PLM(IIJB:IIJE,1:IKT)*PLEPS(IIJB:IIJE,1:IKT) &
-                                                   /PTKE(IIJB:IIJE,1:IKT)*CSTURB%XCTV * ZWORK2(IIJB:IIJE,1:IKT)
+  PD_M3_TH2_W2TH_O_DDTDZ(:,:) = - 1.5*PLM(:,:)*PLEPS(:,:) &
+                                                   /PTKE(:,:)*CSTURB%XCTV * ZWORK2(:,:)
   !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 ELSE
   !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-  ZWORK1(IIJB:IIJE,1:IKT) = 1./(1.+PREDTH1(IIJB:IIJE,1:IKT))**2
+  ZWORK1(:,:) = 1./(1.+PREDTH1(:,:))**2
   !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
   CALL MZF_PHY(D,ZWORK1,ZWORK2)
   !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-  PD_M3_TH2_W2TH_O_DDTDZ(IIJB:IIJE,1:IKT) = - 1.5*PLM(IIJB:IIJE,1:IKT)*PLEPS(IIJB:IIJE,1:IKT) & 
-                                                   /PTKE(IIJB:IIJE,1:IKT)*CSTURB%XCTV * ZWORK2(IIJB:IIJE,1:IKT)
+  PD_M3_TH2_W2TH_O_DDTDZ(:,:) = - 1.5*PLM(:,:)*PLEPS(:,:) & 
+                                                   /PTKE(:,:)*CSTURB%XCTV * ZWORK2(:,:)
   !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 END IF
 !
-PD_M3_TH2_W2TH_O_DDTDZ(IIJB:IIJE,IKB-1)=PD_M3_TH2_W2TH_O_DDTDZ(IIJB:IIJE,IKB)
-PD_M3_TH2_W2TH_O_DDTDZ(IIJB:IIJE,IKE+1)=PD_M3_TH2_W2TH_O_DDTDZ(IIJB:IIJE,IKE)
+PD_M3_TH2_W2TH_O_DDTDZ(:,IKB-1)=PD_M3_TH2_W2TH_O_DDTDZ(:,IKB)
+PD_M3_TH2_W2TH_O_DDTDZ(:,IKE+1)=PD_M3_TH2_W2TH_O_DDTDZ(:,IKE)
 !
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:D_M3_TH2_W2TH_O_DDTDZ',1,ZHOOK_HANDLE)
 END SUBROUTINE D_M3_TH2_W2TH_O_DDTDZ
@@ -1597,17 +1597,17 @@ IIJB=D%NIJB
 IKT=D%NKT
 !
 !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-ZWORK1(IIJB:IIJE,1:IKT) = (1.+0.5*PREDTH1(IIJB:IIJE,1:IKT) &
-                         +1.5*PREDR1(IIJB:IIJE,1:IKT)+0.5*PREDR1(IIJB:IIJE,1:IKT)**2)/PD(IIJB:IIJE,1:IKT)
+ZWORK1(:,:) = (1.+0.5*PREDTH1(:,:) &
+                         +1.5*PREDR1(:,:)+0.5*PREDR1(:,:)**2)/PD(:,:)
 !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 CALL MZF_PHY(D,ZWORK1,ZWORK2)
 !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-PM3_TH2_WTH2(IIJB:IIJE,1:IKT) = PLEPS(IIJB:IIJE,1:IKT)*0.5/CSTURB%XCTD/PSQRT_TKE(IIJB:IIJE,1:IKT) &
-                     * ZWORK2(IIJB:IIJE,1:IKT)
+PM3_TH2_WTH2(:,:) = PLEPS(:,:)*0.5/CSTURB%XCTD/PSQRT_TKE(:,:) &
+                     * ZWORK2(:,:)
 !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 !
-PM3_TH2_WTH2(IIJB:IIJE,IKB-1)=PM3_TH2_WTH2(IIJB:IIJE,IKB)
-PM3_TH2_WTH2(IIJB:IIJE,IKE+1)=PM3_TH2_WTH2(IIJB:IIJE,IKE)
+PM3_TH2_WTH2(:,IKB-1)=PM3_TH2_WTH2(:,IKB)
+PM3_TH2_WTH2(:,IKE+1)=PM3_TH2_WTH2(:,IKE)
 !
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:M3_TH2_WTH2',1,ZHOOK_HANDLE)
 END SUBROUTINE M3_TH2_WTH2
@@ -1635,19 +1635,19 @@ IIJB=D%NIJB
 IKT=D%NKT
 !
 !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-ZWORK1(IIJB:IIJE,1:IKT) = PBLL_O_E(IIJB:IIJE,1:IKT)*PETHETA(IIJB:IIJE,1:IKT) &
-             * (0.5/PD(IIJB:IIJE,1:IKT) - (1.5+PREDTH1(IIJB:IIJE,1:IKT)+PREDR1(IIJB:IIJE,1:IKT))& 
-             *(1.+0.5*PREDTH1(IIJB:IIJE,1:IKT)+1.5*PREDR1(IIJB:IIJE,1:IKT)& 
-             +0.5*PREDR1(IIJB:IIJE,1:IKT)**2)/PD(IIJB:IIJE,1:IKT)**2)
+ZWORK1(:,:) = PBLL_O_E(:,:)*PETHETA(:,:) &
+             * (0.5/PD(:,:) - (1.5+PREDTH1(:,:)+PREDR1(:,:))& 
+             *(1.+0.5*PREDTH1(:,:)+1.5*PREDR1(:,:)& 
+             +0.5*PREDR1(:,:)**2)/PD(:,:)**2)
  !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 CALL MZF_PHY(D,ZWORK1,ZWORK2)
 !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-PD_M3_TH2_WTH2_O_DDTDZ(IIJB:IIJE,1:IKT) = PLEPS(IIJB:IIJE,1:IKT) & 
-                                 *0.5/CSTURB%XCTD/PSQRT_TKE(IIJB:IIJE,1:IKT)*CSTURB%XCTV * ZWORK2(IIJB:IIJE,1:IKT)
+PD_M3_TH2_WTH2_O_DDTDZ(:,:) = PLEPS(:,:) & 
+                                 *0.5/CSTURB%XCTD/PSQRT_TKE(:,:)*CSTURB%XCTV * ZWORK2(:,:)
 !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 !
-PD_M3_TH2_WTH2_O_DDTDZ(IIJB:IIJE,IKB-1)=PD_M3_TH2_WTH2_O_DDTDZ(IIJB:IIJE,IKB)
-PD_M3_TH2_WTH2_O_DDTDZ(IIJB:IIJE,IKE+1)=PD_M3_TH2_WTH2_O_DDTDZ(IIJB:IIJE,IKE)
+PD_M3_TH2_WTH2_O_DDTDZ(:,IKB-1)=PD_M3_TH2_WTH2_O_DDTDZ(:,IKB)
+PD_M3_TH2_WTH2_O_DDTDZ(:,IKE+1)=PD_M3_TH2_WTH2_O_DDTDZ(:,IKE)
 !
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:D_M3_TH2_WTH2_O_DDTDZ',1,ZHOOK_HANDLE)
 END SUBROUTINE D_M3_TH2_WTH2_O_DDTDZ
@@ -1675,17 +1675,17 @@ IIJB=D%NIJB
 IKT=D%NKT
 !
 !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-ZWORK1(IIJB:IIJE,1:IKT) = PBLL_O_E(IIJB:IIJE,1:IKT)*PEMOIST(IIJB:IIJE,1:IKT) & 
-                                 /PD(IIJB:IIJE,1:IKT)*PDTDZ(IIJB:IIJE,1:IKT)**2
+ZWORK1(:,:) = PBLL_O_E(:,:)*PEMOIST(:,:) & 
+                                 /PD(:,:)*PDTDZ(:,:)**2
 !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 CALL MZF_PHY(D,ZWORK1,ZWORK2)
 !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-PM3_TH2_W2R(IIJB:IIJE,1:IKT) = 0.75*CSTURB%XCTV**2*ZWORK2(IIJB:IIJE,1:IKT) &
-                    *PLM(IIJB:IIJE,1:IKT)*PLEPS(IIJB:IIJE,1:IKT)/PTKE(IIJB:IIJE,1:IKT)
+PM3_TH2_W2R(:,:) = 0.75*CSTURB%XCTV**2*ZWORK2(:,:) &
+                    *PLM(:,:)*PLEPS(:,:)/PTKE(:,:)
 !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 !
-PM3_TH2_W2R(IIJB:IIJE,IKB-1)=PM3_TH2_W2R(IIJB:IIJE,IKB)
-PM3_TH2_W2R(IIJB:IIJE,IKE+1)=PM3_TH2_W2R(IIJB:IIJE,IKE)
+PM3_TH2_W2R(:,IKB-1)=PM3_TH2_W2R(:,IKB)
+PM3_TH2_W2R(:,IKE+1)=PM3_TH2_W2R(:,IKE)
 !
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:M3_TH2_W2R',1,ZHOOK_HANDLE)
 END SUBROUTINE M3_TH2_W2R
@@ -1715,18 +1715,18 @@ IIJB=D%NIJB
 IKT=D%NKT
 !
 !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-ZWORK1(IIJB:IIJE,1:IKT) =  PBLL_O_E(IIJB:IIJE,1:IKT)*PEMOIST(IIJB:IIJE,1:IKT)& 
- /PD(IIJB:IIJE,1:IKT)*PDTDZ(IIJB:IIJE,1:IKT)*(2.-PREDTH1(IIJB:IIJE,1:IKT)* & 
- (1.5+PREDTH1(IIJB:IIJE,1:IKT)+PREDR1(IIJB:IIJE,1:IKT))/PD(IIJB:IIJE,1:IKT))
+ZWORK1(:,:) =  PBLL_O_E(:,:)*PEMOIST(:,:)& 
+ /PD(:,:)*PDTDZ(:,:)*(2.-PREDTH1(:,:)* & 
+ (1.5+PREDTH1(:,:)+PREDR1(:,:))/PD(:,:))
 !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 CALL MZF_PHY(D,ZWORK1,ZWORK2)
 !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-PD_M3_TH2_W2R_O_DDTDZ(IIJB:IIJE,1:IKT) = 0.75*CSTURB%XCTV**2*PLM(IIJB:IIJE,1:IKT) *PLEPS(IIJB:IIJE,1:IKT) &
-                                                /PTKE(IIJB:IIJE,1:IKT) * ZWORK2(IIJB:IIJE,1:IKT)
+PD_M3_TH2_W2R_O_DDTDZ(:,:) = 0.75*CSTURB%XCTV**2*PLM(:,:) *PLEPS(:,:) &
+                                                /PTKE(:,:) * ZWORK2(:,:)
 !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 !
-PD_M3_TH2_W2R_O_DDTDZ(IIJB:IIJE,IKB-1)=PD_M3_TH2_W2R_O_DDTDZ(IIJB:IIJE,IKB)
-PD_M3_TH2_W2R_O_DDTDZ(IIJB:IIJE,IKE+1)=PD_M3_TH2_W2R_O_DDTDZ(IIJB:IIJE,IKE)
+PD_M3_TH2_W2R_O_DDTDZ(:,IKB-1)=PD_M3_TH2_W2R_O_DDTDZ(:,IKB)
+PD_M3_TH2_W2R_O_DDTDZ(:,IKE+1)=PD_M3_TH2_W2R_O_DDTDZ(:,IKE)
 !
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:D_M3_TH2_W2R_O_DDTDZ',1,ZHOOK_HANDLE)
 END SUBROUTINE D_M3_TH2_W2R_O_DDTDZ
@@ -1753,17 +1753,17 @@ IIJB=D%NIJB
 IKT=D%NKT
 !
 !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-ZWORK1(IIJB:IIJE,1:IKT) = (PBLL_O_E(IIJB:IIJE,1:IKT)*PEMOIST(IIJB:IIJE,1:IKT)& 
-                                  *PDTDZ(IIJB:IIJE,1:IKT))**2/PD(IIJB:IIJE,1:IKT)
+ZWORK1(:,:) = (PBLL_O_E(:,:)*PEMOIST(:,:)& 
+                                  *PDTDZ(:,:))**2/PD(:,:)
 !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 CALL MZF_PHY(D,ZWORK1,ZWORK2)
 !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-PM3_TH2_WR2(IIJB:IIJE,1:IKT) = 0.25*CSTURB%XCTV**2*ZWORK2(IIJB:IIJE,1:IKT)&
-                    *PLEPS(IIJB:IIJE,1:IKT)/PSQRT_TKE(IIJB:IIJE,1:IKT)/CSTURB%XCTD
+PM3_TH2_WR2(:,:) = 0.25*CSTURB%XCTV**2*ZWORK2(:,:)&
+                    *PLEPS(:,:)/PSQRT_TKE(:,:)/CSTURB%XCTD
 !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 !
-PM3_TH2_WR2(IIJB:IIJE,IKB-1)=PM3_TH2_WR2(IIJB:IIJE,IKB)
-PM3_TH2_WR2(IIJB:IIJE,IKE+1)=PM3_TH2_WR2(IIJB:IIJE,IKE)
+PM3_TH2_WR2(:,IKB-1)=PM3_TH2_WR2(:,IKB)
+PM3_TH2_WR2(:,IKE+1)=PM3_TH2_WR2(:,IKE)
 !
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:M3_TH2_WR2',1,ZHOOK_HANDLE)
 END SUBROUTINE M3_TH2_WR2
@@ -1792,18 +1792,18 @@ IIJB=D%NIJB
 IKT=D%NKT
 !
 !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-ZWORK1(IIJB:IIJE,1:IKT) = (PBLL_O_E(IIJB:IIJE,1:IKT)*PEMOIST(IIJB:IIJE,1:IKT))**2 & 
-*PDTDZ(IIJB:IIJE,1:IKT)/PD(IIJB:IIJE,1:IKT)*(2.-PREDTH1(IIJB:IIJE,1:IKT) & 
-*(1.5+PREDTH1(IIJB:IIJE,1:IKT)+PREDR1(IIJB:IIJE,1:IKT))/PD(IIJB:IIJE,1:IKT))
+ZWORK1(:,:) = (PBLL_O_E(:,:)*PEMOIST(:,:))**2 & 
+*PDTDZ(:,:)/PD(:,:)*(2.-PREDTH1(:,:) & 
+*(1.5+PREDTH1(:,:)+PREDR1(:,:))/PD(:,:))
 !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 CALL MZF_PHY(D,ZWORK1,ZWORK2)
 !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-PD_M3_TH2_WR2_O_DDTDZ(IIJB:IIJE,1:IKT) = 0.25*CSTURB%XCTV**2*PLEPS(IIJB:IIJE,1:IKT) & 
-                                               / PSQRT_TKE(IIJB:IIJE,1:IKT)/CSTURB%XCTD * ZWORK2(IIJB:IIJE,1:IKT)
+PD_M3_TH2_WR2_O_DDTDZ(:,:) = 0.25*CSTURB%XCTV**2*PLEPS(:,:) & 
+                                               / PSQRT_TKE(:,:)/CSTURB%XCTD * ZWORK2(:,:)
 !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 !
-PD_M3_TH2_WR2_O_DDTDZ(IIJB:IIJE,IKB-1)=PD_M3_TH2_WR2_O_DDTDZ(IIJB:IIJE,IKB)
-PD_M3_TH2_WR2_O_DDTDZ(IIJB:IIJE,IKE+1)=PD_M3_TH2_WR2_O_DDTDZ(IIJB:IIJE,IKE)
+PD_M3_TH2_WR2_O_DDTDZ(:,IKB-1)=PD_M3_TH2_WR2_O_DDTDZ(:,IKB)
+PD_M3_TH2_WR2_O_DDTDZ(:,IKE+1)=PD_M3_TH2_WR2_O_DDTDZ(:,IKE)
 !
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:D_M3_TH2_WR2_O_DDTDZ',1,ZHOOK_HANDLE)
 END SUBROUTINE D_M3_TH2_WR2_O_DDTDZ
@@ -1831,17 +1831,17 @@ IIJB=D%NIJB
 IKT=D%NKT
 !
 !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-ZWORK1(IIJB:IIJE,1:IKT) = PBLL_O_E(IIJB:IIJE,1:IKT)*PEMOIST(IIJB:IIJE,1:IKT) & 
-                                * PDTDZ(IIJB:IIJE,1:IKT)*(1.+PREDR1(IIJB:IIJE,1:IKT))/PD(IIJB:IIJE,1:IKT)
+ZWORK1(:,:) = PBLL_O_E(:,:)*PEMOIST(:,:) & 
+                                * PDTDZ(:,:)*(1.+PREDR1(:,:))/PD(:,:)
 !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 CALL MZF_PHY(D,ZWORK1,ZWORK2)
 !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-PM3_TH2_WTHR(IIJB:IIJE,1:IKT) = - 0.5*CSTURB%XCTV*PLEPS(IIJB:IIJE,1:IKT) & 
-                                       / PSQRT_TKE(IIJB:IIJE,1:IKT)/CSTURB%XCTD * ZWORK2(IIJB:IIJE,1:IKT)
+PM3_TH2_WTHR(:,:) = - 0.5*CSTURB%XCTV*PLEPS(:,:) & 
+                                       / PSQRT_TKE(:,:)/CSTURB%XCTD * ZWORK2(:,:)
 !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 !
-PM3_TH2_WTHR(IIJB:IIJE,IKB-1)=PM3_TH2_WTHR(IIJB:IIJE,IKB)
-PM3_TH2_WTHR(IIJB:IIJE,IKE+1)=PM3_TH2_WTHR(IIJB:IIJE,IKE)
+PM3_TH2_WTHR(:,IKB-1)=PM3_TH2_WTHR(:,IKB)
+PM3_TH2_WTHR(:,IKE+1)=PM3_TH2_WTHR(:,IKE)
 !
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:M3_TH2_WTHR',1,ZHOOK_HANDLE)
 END SUBROUTINE M3_TH2_WTHR
@@ -1870,18 +1870,18 @@ IIJB=D%NIJB
 IKT=D%NKT
 !
 !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-ZWORK1(IIJB:IIJE,1:IKT) = PBLL_O_E(IIJB:IIJE,1:IKT)*PEMOIST(IIJB:IIJE,1:IKT)* & 
-                 (1.+PREDR1(IIJB:IIJE,1:IKT))/PD(IIJB:IIJE,1:IKT) * (1. -PREDTH1(IIJB:IIJE,1:IKT)*& 
-                 (1.5+PREDTH1(IIJB:IIJE,1:IKT)+PREDR1(IIJB:IIJE,1:IKT))/PD(IIJB:IIJE,1:IKT))
+ZWORK1(:,:) = PBLL_O_E(:,:)*PEMOIST(:,:)* & 
+                 (1.+PREDR1(:,:))/PD(:,:) * (1. -PREDTH1(:,:)*& 
+                 (1.5+PREDTH1(:,:)+PREDR1(:,:))/PD(:,:))
 !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 CALL MZF_PHY(D,ZWORK1,ZWORK2)
 !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-PD_M3_TH2_WTHR_O_DDTDZ(IIJB:IIJE,1:IKT) = - 0.5*CSTURB%XCTV*PLEPS(IIJB:IIJE,1:IKT) & 
-                                                / PSQRT_TKE(IIJB:IIJE,1:IKT)/CSTURB%XCTD * ZWORK2(IIJB:IIJE,1:IKT) 
+PD_M3_TH2_WTHR_O_DDTDZ(:,:) = - 0.5*CSTURB%XCTV*PLEPS(:,:) & 
+                                                / PSQRT_TKE(:,:)/CSTURB%XCTD * ZWORK2(:,:) 
 !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 !
-PD_M3_TH2_WTHR_O_DDTDZ(IIJB:IIJE,IKB-1)=PD_M3_TH2_WTHR_O_DDTDZ(IIJB:IIJE,IKB)
-PD_M3_TH2_WTHR_O_DDTDZ(IIJB:IIJE,IKE+1)=PD_M3_TH2_WTHR_O_DDTDZ(IIJB:IIJE,IKE)
+PD_M3_TH2_WTHR_O_DDTDZ(:,IKB-1)=PD_M3_TH2_WTHR_O_DDTDZ(:,IKB)
+PD_M3_TH2_WTHR_O_DDTDZ(:,IKE+1)=PD_M3_TH2_WTHR_O_DDTDZ(:,IKE)
 !
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:D_M3_TH2_WTHR_O_DDTDZ',1,ZHOOK_HANDLE)
 END SUBROUTINE D_M3_TH2_WTHR_O_DDTDZ
@@ -1907,17 +1907,17 @@ IIJB=D%NIJB
 IKT=D%NKT
 !
 !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-ZWORK1(IIJB:IIJE,1:IKT) =  (1.+PREDTH1(IIJB:IIJE,1:IKT))* & 
-                                   (1.+PREDR1(IIJB:IIJE,1:IKT))/PD(IIJB:IIJE,1:IKT)
+ZWORK1(:,:) =  (1.+PREDTH1(:,:))* & 
+                                   (1.+PREDR1(:,:))/PD(:,:)
 !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 CALL MZF_PHY(D,ZWORK1,ZWORK2)
 !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-PM3_THR_WTHR(IIJB:IIJE,1:IKT) = 0.5*PLEPS(IIJB:IIJE,1:IKT)/PSQRT_TKE(IIJB:IIJE,1:IKT)/CSTURB%XCTD &
-                     * ZWORK2(IIJB:IIJE,1:IKT)
+PM3_THR_WTHR(:,:) = 0.5*PLEPS(:,:)/PSQRT_TKE(:,:)/CSTURB%XCTD &
+                     * ZWORK2(:,:)
 !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 !
-PM3_THR_WTHR(IIJB:IIJE,IKB-1)=PM3_THR_WTHR(IIJB:IIJE,IKB)
-PM3_THR_WTHR(IIJB:IIJE,IKE+1)=PM3_THR_WTHR(IIJB:IIJE,IKE)
+PM3_THR_WTHR(:,IKB-1)=PM3_THR_WTHR(:,IKB)
+PM3_THR_WTHR(:,IKE+1)=PM3_THR_WTHR(:,IKE)
 !
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:M3_THR_WTHR',1,ZHOOK_HANDLE)
 END SUBROUTINE M3_THR_WTHR
@@ -1945,18 +1945,18 @@ IIJB=D%NIJB
 IKT=D%NKT
 !
 !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-ZWORK1(IIJB:IIJE,1:IKT) = PETHETA(IIJB:IIJE,1:IKT)*PBLL_O_E(IIJB:IIJE,1:IKT)/PD(IIJB:IIJE,1:IKT) & 
-                             *(1.+PREDR1(IIJB:IIJE,1:IKT))*(1.-(1.+PREDTH1(IIJB:IIJE,1:IKT)) & 
-                             *(1.5+PREDTH1(IIJB:IIJE,1:IKT)+PREDR1(IIJB:IIJE,1:IKT))/PD(IIJB:IIJE,1:IKT))
+ZWORK1(:,:) = PETHETA(:,:)*PBLL_O_E(:,:)/PD(:,:) & 
+                             *(1.+PREDR1(:,:))*(1.-(1.+PREDTH1(:,:)) & 
+                             *(1.5+PREDTH1(:,:)+PREDR1(:,:))/PD(:,:))
 !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 CALL MZF_PHY(D,ZWORK1,ZWORK2)
 !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-PD_M3_THR_WTHR_O_DDTDZ(IIJB:IIJE,1:IKT) = 0.5*PLEPS(IIJB:IIJE,1:IKT)/PSQRT_TKE(IIJB:IIJE,1:IKT) & 
-                                                / CSTURB%XCTD * CSTURB%XCTV * ZWORK2(IIJB:IIJE,1:IKT)
+PD_M3_THR_WTHR_O_DDTDZ(:,:) = 0.5*PLEPS(:,:)/PSQRT_TKE(:,:) & 
+                                                / CSTURB%XCTD * CSTURB%XCTV * ZWORK2(:,:)
 !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 !
-PD_M3_THR_WTHR_O_DDTDZ(IIJB:IIJE,IKB-1)=PD_M3_THR_WTHR_O_DDTDZ(IIJB:IIJE,IKB)
-PD_M3_THR_WTHR_O_DDTDZ(IIJB:IIJE,IKE+1)=PD_M3_THR_WTHR_O_DDTDZ(IIJB:IIJE,IKE)
+PD_M3_THR_WTHR_O_DDTDZ(:,IKB-1)=PD_M3_THR_WTHR_O_DDTDZ(:,IKB)
+PD_M3_THR_WTHR_O_DDTDZ(:,IKE+1)=PD_M3_THR_WTHR_O_DDTDZ(:,IKE)
 !
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:D_M3_THR_WTHR_O_DDTDZ',1,ZHOOK_HANDLE)
 END SUBROUTINE D_M3_THR_WTHR_O_DDTDZ
@@ -1984,17 +1984,17 @@ IIJB=D%NIJB
 IKT=D%NKT
 !
 !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-ZWORK1(IIJB:IIJE,1:IKT) = (1.+PREDR1(IIJB:IIJE,1:IKT))*PBLL_O_E(IIJB:IIJE,1:IKT)* & 
-                                  PETHETA(IIJB:IIJE,1:IKT)*PDRDZ(IIJB:IIJE,1:IKT)/PD(IIJB:IIJE,1:IKT)
+ZWORK1(:,:) = (1.+PREDR1(:,:))*PBLL_O_E(:,:)* & 
+                                  PETHETA(:,:)*PDRDZ(:,:)/PD(:,:)
 !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 CALL MZF_PHY(D,ZWORK1,ZWORK2)
 !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-PM3_THR_WTH2(IIJB:IIJE,1:IKT) = - 0.25*PLEPS(IIJB:IIJE,1:IKT) & 
-                                    / PSQRT_TKE(IIJB:IIJE,1:IKT)/CSTURB%XCTD*CSTURB%XCTV * ZWORK2(IIJB:IIJE,1:IKT)
+PM3_THR_WTH2(:,:) = - 0.25*PLEPS(:,:) & 
+                                    / PSQRT_TKE(:,:)/CSTURB%XCTD*CSTURB%XCTV * ZWORK2(:,:)
 !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 !
-PM3_THR_WTH2(IIJB:IIJE,IKB-1)=PM3_THR_WTH2(IIJB:IIJE,IKB)
-PM3_THR_WTH2(IIJB:IIJE,IKE+1)=PM3_THR_WTH2(IIJB:IIJE,IKE)
+PM3_THR_WTH2(:,IKB-1)=PM3_THR_WTH2(:,IKB)
+PM3_THR_WTH2(:,IKE+1)=PM3_THR_WTH2(:,IKE)
 !
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:M3_THR_WTH2',1,ZHOOK_HANDLE)
 END SUBROUTINE M3_THR_WTH2
@@ -2023,19 +2023,19 @@ IIJB=D%NIJB
 IKT=D%NKT
 !
 !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-ZWORK1(IIJB:IIJE,1:IKT) = -(1.+PREDR1(IIJB:IIJE,1:IKT))*(PBLL_O_E(IIJB:IIJE,1:IKT) & 
-                                 *PETHETA(IIJB:IIJE,1:IKT)/PD(IIJB:IIJE,1:IKT))**2&
-                                 *PDRDZ(IIJB:IIJE,1:IKT)&
-                                 *(1.5+PREDTH1(IIJB:IIJE,1:IKT)+PREDR1(IIJB:IIJE,1:IKT))
+ZWORK1(:,:) = -(1.+PREDR1(:,:))*(PBLL_O_E(:,:) & 
+                                 *PETHETA(:,:)/PD(:,:))**2&
+                                 *PDRDZ(:,:)&
+                                 *(1.5+PREDTH1(:,:)+PREDR1(:,:))
 !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 CALL MZF_PHY(D,ZWORK1,ZWORK2)
 !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-PD_M3_THR_WTH2_O_DDTDZ(IIJB:IIJE,1:IKT) = - 0.25*PLEPS(IIJB:IIJE,1:IKT) &
-                                 /PSQRT_TKE(IIJB:IIJE,1:IKT)/CSTURB%XCTD*CSTURB%XCTV**2 * ZWORK2(IIJB:IIJE,1:IKT) 
+PD_M3_THR_WTH2_O_DDTDZ(:,:) = - 0.25*PLEPS(:,:) &
+                                 /PSQRT_TKE(:,:)/CSTURB%XCTD*CSTURB%XCTV**2 * ZWORK2(:,:) 
 !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 !
-PD_M3_THR_WTH2_O_DDTDZ(IIJB:IIJE,IKB-1)=PD_M3_THR_WTH2_O_DDTDZ(IIJB:IIJE,IKB)
-PD_M3_THR_WTH2_O_DDTDZ(IIJB:IIJE,IKE+1)=PD_M3_THR_WTH2_O_DDTDZ(IIJB:IIJE,IKE)
+PD_M3_THR_WTH2_O_DDTDZ(:,IKB-1)=PD_M3_THR_WTH2_O_DDTDZ(:,IKB)
+PD_M3_THR_WTH2_O_DDTDZ(:,IKE+1)=PD_M3_THR_WTH2_O_DDTDZ(:,IKE)
 !
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:D_M3_THR_WTH2_O_DDTDZ',1,ZHOOK_HANDLE)
 END SUBROUTINE D_M3_THR_WTH2_O_DDTDZ
@@ -2063,18 +2063,18 @@ IIJB=D%NIJB
 IKT=D%NKT
 !
 !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-ZWORK1(IIJB:IIJE,1:IKT) = PBLL_O_E(IIJB:IIJE,1:IKT)*PETHETA(IIJB:IIJE,1:IKT)/PD(IIJB:IIJE,1:IKT)&
-       *(-(1.+PREDR1(IIJB:IIJE,1:IKT))*PREDR1(IIJB:IIJE,1:IKT)/PD(IIJB:IIJE,1:IKT)&
-       *(1.5+PREDTH1(IIJB:IIJE,1:IKT)+PREDR1(IIJB:IIJE,1:IKT))+(1.+2.*PREDR1(IIJB:IIJE,1:IKT)))
+ZWORK1(:,:) = PBLL_O_E(:,:)*PETHETA(:,:)/PD(:,:)&
+       *(-(1.+PREDR1(:,:))*PREDR1(:,:)/PD(:,:)&
+       *(1.5+PREDTH1(:,:)+PREDR1(:,:))+(1.+2.*PREDR1(:,:)))
 !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 CALL MZF_PHY(D,ZWORK1,ZWORK2)
 !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-PD_M3_THR_WTH2_O_DDRDZ(IIJB:IIJE,1:IKT) = - 0.25*PLEPS(IIJB:IIJE,1:IKT)/PSQRT_TKE(IIJB:IIJE,1:IKT)& 
-                                                / CSTURB%XCTD*CSTURB%XCTV * ZWORK2(IIJB:IIJE,1:IKT)
+PD_M3_THR_WTH2_O_DDRDZ(:,:) = - 0.25*PLEPS(:,:)/PSQRT_TKE(:,:)& 
+                                                / CSTURB%XCTD*CSTURB%XCTV * ZWORK2(:,:)
 !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 !
-PD_M3_THR_WTH2_O_DDRDZ(IIJB:IIJE,IKB-1)=PD_M3_THR_WTH2_O_DDRDZ(IIJB:IIJE,IKB)
-PD_M3_THR_WTH2_O_DDRDZ(IIJB:IIJE,IKE+1)=PD_M3_THR_WTH2_O_DDRDZ(IIJB:IIJE,IKE)
+PD_M3_THR_WTH2_O_DDRDZ(:,IKB-1)=PD_M3_THR_WTH2_O_DDRDZ(:,IKB)
+PD_M3_THR_WTH2_O_DDRDZ(:,IKE+1)=PD_M3_THR_WTH2_O_DDRDZ(:,IKE)
 !
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:D_M3_THR_WTH2_O_DDRDZ',1,ZHOOK_HANDLE)
 END SUBROUTINE D_M3_THR_WTH2_O_DDRDZ
@@ -2101,16 +2101,16 @@ IIJB=D%NIJB
 IKT=D%NKT
 !
 !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-ZWORK1(IIJB:IIJE,1:IKT) = (1.+PREDR1(IIJB:IIJE,1:IKT))*PDRDZ(IIJB:IIJE,1:IKT)/PD(IIJB:IIJE,1:IKT)
+ZWORK1(:,:) = (1.+PREDR1(:,:))*PDRDZ(:,:)/PD(:,:)
 !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 CALL MZF_PHY(D,ZWORK1,ZWORK2)
 !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-PM3_THR_W2TH(IIJB:IIJE,1:IKT) = - 0.75*PLM(IIJB:IIJE,1:IKT)*PLEPS(IIJB:IIJE,1:IKT)& 
-                                      / PTKE(IIJB:IIJE,1:IKT) * CSTURB%XCTV * ZWORK2(IIJB:IIJE,1:IKT)
+PM3_THR_W2TH(:,:) = - 0.75*PLM(:,:)*PLEPS(:,:)& 
+                                      / PTKE(:,:) * CSTURB%XCTV * ZWORK2(:,:)
 !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 !
-PM3_THR_W2TH(IIJB:IIJE,IKB-1)=PM3_THR_W2TH(IIJB:IIJE,IKB)
-PM3_THR_W2TH(IIJB:IIJE,IKE+1)=PM3_THR_W2TH(IIJB:IIJE,IKE)
+PM3_THR_W2TH(:,IKB-1)=PM3_THR_W2TH(:,IKB)
+PM3_THR_W2TH(:,IKE+1)=PM3_THR_W2TH(:,IKE)
 !
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:M3_THR_W2TH',1,ZHOOK_HANDLE)
 END SUBROUTINE M3_THR_W2TH
@@ -2140,18 +2140,18 @@ IIJB=D%NIJB
 IKT=D%NKT
 !
 !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-ZWORK1(IIJB:IIJE,1:IKT) =  -PETHETA(IIJB:IIJE,1:IKT)*PBLL_O_E(IIJB:IIJE,1:IKT)*& 
-(1.+PREDR1(IIJB:IIJE,1:IKT))*PDRDZ(IIJB:IIJE,1:IKT)& 
-*(1.5+PREDTH1(IIJB:IIJE,1:IKT)+PREDR1(IIJB:IIJE,1:IKT))/PD(IIJB:IIJE,1:IKT)**2
+ZWORK1(:,:) =  -PETHETA(:,:)*PBLL_O_E(:,:)*& 
+(1.+PREDR1(:,:))*PDRDZ(:,:)& 
+*(1.5+PREDTH1(:,:)+PREDR1(:,:))/PD(:,:)**2
 !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 CALL MZF_PHY(D,ZWORK1,ZWORK2)
 !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-PD_M3_THR_W2TH_O_DDTDZ(IIJB:IIJE,1:IKT) = - 0.75*PLM(IIJB:IIJE,1:IKT)*PLEPS(IIJB:IIJE,1:IKT)&
-                                                / PTKE(IIJB:IIJE,1:IKT) * CSTURB%XCTV**2 * ZWORK1(IIJB:IIJE,1:IKT)
+PD_M3_THR_W2TH_O_DDTDZ(:,:) = - 0.75*PLM(:,:)*PLEPS(:,:)&
+                                                / PTKE(:,:) * CSTURB%XCTV**2 * ZWORK1(:,:)
 !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 !
-PD_M3_THR_W2TH_O_DDTDZ(IIJB:IIJE,IKB-1)=PD_M3_THR_W2TH_O_DDTDZ(IIJB:IIJE,IKB)
-PD_M3_THR_W2TH_O_DDTDZ(IIJB:IIJE,IKE+1)=PD_M3_THR_W2TH_O_DDTDZ(IIJB:IIJE,IKE)
+PD_M3_THR_W2TH_O_DDTDZ(:,IKB-1)=PD_M3_THR_W2TH_O_DDTDZ(:,IKB)
+PD_M3_THR_W2TH_O_DDTDZ(:,IKE+1)=PD_M3_THR_W2TH_O_DDTDZ(:,IKE)
 !
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:D_M3_THR_W2TH_O_DDTDZ',1,ZHOOK_HANDLE)
 END SUBROUTINE D_M3_THR_W2TH_O_DDTDZ
@@ -2178,18 +2178,18 @@ IIJB=D%NIJB
 IKT=D%NKT
 !
 !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-ZWORK1(IIJB:IIJE,1:IKT) =  -(1.+PREDR1(IIJB:IIJE,1:IKT))*PREDR1(IIJB:IIJE,1:IKT)&
-* (1.5+PREDTH1(IIJB:IIJE,1:IKT)+PREDR1(IIJB:IIJE,1:IKT))/PD(IIJB:IIJE,1:IKT)**2          &
-        +(1.+2.*PREDR1(IIJB:IIJE,1:IKT))/PD(IIJB:IIJE,1:IKT)
+ZWORK1(:,:) =  -(1.+PREDR1(:,:))*PREDR1(:,:)&
+* (1.5+PREDTH1(:,:)+PREDR1(:,:))/PD(:,:)**2          &
+        +(1.+2.*PREDR1(:,:))/PD(:,:)
 !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 CALL MZF_PHY(D,ZWORK1,ZWORK2)
 !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-PD_M3_THR_W2TH_O_DDRDZ(IIJB:IIJE,1:IKT) = - 0.75*PLM(IIJB:IIJE,1:IKT)*PLEPS(IIJB:IIJE,1:IKT)&
-                                                / PTKE(IIJB:IIJE,1:IKT) * CSTURB%XCTV * ZWORK2(IIJB:IIJE,1:IKT)
+PD_M3_THR_W2TH_O_DDRDZ(:,:) = - 0.75*PLM(:,:)*PLEPS(:,:)&
+                                                / PTKE(:,:) * CSTURB%XCTV * ZWORK2(:,:)
 !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 !
-PD_M3_THR_W2TH_O_DDRDZ(IIJB:IIJE,IKB-1)=PD_M3_THR_W2TH_O_DDRDZ(IIJB:IIJE,IKB)
-PD_M3_THR_W2TH_O_DDRDZ(IIJB:IIJE,IKE+1)=PD_M3_THR_W2TH_O_DDRDZ(IIJB:IIJE,IKE)
+PD_M3_THR_W2TH_O_DDRDZ(:,IKB-1)=PD_M3_THR_W2TH_O_DDRDZ(:,IKB)
+PD_M3_THR_W2TH_O_DDRDZ(:,IKE+1)=PD_M3_THR_W2TH_O_DDRDZ(:,IKE)
 !
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:D_M3_THR_W2TH_O_DDRDZ',1,ZHOOK_HANDLE)
 END SUBROUTINE D_M3_THR_W2TH_O_DDRDZ
diff --git a/src/PHYEX/turb/mode_rmc01.f90 b/src/PHYEX/turb/mode_rmc01.f90
index 59f254a0d4af720a86f3692144d7fcad68e4d806..cdd81bc62c496ee8377ba5b7ae852b66c676dd21 100644
--- a/src/PHYEX/turb/mode_rmc01.f90
+++ b/src/PHYEX/turb/mode_rmc01.f90
@@ -121,12 +121,12 @@ CALL MZF_PHY(D,PZZ,ZZZ)
 ! replace by height of mass points
 DO JK=1,IKT
   !$mnh_expand_array(JIJ=IIJB:IIJE)
-  ZZZ(IIJB:IIJE,JK) = ZZZ(IIJB:IIJE,JK) - PZZ(IIJB:IIJE,IKB)
+  ZZZ(:,JK) = ZZZ(:,JK) - PZZ(:,IKB)
   !$mnh_end_expand_array(JIJ=IIJB:IIJE)
 END DO
 ! fill upper level with physical value
 !$mnh_expand_array(JIJ=IIJB:IIJE)
-ZZZ(IIJB:IIJE,IKU) = 2.*ZZZ(IIJB:IIJE,IKU-IKL) - ZZZ(IIJB:IIJE,IKU-2*IKL)
+ZZZ(:,IKU) = 2.*ZZZ(:,IKU-IKL) - ZZZ(:,IKU-2*IKL)
 !$mnh_end_expand_array(JIJ=IIJB:IIJE)
 !
 !-------------------------------------------------------------------------------
@@ -137,16 +137,16 @@ ZZZ(IIJB:IIJE,IKU) = 2.*ZZZ(IIJB:IIJE,IKU-IKL) - ZZZ(IIJB:IIJE,IKU-2*IKL)
 ! z/LMO
 DO JK=1,IKT
   !$mnh_expand_where(JIJ=IIJB:IIJE)
-  WHERE (PLMO(IIJB:IIJE)==XUNDEF)
-    ZZ_O_LMO(IIJB:IIJE,JK)=0.
+  WHERE (PLMO(:)==XUNDEF)
+    ZZ_O_LMO(:,JK)=0.
   ELSEWHERE
-    ZZ_O_LMO(IIJB:IIJE,JK)=ZZZ(IIJB:IIJE,JK)*PDIRCOSZW(IIJB:IIJE)/PLMO(IIJB:IIJE)
+    ZZ_O_LMO(:,JK)=ZZZ(:,JK)*PDIRCOSZW(:)/PLMO(:)
   END WHERE
   !$mnh_end_expand_where(JIJ=IIJB:IIJE)
 END DO
 !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-ZZ_O_LMO(IIJB:IIJE,1:IKT) = MAX(ZZ_O_LMO(IIJB:IIJE,1:IKT),-10.)
-ZZ_O_LMO(IIJB:IIJE,1:IKT) = MIN(ZZ_O_LMO(IIJB:IIJE,1:IKT), 10.)
+ZZ_O_LMO(:,:) = MAX(ZZ_O_LMO(:,:),-10.)
+ZZ_O_LMO(:,:) = MIN(ZZ_O_LMO(:,:), 10.)
 !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 !
 !
@@ -172,40 +172,40 @@ SELECT CASE (HTURBLEN)
     CALL MXF_PHY(D,PDXX,ZWORK1)
     CALL MYF_PHY(D,PDYY,ZWORK2)
     !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-    ZDH(IIJB:IIJE,1:IKT) = SQRT(ZWORK1(IIJB:IIJE,1:IKT)*ZWORK2(IIJB:IIJE,1:IKT))
+    ZDH(:,:) = SQRT(ZWORK1(:,:)*ZWORK2(:,:))
     !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
     !
     CALL UPDATE_IIJU_PHY(D,ZZC)
     !
     DO JK=1,IKT
       !$mnh_expand_array(JIJ=IIJB:IIJE)
-      ZZC(IIJB:IIJE,JK) = 2.*MIN(ZPHIM(IIJB:IIJE,JK),1.)/CST%XKARMAN    &
-                            * MAX( PDZZ(IIJB:IIJE,JK)*PDIRCOSZW(IIJB:IIJE) , & 
-                            ZDH(IIJB:IIJE,JK)/PDIRCOSZW(IIJB:IIJE)/3. )
+      ZZC(:,JK) = 2.*MIN(ZPHIM(:,JK),1.)/CST%XKARMAN    &
+                            * MAX( PDZZ(:,JK)*PDIRCOSZW(:) , & 
+                            ZDH(:,JK)/PDIRCOSZW(:)/3. )
       !$mnh_end_expand_array(JIJ=IIJB:IIJE)
     END DO
     !
 !*     4. factor controling the transition between SBL and free isotropic turb. (3D case)
 !         --------------------------------------------------------------------
 !
-    ZGAM(IIJB:IIJE,IKA) = 0.
+    ZGAM(:,IKA) = 0.
     DO JK=IKTB,IKTE
       !$mnh_expand_array(JIJ=IIJB:IIJE)
-      ZGAM(IIJB:IIJE,JK) = 1.  - EXP( -3.*(ZZZ(IIJB:IIJE,JK)-ZZZ(IIJB:IIJE,IKB))/(ZZC(IIJB:IIJE,JK)) )
+      ZGAM(:,JK) = 1.  - EXP( -3.*(ZZZ(:,JK)-ZZZ(:,IKB))/(ZZC(:,JK)) )
       !$mnh_end_expand_array(JIJ=IIJB:IIJE)
       !$mnh_expand_where(JIJ=IIJB:IIJE)
-      WHERE (ZGAM(IIJB:IIJE,JK-IKL)>ZGAM(IIJB:IIJE,JK) .OR. ZGAM(IIJB:IIJE,JK-IKL)>0.99 ) 
-        ZGAM(IIJB:IIJE,JK) = 1.
+      WHERE (ZGAM(:,JK-IKL)>ZGAM(:,JK) .OR. ZGAM(:,JK-IKL)>0.99 ) 
+        ZGAM(:,JK) = 1.
       END WHERE
      !$mnh_end_expand_where(JIJ=IIJB:IIJE)
     END DO
     !$mnh_expand_array(JIJ=IIJB:IIJE)
-    ZGAM(IIJB:IIJE,IKU) = 1.  - EXP( -3.*(ZZZ(IIJB:IIJE,IKU)-ZZZ(IIJB:IIJE,IKB))& 
-                                   /(ZZC(IIJB:IIJE,IKU)) )
+    ZGAM(:,IKU) = 1.  - EXP( -3.*(ZZZ(:,IKU)-ZZZ(:,IKB))& 
+                                   /(ZZC(:,IKU)) )
     !$mnh_end_expand_array(JIJ=IIJB:IIJE)
     !$mnh_expand_where(JIJ=IIJB:IIJE)
-    WHERE (ZGAM(IIJB:IIJE,IKU-IKL)>ZGAM(IIJB:IIJE,IKU) .OR. ZGAM(IIJB:IIJE,IKU-IKL)>0.99 ) 
-      ZGAM(IIJB:IIJE,IKU) = 1.
+    WHERE (ZGAM(:,IKU-IKL)>ZGAM(:,IKU) .OR. ZGAM(:,IKU-IKL)>0.99 ) 
+      ZGAM(:,IKU) = 1.
     END WHERE
     !$mnh_end_expand_where(JIJ=IIJB:IIJE)
 !   
@@ -217,28 +217,28 @@ SELECT CASE (HTURBLEN)
 !
   CASE DEFAULT
 !* SBL depth is used
-    ZGAM(IIJB:IIJE,1:IKT) = 1.
-    ZGAM(IIJB:IIJE,IKA) = 0.
+    ZGAM(:,:) = 1.
+    ZGAM(:,IKA) = 0.
     DO JK=IKTB,IKTE
       !$mnh_expand_where(JIJ=IIJB:IIJE)
-      WHERE(PSBL_DEPTH(IIJB:IIJE)>0.)
-        ZGAM(IIJB:IIJE,JK) = TANH( (ZZZ(IIJB:IIJE,JK)-ZZZ(IIJB:IIJE,IKB))/PSBL_DEPTH(IIJB:IIJE) )
+      WHERE(PSBL_DEPTH(:)>0.)
+        ZGAM(:,JK) = TANH( (ZZZ(:,JK)-ZZZ(:,IKB))/PSBL_DEPTH(:) )
       END WHERE
       !$mnh_end_expand_where(JIJ=IIJB:IIJE)
       !$mnh_expand_where(JIJ=IIJB:IIJE)
-      WHERE (ZGAM(IIJB:IIJE,JK-IKL)>0.99 ) 
-        ZGAM(IIJB:IIJE,JK) = 1.
+      WHERE (ZGAM(:,JK-IKL)>0.99 ) 
+        ZGAM(:,JK) = 1.
       END WHERE
       !$mnh_end_expand_where(JIJ=IIJB:IIJE)
     END DO
     !$mnh_expand_where(JIJ=IIJB:IIJE)
-    WHERE(PSBL_DEPTH(IIJB:IIJE)>0.)
-      ZGAM(IIJB:IIJE,IKU) = TANH( (ZZZ(IIJB:IIJE,IKU)-ZZZ(IIJB:IIJE,IKB))/PSBL_DEPTH(IIJB:IIJE) )
+    WHERE(PSBL_DEPTH(:)>0.)
+      ZGAM(:,IKU) = TANH( (ZZZ(:,IKU)-ZZZ(:,IKB))/PSBL_DEPTH(:) )
     END WHERE
    !$mnh_end_expand_where(JIJ=IIJB:IIJE)
    !$mnh_expand_where(JIJ=IIJB:IIJE)
-    WHERE (ZGAM(IIJB:IIJE,IKU-IKL)>0.99 ) 
-      ZGAM(IIJB:IIJE,JK) = 1.
+    WHERE (ZGAM(:,IKU-IKL)>0.99 ) 
+      ZGAM(:,JK) = 1.
     END WHERE
     !$mnh_end_expand_where(JIJ=IIJB:IIJE)
 !
@@ -251,43 +251,43 @@ END SELECT
 !
 DO JK=1,IKT
 !$mnh_expand_array(JIJ=IIJB:IIJE)
-  ZL(IIJB:IIJE,JK) =  CST%XKARMAN/SQRT(CSTURB%XALPSBL)/CSTURB%XCMFS                                      &
-              * ZZZ(IIJB:IIJE,JK)*PDIRCOSZW(IIJB:IIJE)/(ZPHIM(IIJB:IIJE,JK)**2*SQRT(ZPHIE(IIJB:IIJE,JK)))
+  ZL(:,JK) =  CST%XKARMAN/SQRT(CSTURB%XALPSBL)/CSTURB%XCMFS                                      &
+              * ZZZ(:,JK)*PDIRCOSZW(:)/(ZPHIM(:,JK)**2*SQRT(ZPHIE(:,JK)))
 !$mnh_end_expand_array(JIJ=IIJB:IIJE)
 END DO
 !
 !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-PLK(IIJB:IIJE,1:IKT)=(1.-ZGAM(IIJB:IIJE,1:IKT))*ZL(IIJB:IIJE,1:IKT) &
-                             +ZGAM(IIJB:IIJE,1:IKT)*PLK(IIJB:IIJE,1:IKT)
+PLK(:,:)=(1.-ZGAM(:,:))*ZL(:,:) &
+                             +ZGAM(:,:)*PLK(:,:)
 !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 !
-PLK(IIJB:IIJE,IKA) = PLK(IIJB:IIJE,IKB)
-PLK(IIJB:IIJE,IKU) = PLK(IIJB:IIJE,IKE)
+PLK(:,IKA) = PLK(:,IKB)
+PLK(:,IKU) = PLK(:,IKE)
 !-------------------------------------------------------------------------------
 !
 !*     7. Modification of the dissipative length
 !         --------------------------------------
 !
 !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-ZL(IIJB:IIJE,1:IKT) = ZL(IIJB:IIJE,1:IKT) * (CSTURB%XALPSBL**(3./2.)*CST%XKARMAN*CSTURB%XCED) &
+ZL(:,:) = ZL(:,:) * (CSTURB%XALPSBL**(3./2.)*CST%XKARMAN*CSTURB%XCED) &
         / (CST%XKARMAN/SQRT(CSTURB%XALPSBL)/CSTURB%XCMFS)
 !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 !
 !$mnh_expand_where(JIJ=IIJB:IIJE,JK=1:IKT)
-WHERE (ZZ_O_LMO(IIJB:IIJE,1:IKT)<0.)
-  ZL(IIJB:IIJE,1:IKT) = ZL(IIJB:IIJE,1:IKT)/(1.-1.9*ZZ_O_LMO(IIJB:IIJE,1:IKT))
+WHERE (ZZ_O_LMO(:,:)<0.)
+  ZL(:,:) = ZL(:,:)/(1.-1.9*ZZ_O_LMO(:,:))
 ELSEWHERE
-  ZL(IIJB:IIJE,1:IKT) = ZL(IIJB:IIJE,1:IKT)/(1.-0.3*SQRT(ZZ_O_LMO(IIJB:IIJE,1:IKT)))
+  ZL(:,:) = ZL(:,:)/(1.-0.3*SQRT(ZZ_O_LMO(:,:)))
 END WHERE
 !$mnh_end_expand_where(JIJ=IIJB:IIJE,JK=1:IKT)
 !
 !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-PLEPS(IIJB:IIJE,1:IKT)=(1.-ZGAM(IIJB:IIJE,1:IKT))*ZL(IIJB:IIJE,1:IKT) &
-                               +ZGAM(IIJB:IIJE,1:IKT)*PLEPS(IIJB:IIJE,1:IKT)
+PLEPS(:,:)=(1.-ZGAM(:,:))*ZL(:,:) &
+                               +ZGAM(:,:)*PLEPS(:,:)
 !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 !
-PLEPS(IIJB:IIJE,IKA) = PLEPS(IIJB:IIJE,IKB)
-PLEPS(IIJB:IIJE,IKU) = PLEPS(IIJB:IIJE,IKE)
+PLEPS(:,IKA) = PLEPS(:,IKB)
+PLEPS(:,IKU) = PLEPS(:,IKE)
 !-------------------------------------------------------------------------------
 !
 IF (LHOOK) CALL DR_HOOK('RMC01',1,ZHOOK_HANDLE)
diff --git a/src/PHYEX/turb/mode_sbl_depth.f90 b/src/PHYEX/turb/mode_sbl_depth.f90
index f9312586278142cdd23407ea05538d4d31f3b78c..351b732f54cf3d143386566806c333778ceac496 100644
--- a/src/PHYEX/turb/mode_sbl_depth.f90
+++ b/src/PHYEX/turb/mode_sbl_depth.f90
@@ -96,11 +96,11 @@ IIJB=D%NIJB
 IKT=D%NKT
 !
 !$mnh_expand_array(JIJ=IIJB:IIJE)
-ZWU(IIJB:IIJE) = PFLXU(IIJB:IIJE,IKB)
-ZWV(IIJB:IIJE) = PFLXV(IIJB:IIJE,IKB)
-ZQ0(IIJB:IIJE) = PWTHV(IIJB:IIJE,IKB)
+ZWU(:) = PFLXU(:,IKB)
+ZWV(:) = PFLXV(:,IKB)
+ZQ0(:) = PWTHV(:,IKB)
 !
-ZUSTAR2(IIJB:IIJE) = SQRT(ZWU(IIJB:IIJE)**2+ZWV(IIJB:IIJE)**2)
+ZUSTAR2(:) = SQRT(ZWU(:)**2+ZWV(:)**2)
 !
 !$mnh_end_expand_array(JIJ=IIJB:IIJE)
 !----------------------------------------------------------------------------
@@ -108,11 +108,11 @@ ZUSTAR2(IIJB:IIJE) = SQRT(ZWU(IIJB:IIJE)**2+ZWV(IIJB:IIJE)**2)
 !* BL and SBL diagnosed with friction criteria
 !
 !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-ZWIND(IIJB:IIJE,1:IKT)=SQRT(PFLXU(IIJB:IIJE,1:IKT)**2+PFLXV(IIJB:IIJE,1:IKT)**2)
+ZWIND(:,:)=SQRT(PFLXU(:,:)**2+PFLXV(:,:)**2)
 !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 CALL BL_DEPTH_DIAG(D,ZUSTAR2,PZZ(:,IKB),ZWIND,PZZ,CSTURB%XFTOP_O_FSURF,ZSBL_DYN)
 !$mnh_expand_array(JIJ=IIJB:IIJE)
-ZSBL_DYN(IIJB:IIJE) = CSTURB%XSBL_O_BL * ZSBL_DYN(IIJB:IIJE)
+ZSBL_DYN(:) = CSTURB%XSBL_O_BL * ZSBL_DYN(:)
 !$mnh_end_expand_array(JIJ=IIJB:IIJE)
 !
 !----------------------------------------------------------------------------
@@ -121,7 +121,7 @@ ZSBL_DYN(IIJB:IIJE) = CSTURB%XSBL_O_BL * ZSBL_DYN(IIJB:IIJE)
 !
 CALL BL_DEPTH_DIAG(D,ZQ0,PZZ(:,IKB),PWTHV,PZZ,CSTURB%XFTOP_O_FSURF,ZSBL_THER)
 !$mnh_expand_array(JIJ=IIJB:IIJE)
-ZSBL_THER(IIJB:IIJE)= CSTURB%XSBL_O_BL * ZSBL_THER(IIJB:IIJE)
+ZSBL_THER(:)= CSTURB%XSBL_O_BL * ZSBL_THER(:)
 !$mnh_end_expand_array(JIJ=IIJB:IIJE)
 !
 !----------------------------------------------------------------------------
@@ -130,40 +130,40 @@ ZSBL_THER(IIJB:IIJE)= CSTURB%XSBL_O_BL * ZSBL_THER(IIJB:IIJE)
 !
 PSBL_DEPTH(:) = 0.
 !$mnh_expand_where(JIJ=IIJB:IIJE)
-WHERE (ZSBL_THER(IIJB:IIJE)> 0. .AND. ZSBL_DYN(IIJB:IIJE)> 0.) 
-  PSBL_DEPTH = MIN(ZSBL_THER(IIJB:IIJE),ZSBL_DYN(IIJB:IIJE))
+WHERE (ZSBL_THER(:)> 0. .AND. ZSBL_DYN(:)> 0.) 
+  PSBL_DEPTH = MIN(ZSBL_THER(:),ZSBL_DYN(:))
 END WHERE
 !$mnh_end_expand_where(JIJ=IIJB:IIJE)
 !
 !$mnh_expand_where(JIJ=IIJB:IIJE)
-WHERE (ZSBL_THER(IIJB:IIJE)> 0. .AND. ZSBL_DYN(IIJB:IIJE)==0.) 
-  PSBL_DEPTH(IIJB:IIJE) = ZSBL_THER(IIJB:IIJE)
+WHERE (ZSBL_THER(:)> 0. .AND. ZSBL_DYN(:)==0.) 
+  PSBL_DEPTH(:) = ZSBL_THER(:)
 END WHERE
 !$mnh_end_expand_where(JIJ=IIJB:IIJE)
 !
 !$mnh_expand_where(JIJ=IIJB:IIJE)
-WHERE (ZSBL_THER(IIJB:IIJE)==0. .AND. ZSBL_DYN(IIJB:IIJE)> 0.) 
-  PSBL_DEPTH(IIJB:IIJE) = ZSBL_DYN(IIJB:IIJE)
+WHERE (ZSBL_THER(:)==0. .AND. ZSBL_DYN(:)> 0.) 
+  PSBL_DEPTH(:) = ZSBL_DYN(:)
 END WHERE
 !$mnh_end_expand_where(JIJ=IIJB:IIJE)
 !
 DO JLOOP=1,5
   !$mnh_expand_where(JIJ=IIJB:IIJE)
-  WHERE (PLMO(IIJB:IIJE)/=XUNDEF .AND. ABS(PLMO(IIJB:IIJE))>=0.01 )
-    ZA(IIJB:IIJE) = TANH(2.*PSBL_DEPTH(IIJB:IIJE)/PLMO(IIJB:IIJE))**2
-    PSBL_DEPTH(IIJB:IIJE) = 0.2 * PSBL_DEPTH(IIJB:IIJE) + 0.8 * ((1.-ZA(IIJB:IIJE)) &
-                                * ZSBL_DYN(IIJB:IIJE) + ZA(IIJB:IIJE) * ZSBL_THER(IIJB:IIJE) )
+  WHERE (PLMO(:)/=XUNDEF .AND. ABS(PLMO(:))>=0.01 )
+    ZA(:) = TANH(2.*PSBL_DEPTH(:)/PLMO(:))**2
+    PSBL_DEPTH(:) = 0.2 * PSBL_DEPTH(:) + 0.8 * ((1.-ZA(:)) &
+                                * ZSBL_DYN(:) + ZA(:) * ZSBL_THER(:) )
   END WHERE
   !$mnh_end_expand_where(JIJ=IIJB:IIJE)
 END DO
 !$mnh_expand_where(JIJ=IIJB:IIJE)
-WHERE (ABS(PLMO(IIJB:IIJE))<=0.01 ) 
-  PSBL_DEPTH(IIJB:IIJE) = ZSBL_THER(IIJB:IIJE)
+WHERE (ABS(PLMO(:))<=0.01 ) 
+  PSBL_DEPTH(:) = ZSBL_THER(:)
 END WHERE
 !$mnh_end_expand_where(JIJ=IIJB:IIJE)
 !$mnh_expand_where(JIJ=IIJB:IIJE)
-WHERE (PLMO(IIJB:IIJE)==XUNDEF)
-  PSBL_DEPTH(IIJB:IIJE) = ZSBL_DYN(IIJB:IIJE)
+WHERE (PLMO(:)==XUNDEF)
+  PSBL_DEPTH(:) = ZSBL_DYN(:)
 END WHERE
 !$mnh_end_expand_where(JIJ=IIJB:IIJE)
 !
diff --git a/src/PHYEX/turb/mode_sbl_phy.f90 b/src/PHYEX/turb/mode_sbl_phy.f90
index c3d8be4f0a876451e0267d88c4a3ee535dd5ac7c..fcf58f980249bfde88387bf499b8aedf3cab1061 100644
--- a/src/PHYEX/turb/mode_sbl_phy.f90
+++ b/src/PHYEX/turb/mode_sbl_phy.f90
@@ -67,10 +67,10 @@ IIJB=D%NIJB
 IKT=D%NKT
 !
 !$mnh_expand_where(JIJ=IIJB:IIJE,JK=1:IKT)
-WHERE ( PZ_O_LMO(IIJB:IIJE,1:IKT) < 0. )
-  BUSINGERPHIM(IIJB:IIJE,1:IKT) = (1.-15.*PZ_O_LMO(IIJB:IIJE,1:IKT))**(-0.25)
+WHERE ( PZ_O_LMO(:,:) < 0. )
+  BUSINGERPHIM(:,:) = (1.-15.*PZ_O_LMO(:,:))**(-0.25)
 ELSEWHERE
-  BUSINGERPHIM(IIJB:IIJE,1:IKT) = 1. + 4.7 * PZ_O_LMO(IIJB:IIJE,1:IKT)
+  BUSINGERPHIM(:,:) = 1. + 4.7 * PZ_O_LMO(:,:)
 END WHERE
 !$mnh_end_expand_where(JIJ=IIJB:IIJE,JK=1:IKT)
 IF (LHOOK) CALL DR_HOOK('MODE_SBL:BUSINGER_PHIM',1,ZHOOK_HANDLE)
@@ -98,10 +98,10 @@ IIJB=D%NIJB
 IKT=D%NKT
 !
 !$mnh_expand_where(JIJ=IIJB:IIJE,JK=1:IKT)
-WHERE ( PZ_O_LMO(IIJB:IIJE,1:IKT) < 0. )
-  BUSINGERPHIH(IIJB:IIJE,1:IKT) = 0.74 * (1.-9.*PZ_O_LMO(IIJB:IIJE,1:IKT))**(-0.5)
+WHERE ( PZ_O_LMO(:,:) < 0. )
+  BUSINGERPHIH(:,:) = 0.74 * (1.-9.*PZ_O_LMO(:,:))**(-0.5)
 ELSEWHERE
-  BUSINGERPHIH(IIJB:IIJE,1:IKT) = 0.74 + 4.7 * PZ_O_LMO(IIJB:IIJE,1:IKT)
+  BUSINGERPHIH(:,:) = 0.74 + 4.7 * PZ_O_LMO(:,:)
 END WHERE
 !$mnh_end_expand_where(JIJ=IIJB:IIJE,JK=1:IKT)
 IF (LHOOK) CALL DR_HOOK('MODE_SBL:BUSINGER_PHIH',1,ZHOOK_HANDLE)
@@ -130,11 +130,11 @@ IIJB=D%NIJB
 IKT=D%NKT
 !
 !$mnh_expand_where(JIJ=IIJB:IIJE,JK=1:IKT)
-WHERE ( PZ_O_LMO(IIJB:IIJE,1:IKT) < 0. )
-  BUSINGERPHIE(IIJB:IIJE,1:IKT)=(1.+(-PZ_O_LMO(IIJB:IIJE,1:IKT))**(2./3.)/CSTURB%XALPSBL)&
-                            * (1.-15.*PZ_O_LMO(IIJB:IIJE,1:IKT))**(0.5)
+WHERE ( PZ_O_LMO(:,:) < 0. )
+  BUSINGERPHIE(:,:)=(1.+(-PZ_O_LMO(:,:))**(2./3.)/CSTURB%XALPSBL)&
+                            * (1.-15.*PZ_O_LMO(:,:))**(0.5)
 ELSEWHERE
-  BUSINGERPHIE(IIJB:IIJE,1:IKT) = 1./(1. + 4.7 * PZ_O_LMO(IIJB:IIJE,1:IKT))**2
+  BUSINGERPHIE(:,:) = 1./(1. + 4.7 * PZ_O_LMO(:,:))**2
 END WHERE
 !$mnh_end_expand_where(JIJ=IIJB:IIJE,JK=1:IKT)
 IF (LHOOK) CALL DR_HOOK('MODE_SBL:BUSINGER_PHIE',1,ZHOOK_HANDLE)
@@ -167,15 +167,15 @@ SUBROUTINE LMO(D,CST,PUSTAR,PTHETA,PRV,PSFTH,PSFRV,PLMO)
   ZEPS=(CST%XRV-CST%XRD)/CST%XRD
 !
   !$mnh_expand_array(JIJ=IIJB:IIJE)
-  ZTHETAV(IIJB:IIJE) = PTHETA(IIJB:IIJE) * ( 1. +ZEPS * PRV(IIJB:IIJE))
-  ZQ0(IIJB:IIJE) = PSFTH(IIJB:IIJE) + ZTHETAV(IIJB:IIJE) * ZEPS * PSFRV(IIJB:IIJE)
+  ZTHETAV(:) = PTHETA(:) * ( 1. +ZEPS * PRV(:))
+  ZQ0(:) = PSFTH(:) + ZTHETAV(:) * ZEPS * PSFRV(:)
 !
-  PLMO(IIJB:IIJE) = XUNDEF
+  PLMO(:) = XUNDEF
   !$mnh_end_expand_array(JIJ=IIJB:IIJE)
   !$mnh_expand_where(JIJ=IIJB:IIJE)
-  WHERE ( ZQ0(IIJB:IIJE)/=0. )
-    PLMO(IIJB:IIJE) = - MAX(PUSTAR(IIJB:IIJE),1.E-6)**3                &
-                  / ( CST%XKARMAN * CST%XG / ZTHETAV(IIJB:IIJE) *ZQ0(IIJB:IIJE) )
+  WHERE ( ZQ0(:)/=0. )
+    PLMO(:) = - MAX(PUSTAR(:),1.E-6)**3                &
+                  / ( CST%XKARMAN * CST%XG / ZTHETAV(:) *ZQ0(:) )
   END WHERE
   !$mnh_end_expand_where(JIJ=IIJB:IIJE)
   IF (LHOOK) CALL DR_HOOK('MODE_SBL:LMO',1,ZHOOK_HANDLE)
diff --git a/src/PHYEX/turb/mode_thl_rt_from_th_r_mf.f90 b/src/PHYEX/turb/mode_thl_rt_from_th_r_mf.f90
index 6c8aa463a23ef4eae31ab6ad909ca8ae77a90b49..59c68a39727156ea751af1d1e622f02d24ca0ab0 100644
--- a/src/PHYEX/turb/mode_thl_rt_from_th_r_mf.f90
+++ b/src/PHYEX/turb/mode_thl_rt_from_th_r_mf.f90
@@ -93,20 +93,20 @@ IKT=D%NKT
 !
 !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 !temperature
-ZT(IIJB:IIJE,:) = PTH(IIJB:IIJE,:) * PEXN(IIJB:IIJE,:)
+ZT(:,:) = PTH(:,:) * PEXN(:,:)
 
 !Cp
-ZCP(IIJB:IIJE,:)=CST%XCPD
-IF (KRR > 0) ZCP(IIJB:IIJE,:) = ZCP(IIJB:IIJE,:) + CST%XCPV * PR(IIJB:IIJE,:,1)
+ZCP(:,:)=CST%XCPD
+IF (KRR > 0) ZCP(:,:) = ZCP(:,:) + CST%XCPV * PR(:,:,1)
 !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 DO JRR = 2,1+KRRL  ! loop on the liquid components
   !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-  ZCP(IIJB:IIJE,:)  = ZCP(IIJB:IIJE,:) + CST%XCL * PR(IIJB:IIJE,:,JRR)
+  ZCP(:,:)  = ZCP(:,:) + CST%XCL * PR(:,:,JRR)
   !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 END DO
 DO JRR = 2+KRRL,1+KRRL+KRRI ! loop on the solid components
   !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-  ZCP(IIJB:IIJE,:)  = ZCP(IIJB:IIJE,:)  + CST%XCI * PR(IIJB:IIJE,:,JRR)
+  ZCP(:,:)  = ZCP(:,:)  + CST%XCI * PR(:,:,JRR)
   !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 END DO
 
@@ -114,33 +114,33 @@ IF ( KRRL >= 1 ) THEN
   IF ( KRRI >= 1 ) THEN
     !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
     !ZLVOCPEXN and ZLSOCPEXN
-    ZLVOCPEXN(IIJB:IIJE,:)=(CST%XLVTT + (CST%XCPV-CST%XCL) *  (ZT(IIJB:IIJE,:)-CST%XTT) ) & 
-                            &/ ZCP(IIJB:IIJE,:) / PEXN(IIJB:IIJE,:)
-    ZLSOCPEXN(IIJB:IIJE,:)=(CST%XLSTT + (CST%XCPV-CST%XCI) *  (ZT(IIJB:IIJE,:)-CST%XTT) ) &
-                            &/ ZCP(IIJB:IIJE,:) / PEXN(IIJB:IIJE,:)
+    ZLVOCPEXN(:,:)=(CST%XLVTT + (CST%XCPV-CST%XCL) *  (ZT(:,:)-CST%XTT) ) & 
+                            &/ ZCP(:,:) / PEXN(:,:)
+    ZLSOCPEXN(:,:)=(CST%XLSTT + (CST%XCPV-CST%XCI) *  (ZT(:,:)-CST%XTT) ) &
+                            &/ ZCP(:,:) / PEXN(:,:)
     ! Rnp 
-    PRT(IIJB:IIJE,:)  = PR(IIJB:IIJE,:,1)  + PR(IIJB:IIJE,:,2)  + PR(IIJB:IIJE,:,4)
+    PRT(:,:)  = PR(:,:,1)  + PR(:,:,2)  + PR(:,:,4)
     ! Theta_l 
-    PTHL(IIJB:IIJE,:)  = PTH(IIJB:IIJE,:)  - ZLVOCPEXN(IIJB:IIJE,:) * PR(IIJB:IIJE,:,2) &
-                           - ZLSOCPEXN(IIJB:IIJE,:) * PR(IIJB:IIJE,:,4)
+    PTHL(:,:)  = PTH(:,:)  - ZLVOCPEXN(:,:) * PR(:,:,2) &
+                           - ZLSOCPEXN(:,:) * PR(:,:,4)
     !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
   ELSE
     !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
     !ZLVOCPEXN
-    ZLVOCPEXN(IIJB:IIJE,:)=(CST%XLVTT + (CST%XCPV-CST%XCL) *  (ZT(IIJB:IIJE,:)-CST%XTT) ) &
-                            &/ ZCP(IIJB:IIJE,:) / PEXN(IIJB:IIJE,:)
+    ZLVOCPEXN(:,:)=(CST%XLVTT + (CST%XCPV-CST%XCL) *  (ZT(:,:)-CST%XTT) ) &
+                            &/ ZCP(:,:) / PEXN(:,:)
     ! Rnp
-    PRT(IIJB:IIJE,:)  = PR(IIJB:IIJE,:,1)  + PR(IIJB:IIJE,:,2) 
+    PRT(:,:)  = PR(:,:,1)  + PR(:,:,2) 
     ! Theta_l
-    PTHL(IIJB:IIJE,:) = PTH(IIJB:IIJE,:)  - ZLVOCPEXN(IIJB:IIJE,:) * PR(IIJB:IIJE,:,2)
+    PTHL(:,:) = PTH(:,:)  - ZLVOCPEXN(:,:) * PR(:,:,2)
     !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
   END IF
 ELSE
   !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
   ! Rnp = rv
-  PRT(IIJB:IIJE,:)  = PR(IIJB:IIJE,:,1)
+  PRT(:,:)  = PR(:,:,1)
   ! Theta_l = Theta
-  PTHL(IIJB:IIJE,:) = PTH(IIJB:IIJE,:)
+  PTHL(:,:) = PTH(:,:)
   !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 END IF
 IF (LHOOK) CALL DR_HOOK('THL_RT_FRM_TH_R_MF',1,ZHOOK_HANDLE)
diff --git a/src/PHYEX/turb/mode_tke_eps_sources.f90 b/src/PHYEX/turb/mode_tke_eps_sources.f90
index 1ca962693ed6b5b15547b841bf664cc0328871a9..aef4003ca11c629af10bfa8336bd7f91821fc6ff 100644
--- a/src/PHYEX/turb/mode_tke_eps_sources.f90
+++ b/src/PHYEX/turb/mode_tke_eps_sources.f90
@@ -239,7 +239,7 @@ IKL=D%NKL
 !
 ! compute the effective diffusion coefficient at the mass point
 !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-ZKEFF(IIJB:IIJE,1:IKT) = PLM(IIJB:IIJE,1:IKT) * SQRT(PTKEM(IIJB:IIJE,1:IKT))
+ZKEFF(:,:) = PLM(:,:) * SQRT(PTKEM(:,:))
 !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 !
 !----------------------------------------------------------------------------
@@ -253,9 +253,9 @@ ZKEFF(IIJB:IIJE,1:IKT) = PLM(IIJB:IIJE,1:IKT) * SQRT(PTKEM(IIJB:IIJE,1:IKT))
 ! Complete the sources of TKE with the horizontal turbulent explicit transport
 !
 IF (TURBN%CTURBDIM=='3DIM') THEN
-  ZTR(IIJB:IIJE,1:IKT)=PTRH(IIJB:IIJE,1:IKT)
+  ZTR(:,:)=PTRH(:,:)
 ELSE
-  ZTR(IIJB:IIJE,1:IKT)=0.
+  ZTR(:,:)=0.
 END IF
 !
 !
@@ -265,12 +265,12 @@ END IF
 IF (OOCEAN) THEN
   ! W(IKE) value stored in PDP(IKE) to the mass localization of tke(IKE)
   !$mnh_expand_array(JIJ=IIJB:IIJE)  
-  PDP(IIJB:IIJE,IKE) = PDP(IIJB:IIJE,IKE) * (1. + PDZZ(IIJB:IIJE,IKE)/PDZZ(IIJB:IIJE,IKE+1))
+  PDP(:,IKE) = PDP(:,IKE) * (1. + PDZZ(:,IKE)/PDZZ(:,IKE+1))
   !$mnh_end_expand_array(JIJ=IIJB:IIJE)  
 ELSE
   ! W(IKB+1) value stored in PDP(IKB) to the mass localization tke(IKB)
   !$mnh_expand_array(JIJ=IIJB:IIJE)
-  PDP(IIJB:IIJE,IKB) = PDP(IIJB:IIJE,IKB) * (1. + PDZZ(IIJB:IIJE,IKB+IKL)/PDZZ(IIJB:IIJE,IKB))
+  PDP(:,IKB) = PDP(:,IKB) * (1. + PDZZ(:,IKB+IKL)/PDZZ(:,IKB))
   !$mnh_end_expand_array(JIJ=IIJB:IIJE)
 END IF
 !
@@ -281,11 +281,11 @@ CALL MZM_PHY(D,ZKEFF,ZMWORK1)
 CALL MZM_PHY(D,PRHODJ,ZMWORK2)
 !
 !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-ZFLX(IIJB:IIJE,1:IKT) = CSTURB%XCED * SQRT(PTKEM(IIJB:IIJE,1:IKT)) / PLEPS(IIJB:IIJE,1:IKT)
-ZSOURCE(IIJB:IIJE,1:IKT) = ( PRTKES(IIJB:IIJE,1:IKT) +  PRTKEMS(IIJB:IIJE,1:IKT) ) &
-                                     / PRHODJ(IIJB:IIJE,1:IKT) - PTKEM(IIJB:IIJE,1:IKT) / PTSTEP &
-   + PDP(IIJB:IIJE,1:IKT) + PTP(IIJB:IIJE,1:IKT) + ZTR(IIJB:IIJE,1:IKT) & 
-   - PEXPL * ZFLX(IIJB:IIJE,1:IKT) * PTKEM(IIJB:IIJE,1:IKT)
+ZFLX(:,:) = CSTURB%XCED * SQRT(PTKEM(:,:)) / PLEPS(:,:)
+ZSOURCE(:,:) = ( PRTKES(:,:) +  PRTKEMS(:,:) ) &
+                                     / PRHODJ(:,:) - PTKEM(:,:) / PTSTEP &
+   + PDP(:,:) + PTP(:,:) + ZTR(:,:) & 
+   - PEXPL * ZFLX(:,:) * PTKEM(:,:)
 !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 !
 !*       2.2  implicit vertical TKE transport
@@ -296,15 +296,15 @@ ZSOURCE(IIJB:IIJE,1:IKT) = ( PRTKES(IIJB:IIJE,1:IKT) +  PRTKEMS(IIJB:IIJE,1:IKT)
 IF (OOCEAN) THEN
   !for ocean:wave breaking  simple/very rough param wE = 100 Ustar**3 where ustar is the Tau_atmi/rhocea  
   !$mnh_expand_array(JIJ=IIJB:IIJE)
-  ZSOURCE(IIJB:IIJE,IKE)=ZSOURCE(IIJB:IIJE,IKE)-1.E2*((PSFUM(IIJB:IIJE)**2 + PSFVM(IIJB:IIJE)**2)**1.5) /PDZZ(IIJB:IIJE,IKE)  
+  ZSOURCE(:,IKE)=ZSOURCE(:,IKE)-1.E2*((PSFUM(:)**2 + PSFVM(:)**2)**1.5) /PDZZ(:,IKE)  
   !$mnh_end_expand_array(JIJ=IIJB:IIJE)  
 END IF
 ! Compute the vector giving the elements just under the diagonal for the 
 ! matrix inverted in TRIDIAG 
 !
 !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-ZA(IIJB:IIJE,1:IKT)     = - PTSTEP * CSTURB%XCET * ZMWORK1(IIJB:IIJE,1:IKT) & 
-                                    * ZMWORK2(IIJB:IIJE,1:IKT) / PDZZ(IIJB:IIJE,1:IKT)**2
+ZA(:,:)     = - PTSTEP * CSTURB%XCET * ZMWORK1(:,:) & 
+                                    * ZMWORK2(:,:) / PDZZ(:,:)**2
 !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 !
 ! Compute TKE at time t+deltat: ( stored in ZRES )
@@ -316,8 +316,8 @@ CALL GET_HALO_PHY(D,ZRES)
 !
 IF (ODIAG_IN_RUN) THEN
   !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-  PCURRENT_TKE_DISS(IIJB:IIJE,1:IKT) = ZFLX(IIJB:IIJE,1:IKT) * PTKEM(IIJB:IIJE,1:IKT) &
-                                  *(PEXPL*PTKEM(IIJB:IIJE,1:IKT) + TURBN%XIMPL*ZRES(IIJB:IIJE,1:IKT))
+  PCURRENT_TKE_DISS(:,:) = ZFLX(:,:) * PTKEM(:,:) &
+                                  *(PEXPL*PTKEM(:,:) + TURBN%XIMPL*ZRES(:,:))
   !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 !
   CALL ADD2DFIELD_ll(TZFIELDDISS_ll, PCURRENT_TKE_DISS, 'TKE_EPS_SOURCES::PCURRENT_TKE_DISS' )
@@ -329,16 +329,16 @@ ENDIF
 ! CL : Now done at the end of the time step in ADVECTION_METSV for MesoNH
 IF(HPROGRAM/='MESONH') THEN
  !$mnh_expand_where(JIJ=IIJB:IIJE,JK=1:IKT)
- GTKENEG(IIJB:IIJE,1:IKT) =  ZRES(IIJB:IIJE,1:IKT) <= CSTURB%XTKEMIN
- WHERE ( GTKENEG(IIJB:IIJE,1:IKT) ) 
-   ZRES(IIJB:IIJE,1:IKT) = CSTURB%XTKEMIN
+ GTKENEG(:,:) =  ZRES(:,:) <= CSTURB%XTKEMIN
+ WHERE ( GTKENEG(:,:) ) 
+   ZRES(:,:) = CSTURB%XTKEMIN
  END WHERE
  !$mnh_end_expand_where(JIJ=IIJB:IIJE,JK=1:IKT)
 END IF
 !
 !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-PTDISS(IIJB:IIJE,1:IKT) = - ZFLX(IIJB:IIJE,1:IKT)*(PEXPL*PTKEM(IIJB:IIJE,1:IKT) &
-                                      + TURBN%XIMPL*ZRES(IIJB:IIJE,1:IKT))
+PTDISS(:,:) = - ZFLX(:,:)*(PEXPL*PTKEM(:,:) &
+                                      + TURBN%XIMPL*ZRES(:,:))
 !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 !
 IF ( TLES%LLES_CALL .OR.                         &
@@ -348,28 +348,28 @@ IF ( TLES%LLES_CALL .OR.                         &
 !
   CALL MZM_PHY(D,ZKEFF,ZMWORK1)
   !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-  ZDWORK1(IIJB:IIJE,1:IKT) = TURBN%XIMPL * ZRES(IIJB:IIJE,1:IKT) + PEXPL * PTKEM(IIJB:IIJE,1:IKT)
+  ZDWORK1(:,:) = TURBN%XIMPL * ZRES(:,:) + PEXPL * PTKEM(:,:)
   !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
   CALL DZM_PHY(D,ZDWORK1,ZDWORK2)
   !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-  ZFLX(IIJB:IIJE,1:IKT)  = - CSTURB%XCET * ZMWORK1(IIJB:IIJE,1:IKT) &
-                                     * ZDWORK2(IIJB:IIJE,1:IKT) / PDZZ(IIJB:IIJE,1:IKT)
+  ZFLX(:,:)  = - CSTURB%XCET * ZMWORK1(:,:) &
+                                     * ZDWORK2(:,:) / PDZZ(:,:)
   !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 !
-  ZFLX(IIJB:IIJE,IKB) = 0.
-  ZFLX(IIJB:IIJE,IKA) = 0.
+  ZFLX(:,IKB) = 0.
+  ZFLX(:,IKA) = 0.
 !
 ! Compute the whole turbulent TRansport of TKE:
 !
   CALL MZM_PHY(D,PRHODJ,ZMWORK1)
   !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-  ZMWORK2(IIJB:IIJE,1:IKT) = ZMWORK1(IIJB:IIJE,1:IKT) * ZFLX(IIJB:IIJE,1:IKT) &
-                                       / PDZZ(IIJB:IIJE,1:IKT)
+  ZMWORK2(:,:) = ZMWORK1(:,:) * ZFLX(:,:) &
+                                       / PDZZ(:,:)
   !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
   CALL DZF_PHY(D,ZMWORK2,ZDWORK1)
   !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-  ZTR(IIJB:IIJE,1:IKT)= ZTR(IIJB:IIJE,1:IKT) - ZDWORK1(IIJB:IIJE,1:IKT) &
-                                  /PRHODJ(IIJB:IIJE,1:IKT)
+  ZTR(:,:)= ZTR(:,:) - ZDWORK1(:,:) &
+                                  /PRHODJ(:,:)
   !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 !
 ! Storage in the LES configuration
@@ -387,20 +387,20 @@ END IF
 IF (BUCONF%LBUDGET_TKE) THEN
   ! Dynamical production
   !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-  ZMWORK1(IIJB:IIJE,1:IKT) = PDP(IIJB:IIJE,1:IKT) * PRHODJ(IIJB:IIJE,1:IKT)
+  ZMWORK1(:,:) = PDP(:,:) * PRHODJ(:,:)
   !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
   CALL BUDGET_STORE_ADD_PHY(D, TBUDGETS(NBUDGET_TKE), 'DP', ZMWORK1)
   !
   ! Thermal production
   !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-  ZMWORK1(IIJB:IIJE,1:IKT) = PTP(IIJB:IIJE,1:IKT) * PRHODJ(IIJB:IIJE,1:IKT)
+  ZMWORK1(:,:) = PTP(:,:) * PRHODJ(:,:)
   !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
   CALL BUDGET_STORE_ADD_PHY(D, TBUDGETS(NBUDGET_TKE), 'TP', ZMWORK1)
   !
   ! Dissipation
   !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-  ZMWORK1(IIJB:IIJE,1:IKT) = -CSTURB%XCED * SQRT(PTKEM(IIJB:IIJE,1:IKT))/PLEPS(IIJB:IIJE,1:IKT) * &
-                (PEXPL*PTKEM(IIJB:IIJE,1:IKT) + TURBN%XIMPL*ZRES(IIJB:IIJE,1:IKT))*PRHODJ(IIJB:IIJE,1:IKT)
+  ZMWORK1(:,:) = -CSTURB%XCED * SQRT(PTKEM(:,:))/PLEPS(:,:) * &
+                (PEXPL*PTKEM(:,:) + TURBN%XIMPL*ZRES(:,:))*PRHODJ(:,:)
   !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT) 
   CALL BUDGET_STORE_ADD_PHY(D, TBUDGETS(NBUDGET_TKE), 'DISS',ZMWORK1)
 END IF 
@@ -412,28 +412,28 @@ END IF
 !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 #ifdef REPRO48
 IF (BUCONF%LBUDGET_TKE) THEN
-PRTKES(IIJB:IIJE,1:IKT) = PRTKES(IIJB:IIJE,1:IKT) + PDP(IIJB:IIJE,1:IKT) * PRHODJ(IIJB:IIJE,1:IKT)
-PRTKES(IIJB:IIJE,1:IKT) = PRTKES(IIJB:IIJE,1:IKT) + PTP(IIJB:IIJE,1:IKT) * PRHODJ(IIJB:IIJE,1:IKT)
-PRTKES(IIJB:IIJE,1:IKT) = PRTKES(IIJB:IIJE,1:IKT) - CSTURB%XCED * SQRT(PTKEM(IIJB:IIJE,1:IKT)) / PLEPS(IIJB:IIJE,1:IKT) * &
-                (PEXPL*PTKEM(IIJB:IIJE,1:IKT) + TURBN%XIMPL*ZRES(IIJB:IIJE,1:IKT)) * PRHODJ(IIJB:IIJE,1:IKT)
+PRTKES(:,:) = PRTKES(:,:) + PDP(:,:) * PRHODJ(:,:)
+PRTKES(:,:) = PRTKES(:,:) + PTP(:,:) * PRHODJ(:,:)
+PRTKES(:,:) = PRTKES(:,:) - CSTURB%XCED * SQRT(PTKEM(:,:)) / PLEPS(:,:) * &
+                (PEXPL*PTKEM(:,:) + TURBN%XIMPL*ZRES(:,:)) * PRHODJ(:,:)
 END IF
 #else
-PRTKES(IIJB:IIJE,1:IKT) = PRTKES(IIJB:IIJE,1:IKT) + PRHODJ(IIJB:IIJE,1:IKT) * &
-                ( PDP(IIJB:IIJE,1:IKT) + PTP(IIJB:IIJE,1:IKT)                           &
-                  - CSTURB%XCED * SQRT(PTKEM(IIJB:IIJE,1:IKT)) / PLEPS(IIJB:IIJE,1:IKT) &
-                  * ( PEXPL*PTKEM(IIJB:IIJE,1:IKT) + TURBN%XIMPL*ZRES(IIJB:IIJE,1:IKT) ) )
+PRTKES(:,:) = PRTKES(:,:) + PRHODJ(:,:) * &
+                ( PDP(:,:) + PTP(:,:)                           &
+                  - CSTURB%XCED * SQRT(PTKEM(:,:)) / PLEPS(:,:) &
+                  * ( PEXPL*PTKEM(:,:) + TURBN%XIMPL*ZRES(:,:) ) )
 #endif
 !
-PTDIFF(IIJB:IIJE,1:IKT) =  ZRES(IIJB:IIJE,1:IKT) / PTSTEP - PRTKES(IIJB:IIJE,1:IKT)&
-                                     /PRHODJ(IIJB:IIJE,1:IKT) &
-                           & - PDP(IIJB:IIJE,1:IKT)- PTP(IIJB:IIJE,1:IKT) - PTDISS(IIJB:IIJE,1:IKT)
+PTDIFF(:,:) =  ZRES(:,:) / PTSTEP - PRTKES(:,:)&
+                                     /PRHODJ(:,:) &
+                           & - PDP(:,:)- PTP(:,:) - PTDISS(:,:)
 !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 !
 IF (BUCONF%LBUDGET_TKE) CALL BUDGET_STORE_INIT_PHY(D, TBUDGETS(NBUDGET_TKE), 'TR', PRTKES)
 !
 !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-PRTKES(IIJB:IIJE,1:IKT) = ZRES(IIJB:IIJE,1:IKT) * PRHODJ(IIJB:IIJE,1:IKT) / PTSTEP &
-                                    -  PRTKEMS(IIJB:IIJE,1:IKT)
+PRTKES(:,:) = ZRES(:,:) * PRHODJ(:,:) / PTSTEP &
+                                    -  PRTKEMS(:,:)
 !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 !
 ! stores the whole turbulent transport
@@ -446,10 +446,10 @@ IF (BUCONF%LBUDGET_TKE) CALL BUDGET_STORE_END_PHY(D, TBUDGETS(NBUDGET_TKE), 'TR'
 !             -------------------------------
 !
 !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-PRTHLS(IIJB:IIJE,1:IKT) = PRTHLS(IIJB:IIJE,1:IKT) + &
-                                    CSTURB%XCED * SQRT(PTKEM(IIJB:IIJE,1:IKT)) / PLEPS(IIJB:IIJE,1:IKT) * &
-                (PEXPL*PTKEM(IIJB:IIJE,1:IKT) + TURBN%XIMPL*ZRES(IIJB:IIJE,1:IKT)) &
-                * PRHODJ(IIJB:IIJE,1:IKT) * PCOEF_DISS(IIJB:IIJE,1:IKT)
+PRTHLS(:,:) = PRTHLS(:,:) + &
+                                    CSTURB%XCED * SQRT(PTKEM(:,:)) / PLEPS(:,:) * &
+                (PEXPL*PTKEM(:,:) + TURBN%XIMPL*ZRES(:,:)) &
+                * PRHODJ(:,:) * PCOEF_DISS(:,:)
 !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 !----------------------------------------------------------------------------
 !
@@ -459,13 +459,13 @@ PRTHLS(IIJB:IIJE,1:IKT) = PRTHLS(IIJB:IIJE,1:IKT) + &
 IF(PRESENT(PTR)) PTR=ZTR
 IF(PRESENT(PDISS)) THEN
   !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-  PDISS(IIJB:IIJE,1:IKT) =  -CSTURB%XCED * (PTKEM(IIJB:IIJE,1:IKT)**1.5) / PLEPS(IIJB:IIJE,1:IKT)
+  PDISS(:,:) =  -CSTURB%XCED * (PTKEM(:,:)**1.5) / PLEPS(:,:)
   !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 END IF
 !
 IF(PRESENT(PEDR)) THEN
   !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-  PEDR(IIJB:IIJE,1:IKT) = CSTURB%XCED * (PTKEM(IIJB:IIJE,1:IKT)**1.5) / PLEPS(IIJB:IIJE,1:IKT)
+  PEDR(:,:) = CSTURB%XCED * (PTKEM(:,:)**1.5) / PLEPS(:,:)
   !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 END IF
 !
diff --git a/src/PHYEX/turb/mode_tm06.f90 b/src/PHYEX/turb/mode_tm06.f90
index d5f9ea2de34a14418c499634b7f78224ac6be80d..1da05315c07f0d7ee905b59894d3368f51ff5b5c 100644
--- a/src/PHYEX/turb/mode_tm06.f90
+++ b/src/PHYEX/turb/mode_tm06.f90
@@ -92,12 +92,12 @@ IKU=D%NKU
 !* w* and T*
 !
 !$mnh_expand_where(JIJ=IIJB:IIJE)
-WHERE(PSFTH(IIJB:IIJE)>0.)
-  ZWSTAR(IIJB:IIJE) = ((CST%XG/PTHVREF(IIJB:IIJE,IKB))*PSFTH(IIJB:IIJE)*PBL_DEPTH(IIJB:IIJE))**(1./3.)
-  ZTSTAR(IIJB:IIJE) = PSFTH(IIJB:IIJE) / ZWSTAR(IIJB:IIJE)
+WHERE(PSFTH(:)>0.)
+  ZWSTAR(:) = ((CST%XG/PTHVREF(:,IKB))*PSFTH(:)*PBL_DEPTH(:))**(1./3.)
+  ZTSTAR(:) = PSFTH(:) / ZWSTAR(:)
 ELSEWHERE
-  ZWSTAR(IIJB:IIJE) = 0.
-  ZTSTAR(IIJB:IIJE) = 0.
+  ZWSTAR(:) = 0.
+  ZTSTAR(:) = 0.
 END WHERE
 !$mnh_end_expand_where(JIJ=IIJB:IIJE)
 !
@@ -105,53 +105,53 @@ END WHERE
 !* normalized height
 !
 !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-ZZ_O_H(IIJB:IIJE,1:IKT) = XUNDEF
+ZZ_O_H(:,:) = XUNDEF
 !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 DO JK=1,IKT
   !$mnh_expand_where(JIJ=IIJB:IIJE)
-  WHERE (PBL_DEPTH(IIJB:IIJE)/=XUNDEF)
-    ZZ_O_H(IIJB:IIJE,JK) = (PZZ(IIJB:IIJE,JK)-PZZ(IIJB:IIJE,IKB)) / PBL_DEPTH(IIJB:IIJE)
+  WHERE (PBL_DEPTH(:)/=XUNDEF)
+    ZZ_O_H(:,JK) = (PZZ(:,JK)-PZZ(:,IKB)) / PBL_DEPTH(:)
   END WHERE
   !$mnh_end_expand_where(JIJ=IIJB:IIJE)
 END DO
 !
 !* w'th'2
 !
-PMTH2(IIJB:IIJE,1:IKT) = 0.
+PMTH2(:,:) = 0.
 !$mnh_expand_where(JIJ=IIJB:IIJE,JK=1:IKT)
-WHERE(ZZ_O_H(IIJB:IIJE,1:IKT) < 0.95 .AND. ZZ_O_H(IIJB:IIJE,1:IKT)/=XUNDEF)
-  PMTH2(IIJB:IIJE,1:IKT) = 4.*(MAX(ZZ_O_H(IIJB:IIJE,1:IKT),0.))**0.4*(ZZ_O_H(IIJB:IIJE,1:IKT)-0.95)**2
+WHERE(ZZ_O_H(:,:) < 0.95 .AND. ZZ_O_H(:,:)/=XUNDEF)
+  PMTH2(:,:) = 4.*(MAX(ZZ_O_H(:,:),0.))**0.4*(ZZ_O_H(:,:)-0.95)**2
 END WHERE
 !$mnh_end_expand_where(JIJ=IIJB:IIJE,JK=1:IKT)
 DO JK=IKTB+1,IKTE-1
   !$mnh_expand_array(JIJ=IIJB:IIJE)
-  PMTH2(IIJB:IIJE,JK) = PMTH2(IIJB:IIJE,JK) * ZTSTAR(IIJB:IIJE)**2*ZWSTAR(IIJB:IIJE)
+  PMTH2(:,JK) = PMTH2(:,JK) * ZTSTAR(:)**2*ZWSTAR(:)
   !$mnh_end_expand_array(JIJ=IIJB:IIJE)
 END DO
 !$mnh_expand_array(JIJ=IIJB:IIJE)
-PMTH2(IIJB:IIJE,IKE)=PMTH2(IIJB:IIJE,IKE) * ZTSTAR(IIJB:IIJE)**2*ZWSTAR(IIJB:IIJE)
-PMTH2(IIJB:IIJE,IKU)=PMTH2(IIJB:IIJE,IKU) * ZTSTAR(IIJB:IIJE)**2*ZWSTAR(IIJB:IIJE)
+PMTH2(:,IKE)=PMTH2(:,IKE) * ZTSTAR(:)**2*ZWSTAR(:)
+PMTH2(:,IKU)=PMTH2(:,IKU) * ZTSTAR(:)**2*ZWSTAR(:)
 !$mnh_end_expand_array(JIJ=IIJB:IIJE)
 !
 !
 !* w'2th'
 !
-PMWTH(IIJB:IIJE,1:IKT) = 0.
+PMWTH(:,:) = 0.
 !$mnh_expand_where(JIJ=IIJB:IIJE,JK=1:IKT)
-WHERE(ZZ_O_H(IIJB:IIJE,1:IKT) <0.9 .AND. ZZ_O_H(IIJB:IIJE,1:IKT)/=XUNDEF)
-  PMWTH(IIJB:IIJE,1:IKT) = MAX(-7.9*(ABS(ZZ_O_H(IIJB:IIJE,1:IKT)-0.35))**2.9 &
-                           * (ABS(ZZ_O_H(IIJB:IIJE,1:IKT)-1.))**0.58 + 0.37, 0.)
+WHERE(ZZ_O_H(:,:) <0.9 .AND. ZZ_O_H(:,:)/=XUNDEF)
+  PMWTH(:,:) = MAX(-7.9*(ABS(ZZ_O_H(:,:)-0.35))**2.9 &
+                           * (ABS(ZZ_O_H(:,:)-1.))**0.58 + 0.37, 0.)
 END WHERE
 !$mnh_end_expand_where(JIJ=IIJB:IIJE,JK=1:IKT)
 
 DO JK=IKTB+1,IKTE-1
   !$mnh_expand_array(JIJ=IIJB:IIJE)
-  PMWTH(IIJB:IIJE,JK) = PMWTH(IIJB:IIJE,JK) * ZWSTAR(IIJB:IIJE)**2*ZTSTAR(IIJB:IIJE)
+  PMWTH(:,JK) = PMWTH(:,JK) * ZWSTAR(:)**2*ZTSTAR(:)
   !$mnh_end_expand_array(JIJ=IIJB:IIJE)
 END DO
 !$mnh_expand_array(JIJ=IIJB:IIJE)
-PMWTH(IIJB:IIJE,IKE) = PMWTH(IIJB:IIJE,IKE) * ZWSTAR(IIJB:IIJE)**2*ZTSTAR(IIJB:IIJE)
-PMWTH(IIJB:IIJE,IKU) = PMWTH(IIJB:IIJE,IKU) * ZWSTAR(IIJB:IIJE)**2*ZTSTAR(IIJB:IIJE)
+PMWTH(:,IKE) = PMWTH(:,IKE) * ZWSTAR(:)**2*ZTSTAR(:)
+PMWTH(:,IKU) = PMWTH(:,IKU) * ZWSTAR(:)**2*ZTSTAR(:)
 !$mnh_end_expand_array(JIJ=IIJB:IIJE)
 !
 !----------------------------------------------------------------------------
diff --git a/src/PHYEX/turb/mode_tm06_h.f90 b/src/PHYEX/turb/mode_tm06_h.f90
index 02af4cf442f27a9bb99da0945c6e337af767200c..f250ee3af27b1ba1e0b048caed4a3df84b93b495 100644
--- a/src/PHYEX/turb/mode_tm06_h.f90
+++ b/src/PHYEX/turb/mode_tm06_h.f90
@@ -86,31 +86,31 @@ IIJE=D%NIJE
 IIJB=D%NIJB
 
 !
-ZBL_DEPTH(IIJB:IIJE) = PBL_DEPTH(IIJB:IIJE)
+ZBL_DEPTH(:) = PBL_DEPTH(:)
 !
 !$mnh_expand_where(JIJ=IIJB:IIJE)
-WHERE(ZBL_DEPTH(IIJB:IIJE)==XUNDEF)
-  ZBL_DEPTH(IIJB:IIJE)=0.
+WHERE(ZBL_DEPTH(:)==XUNDEF)
+  ZBL_DEPTH(:)=0.
 END WHERE
 !$mnh_end_expand_where(JIJ=IIJB:IIJE)
 !
 !$mnh_expand_array(JIJ=IIJB:IIJE)
-PBL_DEPTH(IIJB:IIJE) = XUNDEF
-ZFLXZMIN(IIJB:IIJE) = PFLXZ(IIJB:IIJE,IKB)
+PBL_DEPTH(:) = XUNDEF
+ZFLXZMIN(:) = PFLXZ(:,IKB)
 !$mnh_end_expand_array(JIJ=IIJB:IIJE)
 !
 DO JK=IKTB,IKTE
 !$mnh_expand_where(JIJ=IIJB:IIJE)
-  WHERE(PFLXZ(IIJB:IIJE,IKB)>0. .AND. PFLXZ(IIJB:IIJE,JK)<ZFLXZMIN(IIJB:IIJE))
-    PBL_DEPTH(IIJB:IIJE) = PZZ(IIJB:IIJE,JK) - PZZ(IIJB:IIJE,IKB)
-    ZFLXZMIN(IIJB:IIJE) = PFLXZ(IIJB:IIJE,JK)
+  WHERE(PFLXZ(:,IKB)>0. .AND. PFLXZ(:,JK)<ZFLXZMIN(:))
+    PBL_DEPTH(:) = PZZ(:,JK) - PZZ(:,IKB)
+    ZFLXZMIN(:) = PFLXZ(:,JK)
   END WHERE
 !$mnh_end_expand_where(JIJ=IIJB:IIJE)
 END DO
 !
 !$mnh_expand_where(JIJ=IIJB:IIJE)
-WHERE(PBL_DEPTH(IIJB:IIJE)/=XUNDEF) 
-  PBL_DEPTH(IIJB:IIJE)=MIN(PBL_DEPTH(IIJB:IIJE),ZBL_DEPTH(IIJB:IIJE)+ZGROWTH*PTSTEP)
+WHERE(PBL_DEPTH(:)/=XUNDEF) 
+  PBL_DEPTH(:)=MIN(PBL_DEPTH(:),ZBL_DEPTH(:)+ZGROWTH*PTSTEP)
 END WHERE
 !$mnh_end_expand_where(JIJ=IIJB:IIJE)
 !
diff --git a/src/PHYEX/turb/mode_tridiag.f90 b/src/PHYEX/turb/mode_tridiag.f90
index 6c15c7dc20122a834aa5487c98a185bacdaa1bcd..6b6b6bfae0c4fa504bfa7d64913db5332775d6de 100644
--- a/src/PHYEX/turb/mode_tridiag.f90
+++ b/src/PHYEX/turb/mode_tridiag.f90
@@ -165,25 +165,25 @@ IIJB=D%NIJB
 IIJE=D%NIJE
 !
 !$mnh_expand_array(JIJ=IIJB:IIJE)
-ZY(IIJB:IIJE,IKB) = PVARM(IIJB:IIJE,IKB)  + PTSTEP*PSOURCE(IIJB:IIJE,IKB) -   &
-  PEXPL / PRHODJ(IIJB:IIJE,IKB) * PA(IIJB:IIJE,IKB+IKL) * &
-  (PVARM(IIJB:IIJE,IKB+IKL) - PVARM(IIJB:IIJE,IKB))
+ZY(:,IKB) = PVARM(:,IKB)  + PTSTEP*PSOURCE(:,IKB) -   &
+  PEXPL / PRHODJ(:,IKB) * PA(:,IKB+IKL) * &
+  (PVARM(:,IKB+IKL) - PVARM(:,IKB))
 !$mnh_end_expand_array(JIJ=IIJB:IIJE)
 !
 DO JK=IKTB+1,IKTE-1
   !$mnh_expand_array(JIJ=IIJB:IIJE)
-  ZY(IIJB:IIJE,JK)= PVARM(IIJB:IIJE,JK)  + PTSTEP*PSOURCE(IIJB:IIJE,JK) -               &
-      PEXPL / PRHODJ(IIJB:IIJE,JK) *                                           &
-                             ( PVARM(IIJB:IIJE,JK-IKL)*PA(IIJB:IIJE,JK)                &
-                              -PVARM(IIJB:IIJE,JK)*(PA(IIJB:IIJE,JK)+PA(IIJB:IIJE,JK+IKL))   &
-                              +PVARM(IIJB:IIJE,JK+IKL)*PA(IIJB:IIJE,JK+IKL)              &
+  ZY(:,JK)= PVARM(:,JK)  + PTSTEP*PSOURCE(:,JK) -               &
+      PEXPL / PRHODJ(:,JK) *                                           &
+                             ( PVARM(:,JK-IKL)*PA(:,JK)                &
+                              -PVARM(:,JK)*(PA(:,JK)+PA(:,JK+IKL))   &
+                              +PVARM(:,JK+IKL)*PA(:,JK+IKL)              &
                              ) 
   !$mnh_end_expand_array(JIJ=IIJB:IIJE)
 END DO
 ! 
 !$mnh_expand_array(JIJ=IIJB:IIJE)
-ZY(IIJB:IIJE,IKE)= PVARM(IIJB:IIJE,IKE) + PTSTEP*PSOURCE(IIJB:IIJE,IKE) +               &
-  PEXPL / PRHODJ(IIJB:IIJE,IKE) * PA(IIJB:IIJE,IKE) * (PVARM(IIJB:IIJE,IKE)-PVARM(IIJB:IIJE,IKE-IKL))
+ZY(:,IKE)= PVARM(:,IKE) + PTSTEP*PSOURCE(:,IKE) +               &
+  PEXPL / PRHODJ(:,IKE) * PA(:,IKE) * (PVARM(:,IKE)-PVARM(:,IKE-IKL))
 !$mnh_end_expand_array(JIJ=IIJB:IIJE)
 !
 !
@@ -196,34 +196,34 @@ IF ( PIMPL > 1.E-10 ) THEN
   !  going up
   !
   !$mnh_expand_array(JIJ=IIJB:IIJE)
-  ZBET(IIJB:IIJE) = 1. - PIMPL * PA(IIJB:IIJE,IKB+IKL) / PRHODJ(IIJB:IIJE,IKB)  ! bet = b(ikb)
-  PVARP(IIJB:IIJE,IKB) = ZY(IIJB:IIJE,IKB) / ZBET(IIJB:IIJE)
+  ZBET(:) = 1. - PIMPL * PA(:,IKB+IKL) / PRHODJ(:,IKB)  ! bet = b(ikb)
+  PVARP(:,IKB) = ZY(:,IKB) / ZBET(:)
   !$mnh_end_expand_array(JIJ=IIJB:IIJE)               
   !
   DO JK = IKB+IKL,IKE-IKL,IKL
     !$mnh_expand_array(JIJ=IIJB:IIJE)
-    ZGAM(IIJB:IIJE,JK) = PIMPL * PA(IIJB:IIJE,JK) / PRHODJ(IIJB:IIJE,JK-IKL) / ZBET(IIJB:IIJE)  
+    ZGAM(:,JK) = PIMPL * PA(:,JK) / PRHODJ(:,JK-IKL) / ZBET(:)  
                                                     ! gam(k) = c(k-1) / bet
-    ZBET(IIJB:IIJE)    = 1. - PIMPL * (  PA(IIJB:IIJE,JK) * (1. + ZGAM(IIJB:IIJE,JK))  &
-                                 + PA(IIJB:IIJE,JK+IKL)                      &
-                                ) / PRHODJ(IIJB:IIJE,JK)  
+    ZBET(:)    = 1. - PIMPL * (  PA(:,JK) * (1. + ZGAM(:,JK))  &
+                                 + PA(:,JK+IKL)                      &
+                                ) / PRHODJ(:,JK)  
                                                     ! bet = b(k) - a(k)* gam(k)  
-    PVARP(IIJB:IIJE,JK)= ( ZY(IIJB:IIJE,JK) - PIMPL * PA(IIJB:IIJE,JK) / PRHODJ(IIJB:IIJE,JK) &
-                    * PVARP(IIJB:IIJE,JK-IKL)                                 &
-                   ) / ZBET(IIJB:IIJE)
+    PVARP(:,JK)= ( ZY(:,JK) - PIMPL * PA(:,JK) / PRHODJ(:,JK) &
+                    * PVARP(:,JK-IKL)                                 &
+                   ) / ZBET(:)
                                         ! res(k) = (y(k) -a(k)*res(k-1))/ bet 
     !$mnh_end_expand_array(JIJ=IIJB:IIJE)
   END DO
   !$mnh_expand_array(JIJ=IIJB:IIJE)
   ! special treatment for the last level
-  ZGAM(IIJB:IIJE,IKE) = PIMPL * PA(IIJB:IIJE,IKE) / PRHODJ(IIJB:IIJE,IKE-IKL) / ZBET(IIJB:IIJE) 
+  ZGAM(:,IKE) = PIMPL * PA(:,IKE) / PRHODJ(:,IKE-IKL) / ZBET(:) 
                                                     ! gam(k) = c(k-1) / bet
-  ZBET(IIJB:IIJE)    = 1. - PIMPL * (  PA(IIJB:IIJE,IKE) * (1. + ZGAM(IIJB:IIJE,IKE))  &
-                              ) / PRHODJ(IIJB:IIJE,IKE)  
+  ZBET(:)    = 1. - PIMPL * (  PA(:,IKE) * (1. + ZGAM(:,IKE))  &
+                              ) / PRHODJ(:,IKE)  
                                                     ! bet = b(k) - a(k)* gam(k)  
-  PVARP(IIJB:IIJE,IKE)= ( ZY(IIJB:IIJE,IKE) - PIMPL * PA(IIJB:IIJE,IKE) / PRHODJ(IIJB:IIJE,IKE) &
-                                * PVARP(IIJB:IIJE,IKE-IKL)                      &
-                 ) / ZBET(IIJB:IIJE)
+  PVARP(:,IKE)= ( ZY(:,IKE) - PIMPL * PA(:,IKE) / PRHODJ(:,IKE) &
+                                * PVARP(:,IKE-IKL)                      &
+                 ) / ZBET(:)
                                        ! res(k) = (y(k) -a(k)*res(k-1))/ bet 
   !
   !  going down
@@ -231,7 +231,7 @@ IF ( PIMPL > 1.E-10 ) THEN
   !$mnh_end_expand_array(JIJ=IIJB:IIJE)
   DO JK = IKE-IKL,IKB,-1*IKL
   !$mnh_expand_array(JIJ=IIJB:IIJE)
-    PVARP(IIJB:IIJE,JK) = PVARP(IIJB:IIJE,JK) - ZGAM(IIJB:IIJE,JK+IKL) * PVARP(IIJB:IIJE,JK+IKL) 
+    PVARP(:,JK) = PVARP(:,JK) - ZGAM(:,JK+IKL) * PVARP(:,JK+IKL) 
   !$mnh_end_expand_array(JIJ=IIJB:IIJE)
   END DO
 !
@@ -239,7 +239,7 @@ ELSE
 ! 
   DO JK=IKTB,IKTE
     !$mnh_expand_array(JIJ=IIJB:IIJE)
-    PVARP(IIJB:IIJE,JK) = ZY(IIJB:IIJE,JK)
+    PVARP(:,JK) = ZY(:,JK)
     !$mnh_end_expand_array(JIJ=IIJB:IIJE)
   END DO
 !
@@ -250,8 +250,8 @@ END IF
 !            ----------------------------------------
 !
 !$mnh_expand_array(JIJ=IIJB:IIJE)
-PVARP(IIJB:IIJE,IKA)=PVARP(IIJB:IIJE,IKB)
-PVARP(IIJB:IIJE,IKU)=PVARP(IIJB:IIJE,IKE)
+PVARP(:,IKA)=PVARP(:,IKB)
+PVARP(:,IKU)=PVARP(:,IKE)
 !$mnh_end_expand_array(JIJ=IIJB:IIJE)
 !
 !-------------------------------------------------------------------------------
diff --git a/src/PHYEX/turb/mode_tridiag_massflux.f90 b/src/PHYEX/turb/mode_tridiag_massflux.f90
index e58c9a3d0c258c888f280eeef7b14f65b797e634..871eaa033524cb38cba360ca18c4c649cf5b0fc1 100644
--- a/src/PHYEX/turb/mode_tridiag_massflux.f90
+++ b/src/PHYEX/turb/mode_tridiag_massflux.f90
@@ -178,7 +178,7 @@ IKTE=D%NKTE
 !
 CALL MZM_MF(D, PRHODJ, ZMZM_RHODJ)
 !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-ZRHODJ_DFDT_O_DZ(IIJB:IIJE,1:IKT) = ZMZM_RHODJ(IIJB:IIJE,1:IKT)*PDFDT(IIJB:IIJE,1:IKT)/PDZZ(IIJB:IIJE,1:IKT)
+ZRHODJ_DFDT_O_DZ(:,:) = ZMZM_RHODJ(:,:)*PDFDT(:,:)/PDZZ(:,:)
 !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 !
 ZA=0.
@@ -191,36 +191,36 @@ ZY=0.
 !           ---------------------------
 !
 !$mnh_expand_array(JIJ=IIJB:IIJE)
-ZY(IIJB:IIJE,IKB) = PRHODJ(IIJB:IIJE,IKB)*PVARM(IIJB:IIJE,IKB)/PTSTEP             &
-    - ZMZM_RHODJ(IIJB:IIJE,IKB+IKL) * PF(IIJB:IIJE,IKB+IKL)/PDZZ(IIJB:IIJE,IKB+IKL)     &
-    + ZMZM_RHODJ(IIJB:IIJE,IKB  ) * PF(IIJB:IIJE,IKB  )/PDZZ(IIJB:IIJE,IKB  )     &
-    + ZRHODJ_DFDT_O_DZ(IIJB:IIJE,IKB+IKL) * 0.5*PIMPL * PVARM(IIJB:IIJE,IKB+IKL)    &
-    + ZRHODJ_DFDT_O_DZ(IIJB:IIJE,IKB+IKL) * 0.5*PIMPL * PVARM(IIJB:IIJE,IKB  )
+ZY(:,IKB) = PRHODJ(:,IKB)*PVARM(:,IKB)/PTSTEP             &
+    - ZMZM_RHODJ(:,IKB+IKL) * PF(:,IKB+IKL)/PDZZ(:,IKB+IKL)     &
+    + ZMZM_RHODJ(:,IKB  ) * PF(:,IKB  )/PDZZ(:,IKB  )     &
+    + ZRHODJ_DFDT_O_DZ(:,IKB+IKL) * 0.5*PIMPL * PVARM(:,IKB+IKL)    &
+    + ZRHODJ_DFDT_O_DZ(:,IKB+IKL) * 0.5*PIMPL * PVARM(:,IKB  )
 !$mnh_end_expand_array(JIJ=IIJB:IIJE)
 !
 DO JK=1+IKTB,IKTE-1
   !$mnh_expand_array(JIJ=IIJB:IIJE)
-  ZY(IIJB:IIJE,JK) = PRHODJ(IIJB:IIJE,JK)*PVARM(IIJB:IIJE,JK)/PTSTEP          &
-    - ZMZM_RHODJ(IIJB:IIJE,JK+IKL) * PF(IIJB:IIJE,JK+IKL)/PDZZ(IIJB:IIJE,JK+IKL)    &
-    + ZMZM_RHODJ(IIJB:IIJE,JK  ) * PF(IIJB:IIJE,JK  )/PDZZ(IIJB:IIJE,JK  )    &
-    + ZRHODJ_DFDT_O_DZ(IIJB:IIJE,JK+IKL) * 0.5*PIMPL * PVARM(IIJB:IIJE,JK+IKL)  &
-    + ZRHODJ_DFDT_O_DZ(IIJB:IIJE,JK+IKL) * 0.5*PIMPL * PVARM(IIJB:IIJE,JK  )  &
-    - ZRHODJ_DFDT_O_DZ(IIJB:IIJE,JK  ) * 0.5*PIMPL * PVARM(IIJB:IIJE,JK  )  &
-    - ZRHODJ_DFDT_O_DZ(IIJB:IIJE,JK  ) * 0.5*PIMPL * PVARM(IIJB:IIJE,JK-IKL)
+  ZY(:,JK) = PRHODJ(:,JK)*PVARM(:,JK)/PTSTEP          &
+    - ZMZM_RHODJ(:,JK+IKL) * PF(:,JK+IKL)/PDZZ(:,JK+IKL)    &
+    + ZMZM_RHODJ(:,JK  ) * PF(:,JK  )/PDZZ(:,JK  )    &
+    + ZRHODJ_DFDT_O_DZ(:,JK+IKL) * 0.5*PIMPL * PVARM(:,JK+IKL)  &
+    + ZRHODJ_DFDT_O_DZ(:,JK+IKL) * 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-IKL)
   !$mnh_end_expand_array(JIJ=IIJB:IIJE)
 END DO
 ! 
 IF (IKE==IKU) THEN
   !$mnh_expand_array(JIJ=IIJB:IIJE)
-  ZY(IIJB:IIJE,IKE) = PRHODJ(IIJB:IIJE,IKE)*PVARM(IIJB:IIJE,IKE)/PTSTEP
+  ZY(:,IKE) = PRHODJ(:,IKE)*PVARM(:,IKE)/PTSTEP
   !$mnh_end_expand_array(JIJ=IIJB:IIJE)
 ELSE
   !$mnh_expand_array(JIJ=IIJB:IIJE)
-  ZY(IIJB:IIJE,IKE) = PRHODJ(IIJB:IIJE,IKE)*PVARM(IIJB:IIJE,IKE)/PTSTEP &
-   - ZMZM_RHODJ(IIJB:IIJE,IKE+IKL) * PF(IIJB:IIJE,IKE+IKL)/PDZZ(IIJB:IIJE,IKE+IKL) &
-   + ZMZM_RHODJ(IIJB:IIJE,IKE  ) * PF(IIJB:IIJE,IKE  )/PDZZ(IIJB:IIJE,IKE  ) &
-   - ZRHODJ_DFDT_O_DZ(IIJB:IIJE,IKE ) * 0.5*PIMPL * PVARM(IIJB:IIJE,IKE  ) &
-   - ZRHODJ_DFDT_O_DZ(IIJB:IIJE,IKE ) * 0.5*PIMPL * PVARM(IIJB:IIJE,IKE-IKL)
+  ZY(:,IKE) = PRHODJ(:,IKE)*PVARM(:,IKE)/PTSTEP &
+   - ZMZM_RHODJ(:,IKE+IKL) * PF(:,IKE+IKL)/PDZZ(:,IKE+IKL) &
+   + ZMZM_RHODJ(:,IKE  ) * PF(:,IKE  )/PDZZ(:,IKE  ) &
+   - ZRHODJ_DFDT_O_DZ(:,IKE ) * 0.5*PIMPL * PVARM(:,IKE  ) &
+   - ZRHODJ_DFDT_O_DZ(:,IKE ) * 0.5*PIMPL * PVARM(:,IKE-IKL)
   !$mnh_end_expand_array(JIJ=IIJB:IIJE)
 ENDIF
 !
@@ -234,53 +234,53 @@ IF ( PIMPL > 1.E-10 ) THEN
 !            --------------
 !
   !$mnh_expand_array(JIJ=IIJB:IIJE)
-  ZB(IIJB:IIJE,IKB) =   PRHODJ(IIJB:IIJE,IKB)/PTSTEP                   &
-                + ZRHODJ_DFDT_O_DZ(IIJB:IIJE,IKB+IKL) * 0.5*PIMPL
-  ZC(IIJB:IIJE,IKB) =   ZRHODJ_DFDT_O_DZ(IIJB:IIJE,IKB+IKL) * 0.5*PIMPL
+  ZB(:,IKB) =   PRHODJ(:,IKB)/PTSTEP                   &
+                + ZRHODJ_DFDT_O_DZ(:,IKB+IKL) * 0.5*PIMPL
+  ZC(:,IKB) =   ZRHODJ_DFDT_O_DZ(:,IKB+IKL) * 0.5*PIMPL
   !$mnh_end_expand_array(JIJ=IIJB:IIJE)
 
   DO JK=1+IKTB,IKTE-1
     !$mnh_expand_array(JIJ=IIJB:IIJE)
-    ZA(IIJB:IIJE,JK) = - ZRHODJ_DFDT_O_DZ(IIJB:IIJE,JK  ) * 0.5*PIMPL
-    ZB(IIJB:IIJE,JK) =   PRHODJ(IIJB:IIJE,JK)/PTSTEP                   &
-                 + ZRHODJ_DFDT_O_DZ(IIJB:IIJE,JK+IKL) * 0.5*PIMPL &
-                 - ZRHODJ_DFDT_O_DZ(IIJB:IIJE,JK  ) * 0.5*PIMPL
-    ZC(IIJB:IIJE,JK) =   ZRHODJ_DFDT_O_DZ(IIJB:IIJE,JK+IKL) * 0.5*PIMPL
+    ZA(:,JK) = - ZRHODJ_DFDT_O_DZ(:,JK  ) * 0.5*PIMPL
+    ZB(:,JK) =   PRHODJ(:,JK)/PTSTEP                   &
+                 + ZRHODJ_DFDT_O_DZ(:,JK+IKL) * 0.5*PIMPL &
+                 - ZRHODJ_DFDT_O_DZ(:,JK  ) * 0.5*PIMPL
+    ZC(:,JK) =   ZRHODJ_DFDT_O_DZ(:,JK+IKL) * 0.5*PIMPL
     !$mnh_end_expand_array(JIJ=IIJB:IIJE)
   END DO
   !$mnh_expand_array(JIJ=IIJB:IIJE)
-  ZA(IIJB:IIJE,IKE) = - ZRHODJ_DFDT_O_DZ(IIJB:IIJE,IKE  ) * 0.5*PIMPL
-  ZB(IIJB:IIJE,IKE) =   PRHODJ(IIJB:IIJE,IKE)/PTSTEP                   &
-                - ZRHODJ_DFDT_O_DZ(IIJB:IIJE,IKE  ) * 0.5*PIMPL
+  ZA(:,IKE) = - ZRHODJ_DFDT_O_DZ(:,IKE  ) * 0.5*PIMPL
+  ZB(:,IKE) =   PRHODJ(:,IKE)/PTSTEP                   &
+                - ZRHODJ_DFDT_O_DZ(:,IKE  ) * 0.5*PIMPL
   !$mnh_end_expand_array(JIJ=IIJB:IIJE)
 !
 !*       3.2 going up
 !            --------
 !
   !$mnh_expand_array(JIJ=IIJB:IIJE)
-  ZBET(IIJB:IIJE) = ZB(IIJB:IIJE,IKB)  ! bet = b(IKB)
-  PVARP(IIJB:IIJE,IKB) = ZY(IIJB:IIJE,IKB) / ZBET(IIJB:IIJE)
+  ZBET(:) = ZB(:,IKB)  ! bet = b(IKB)
+  PVARP(:,IKB) = ZY(:,IKB) / ZBET(:)
   !$mnh_end_expand_array(JIJ=IIJB:IIJE)
 
   !
   DO JK = IKB+IKL,IKE-IKL,IKL
     !$mnh_expand_array(JIJ=IIJB:IIJE)
-    ZGAM(IIJB:IIJE,JK) = ZC(IIJB:IIJE,JK-IKL) / ZBET(IIJB:IIJE)
+    ZGAM(:,JK) = ZC(:,JK-IKL) / ZBET(:)
                                                     ! gam(k) = c(k-1) / bet
-    ZBET(IIJB:IIJE)    = ZB(IIJB:IIJE,JK) - ZA(IIJB:IIJE,JK) * ZGAM(IIJB:IIJE,JK)
+    ZBET(:)    = ZB(:,JK) - ZA(:,JK) * ZGAM(:,JK)
                                                     ! bet = b(k) - a(k)* gam(k)  
-    PVARP(IIJB:IIJE,JK)= ( ZY(IIJB:IIJE,JK) - ZA(IIJB:IIJE,JK) * PVARP(IIJB:IIJE,JK-IKL) ) / ZBET(IIJB:IIJE)
+    PVARP(:,JK)= ( ZY(:,JK) - ZA(:,JK) * PVARP(:,JK-IKL) ) / ZBET(:)
                                         ! res(k) = (y(k) -a(k)*res(k-1))/ bet 
     !$mnh_end_expand_array(JIJ=IIJB:IIJE)
   END DO 
   !$mnh_expand_array(JIJ=IIJB:IIJE)
   ! special treatment for the last level
-  ZGAM(IIJB:IIJE,IKE) = ZC(IIJB:IIJE,IKE-IKL) / ZBET(IIJB:IIJE)
+  ZGAM(:,IKE) = ZC(:,IKE-IKL) / ZBET(:)
                                                     ! gam(k) = c(k-1) / bet
-  ZBET(IIJB:IIJE)     = ZB(IIJB:IIJE,IKE) - ZA(IIJB:IIJE,IKE) * ZGAM(IIJB:IIJE,IKE)
+  ZBET(:)     = ZB(:,IKE) - ZA(:,IKE) * ZGAM(:,IKE)
                                                     ! bet = b(k) - a(k)* gam(k)  
-  PVARP(IIJB:IIJE,IKE)= ( ZY(IIJB:IIJE,IKE) - ZA(IIJB:IIJE,IKE) * PVARP(IIJB:IIJE,IKE-IKL) ) / &
-                              &ZBET(IIJB:IIJE)
+  PVARP(:,IKE)= ( ZY(:,IKE) - ZA(:,IKE) * PVARP(:,IKE-IKL) ) / &
+                              &ZBET(:)
                                        ! res(k) = (y(k) -a(k)*res(k-1))/ bet 
   !$mnh_end_expand_array(JIJ=IIJB:IIJE)
 !
@@ -289,7 +289,7 @@ IF ( PIMPL > 1.E-10 ) THEN
 !
   DO JK = IKE-IKL,IKB,-IKL
     !$mnh_expand_array(JIJ=IIJB:IIJE)
-    PVARP(IIJB:IIJE,JK) = PVARP(IIJB:IIJE,JK) - ZGAM(IIJB:IIJE,JK+IKL) * PVARP(IIJB:IIJE,JK+IKL)
+    PVARP(:,JK) = PVARP(:,JK) - ZGAM(:,JK+IKL) * PVARP(:,JK+IKL)
     !$mnh_end_expand_array(JIJ=IIJB:IIJE)
   END DO
 !
@@ -299,7 +299,7 @@ ELSE
   !
   DO JK=IKTB,IKTE
     !$mnh_expand_array(JIJ=IIJB:IIJE)
-    PVARP(IIJB:IIJE,JK) = ZY(IIJB:IIJE,JK) * PTSTEP / PRHODJ(IIJB:IIJE,JK)
+    PVARP(:,JK) = ZY(:,JK) * PTSTEP / PRHODJ(:,JK)
     !$mnh_end_expand_array(JIJ=IIJB:IIJE)
   ENDDO
   !
@@ -310,8 +310,8 @@ END IF
 !            ----------------------------------------
 !
 !$mnh_expand_array(JIJ=IIJB:IIJE)
-PVARP(IIJB:IIJE,IKA)=PVARP(IIJB:IIJE,IKB)
-PVARP(IIJB:IIJE,IKU)=PVARP(IIJB:IIJE,IKE)
+PVARP(:,IKA)=PVARP(:,IKB)
+PVARP(:,IKU)=PVARP(:,IKE)
 !$mnh_end_expand_array(JIJ=IIJB:IIJE)
 !
 !-------------------------------------------------------------------------------
diff --git a/src/PHYEX/turb/mode_tridiag_thermo.f90 b/src/PHYEX/turb/mode_tridiag_thermo.f90
index 23d959b9bdb5714bdc06ecfe4592456c2a0a5751..a4070154427e7a7082d1c1e47fd576bed641b3a5 100644
--- a/src/PHYEX/turb/mode_tridiag_thermo.f90
+++ b/src/PHYEX/turb/mode_tridiag_thermo.f90
@@ -177,8 +177,8 @@ IIJE=D%NIJE
 !
 CALL MZM_PHY(D,PRHODJ,ZMZM_RHODJ)
 !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-ZRHODJ_DFDDTDZ_O_DZ2(IIJB:IIJE,1:IKT) = ZMZM_RHODJ(IIJB:IIJE,1:IKT)*PDFDDTDZ(IIJB:IIJE,1:IKT) &
-                                                /PDZZ(IIJB:IIJE,1:IKT)**2
+ZRHODJ_DFDDTDZ_O_DZ2(:,:) = ZMZM_RHODJ(:,:)*PDFDDTDZ(:,:) &
+                                                /PDZZ(:,:)**2
 !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 !
 ZA=0.
@@ -191,31 +191,31 @@ ZY=0.
 !           ---------------------------
 !
 !$mnh_expand_array(JIJ=IIJB:IIJE)
-ZY(IIJB:IIJE,IKB) = PRHODJ(IIJB:IIJE,IKB)*PVARM(IIJB:IIJE,IKB)/PTSTEP                  &
-    - ZMZM_RHODJ(IIJB:IIJE,IKB+IKL) * PF(IIJB:IIJE,IKB+IKL)/PDZZ(IIJB:IIJE,IKB+IKL)    &
-    + ZMZM_RHODJ(IIJB:IIJE,IKB  ) * PF(IIJB:IIJE,IKB  )/PDZZ(IIJB:IIJE,IKB  )          &
-    + ZRHODJ_DFDDTDZ_O_DZ2(IIJB:IIJE,IKB+IKL) * PIMPL * PVARM(IIJB:IIJE,IKB+IKL) &
-    - ZRHODJ_DFDDTDZ_O_DZ2(IIJB:IIJE,IKB+IKL) * PIMPL * PVARM(IIJB:IIJE,IKB  )
+ZY(:,IKB) = PRHODJ(:,IKB)*PVARM(:,IKB)/PTSTEP                  &
+    - ZMZM_RHODJ(:,IKB+IKL) * PF(:,IKB+IKL)/PDZZ(:,IKB+IKL)    &
+    + ZMZM_RHODJ(:,IKB  ) * PF(:,IKB  )/PDZZ(:,IKB  )          &
+    + ZRHODJ_DFDDTDZ_O_DZ2(:,IKB+IKL) * PIMPL * PVARM(:,IKB+IKL) &
+    - ZRHODJ_DFDDTDZ_O_DZ2(:,IKB+IKL) * PIMPL * PVARM(:,IKB  )
 !$mnh_end_expand_array(JIJ=IIJB:IIJE)
 !
 DO JK=IKTB+1,IKTE-1
   !$mnh_expand_array(JIJ=IIJB:IIJE)
-  ZY(IIJB:IIJE,JK) = PRHODJ(IIJB:IIJE,JK)*PVARM(IIJB:IIJE,JK)/PTSTEP                 &
-    - ZMZM_RHODJ(IIJB:IIJE,JK+IKL) * PF(IIJB:IIJE,JK+IKL)/PDZZ(IIJB:IIJE,JK+IKL)     &
-    + ZMZM_RHODJ(IIJB:IIJE,JK  ) * PF(IIJB:IIJE,JK  )/PDZZ(IIJB:IIJE,JK  )           &
-    + ZRHODJ_DFDDTDZ_O_DZ2(IIJB:IIJE,JK+IKL) * PIMPL * PVARM(IIJB:IIJE,JK+IKL) &
-    - ZRHODJ_DFDDTDZ_O_DZ2(IIJB:IIJE,JK+IKL) * PIMPL * PVARM(IIJB:IIJE,JK  )   &
-    - ZRHODJ_DFDDTDZ_O_DZ2(IIJB:IIJE,JK    ) * PIMPL * PVARM(IIJB:IIJE,JK  )   &
-    + ZRHODJ_DFDDTDZ_O_DZ2(IIJB:IIJE,JK    ) * PIMPL * PVARM(IIJB:IIJE,JK-IKL)
+  ZY(:,JK) = PRHODJ(:,JK)*PVARM(:,JK)/PTSTEP                 &
+    - ZMZM_RHODJ(:,JK+IKL) * PF(:,JK+IKL)/PDZZ(:,JK+IKL)     &
+    + ZMZM_RHODJ(:,JK  ) * PF(:,JK  )/PDZZ(:,JK  )           &
+    + ZRHODJ_DFDDTDZ_O_DZ2(:,JK+IKL) * PIMPL * PVARM(:,JK+IKL) &
+    - ZRHODJ_DFDDTDZ_O_DZ2(:,JK+IKL) * PIMPL * PVARM(:,JK  )   &
+    - ZRHODJ_DFDDTDZ_O_DZ2(:,JK    ) * PIMPL * PVARM(:,JK  )   &
+    + ZRHODJ_DFDDTDZ_O_DZ2(:,JK    ) * PIMPL * PVARM(:,JK-IKL)
   !$mnh_end_expand_array(JIJ=IIJB:IIJE)
 END DO
 ! 
 !$mnh_expand_array(JIJ=IIJB:IIJE)
-ZY(IIJB:IIJE,IKE) = PRHODJ(IIJB:IIJE,IKE)*PVARM(IIJB:IIJE,IKE)/PTSTEP               &
-    - ZMZM_RHODJ(IIJB:IIJE,IKE+IKL) * PF(IIJB:IIJE,IKE+IKL)/PDZZ(IIJB:IIJE,IKE+IKL) &
-    + ZMZM_RHODJ(IIJB:IIJE,IKE  ) * PF(IIJB:IIJE,IKE  )/PDZZ(IIJB:IIJE,IKE  )       &
-    - ZRHODJ_DFDDTDZ_O_DZ2(IIJB:IIJE,IKE ) * PIMPL * PVARM(IIJB:IIJE,IKE  )   &
-    + ZRHODJ_DFDDTDZ_O_DZ2(IIJB:IIJE,IKE ) * PIMPL * PVARM(IIJB:IIJE,IKE-IKL)
+ZY(:,IKE) = PRHODJ(:,IKE)*PVARM(:,IKE)/PTSTEP               &
+    - ZMZM_RHODJ(:,IKE+IKL) * PF(:,IKE+IKL)/PDZZ(:,IKE+IKL) &
+    + ZMZM_RHODJ(:,IKE  ) * PF(:,IKE  )/PDZZ(:,IKE  )       &
+    - ZRHODJ_DFDDTDZ_O_DZ2(:,IKE ) * PIMPL * PVARM(:,IKE  )   &
+    + ZRHODJ_DFDDTDZ_O_DZ2(:,IKE ) * PIMPL * PVARM(:,IKE-IKL)
 !$mnh_end_expand_array(JIJ=IIJB:IIJE)
 !
 !
@@ -228,53 +228,53 @@ IF ( PIMPL > 1.E-10 ) THEN
 !            --------------
 !
   !$mnh_expand_array(JIJ=IIJB:IIJE)
-  ZB(IIJB:IIJE,IKB) =   PRHODJ(IIJB:IIJE,IKB)/PTSTEP                   &
-                - ZRHODJ_DFDDTDZ_O_DZ2(IIJB:IIJE,IKB+IKL) * PIMPL
-  ZC(IIJB:IIJE,IKB) =   ZRHODJ_DFDDTDZ_O_DZ2(IIJB:IIJE,IKB+IKL) * PIMPL
+  ZB(:,IKB) =   PRHODJ(:,IKB)/PTSTEP                   &
+                - ZRHODJ_DFDDTDZ_O_DZ2(:,IKB+IKL) * PIMPL
+  ZC(:,IKB) =   ZRHODJ_DFDDTDZ_O_DZ2(:,IKB+IKL) * PIMPL
   !$mnh_end_expand_array(JIJ=IIJB:IIJE)
 !
   DO JK=IKTB+1,IKTE-1
     !$mnh_expand_array(JIJ=IIJB:IIJE)
-    ZA(IIJB:IIJE,JK) =   ZRHODJ_DFDDTDZ_O_DZ2(IIJB:IIJE,JK) * PIMPL
-    ZB(IIJB:IIJE,JK) =   PRHODJ(IIJB:IIJE,JK)/PTSTEP                        &
-                            - ZRHODJ_DFDDTDZ_O_DZ2(IIJB:IIJE,JK+IKL) * PIMPL &
-                            - ZRHODJ_DFDDTDZ_O_DZ2(IIJB:IIJE,JK) * PIMPL
-    ZC(IIJB:IIJE,JK) =   ZRHODJ_DFDDTDZ_O_DZ2(IIJB:IIJE,JK+IKL) * PIMPL
+    ZA(:,JK) =   ZRHODJ_DFDDTDZ_O_DZ2(:,JK) * PIMPL
+    ZB(:,JK) =   PRHODJ(:,JK)/PTSTEP                        &
+                            - ZRHODJ_DFDDTDZ_O_DZ2(:,JK+IKL) * PIMPL &
+                            - ZRHODJ_DFDDTDZ_O_DZ2(:,JK) * PIMPL
+    ZC(:,JK) =   ZRHODJ_DFDDTDZ_O_DZ2(:,JK+IKL) * PIMPL
     !$mnh_end_expand_array(JIJ=IIJB:IIJE)
   END DO
 !
   !$mnh_expand_array(JIJ=IIJB:IIJE)
-  ZA(IIJB:IIJE,IKE) =   ZRHODJ_DFDDTDZ_O_DZ2(IIJB:IIJE,IKE  ) * PIMPL
-  ZB(IIJB:IIJE,IKE) =   PRHODJ(IIJB:IIJE,IKE)/PTSTEP                   &
-                - ZRHODJ_DFDDTDZ_O_DZ2(IIJB:IIJE,IKE  ) * PIMPL
+  ZA(:,IKE) =   ZRHODJ_DFDDTDZ_O_DZ2(:,IKE  ) * PIMPL
+  ZB(:,IKE) =   PRHODJ(:,IKE)/PTSTEP                   &
+                - ZRHODJ_DFDDTDZ_O_DZ2(:,IKE  ) * PIMPL
 !
 !*       3.2 going up
 !            --------
 !
-  ZBET(IIJB:IIJE) = ZB(IIJB:IIJE,IKB)  ! bet = b(ikb)
-  PVARP(IIJB:IIJE,IKB) = ZY(IIJB:IIJE,IKB) / ZBET(IIJB:IIJE)
+  ZBET(:) = ZB(:,IKB)  ! bet = b(ikb)
+  PVARP(:,IKB) = ZY(:,IKB) / ZBET(:)
   !$mnh_end_expand_array(JIJ=IIJB:IIJE)
 
   !
   DO JK = IKB+IKL,IKE-IKL,IKL
     !$mnh_expand_array(JIJ=IIJB:IIJE)
-    ZGAM(IIJB:IIJE,JK) = ZC(IIJB:IIJE,JK-IKL) / ZBET(IIJB:IIJE)  
+    ZGAM(:,JK) = ZC(:,JK-IKL) / ZBET(:)  
                                                     ! gam(k) = c(k-1) / bet
-    ZBET(IIJB:IIJE)    = ZB(IIJB:IIJE,JK) - ZA(IIJB:IIJE,JK) * ZGAM(IIJB:IIJE,JK)
+    ZBET(:)    = ZB(:,JK) - ZA(:,JK) * ZGAM(:,JK)
                                                     ! bet = b(k) - a(k)* gam(k)  
-    PVARP(IIJB:IIJE,JK)= ( ZY(IIJB:IIJE,JK) - ZA(IIJB:IIJE,JK) * PVARP(IIJB:IIJE,JK-IKL) ) &
-                               / ZBET(IIJB:IIJE)
+    PVARP(:,JK)= ( ZY(:,JK) - ZA(:,JK) * PVARP(:,JK-IKL) ) &
+                               / ZBET(:)
                                         ! res(k) = (y(k) -a(k)*res(k-1))/ bet 
     !$mnh_end_expand_array(JIJ=IIJB:IIJE)
   END DO 
   ! special treatment for the last level
   !$mnh_expand_array(JIJ=IIJB:IIJE)
-  ZGAM(IIJB:IIJE,IKE) = ZC(IIJB:IIJE,IKE-IKL) / ZBET(IIJB:IIJE) 
+  ZGAM(:,IKE) = ZC(:,IKE-IKL) / ZBET(:) 
                                                     ! gam(k) = c(k-1) / bet
-  ZBET(IIJB:IIJE)     = ZB(IIJB:IIJE,IKE) - ZA(IIJB:IIJE,IKE) * ZGAM(IIJB:IIJE,IKE)
+  ZBET(:)     = ZB(:,IKE) - ZA(:,IKE) * ZGAM(:,IKE)
                                                     ! bet = b(k) - a(k)* gam(k)  
-  PVARP(IIJB:IIJE,IKE)= ( ZY(IIJB:IIJE,IKE) - ZA(IIJB:IIJE,IKE) * PVARP(IIJB:IIJE,IKE-IKL) ) &
-                              / ZBET(IIJB:IIJE)
+  PVARP(:,IKE)= ( ZY(:,IKE) - ZA(:,IKE) * PVARP(:,IKE-IKL) ) &
+                              / ZBET(:)
                                        ! res(k) = (y(k) -a(k)*res(k-1))/ bet 
   !$mnh_end_expand_array(JIJ=IIJB:IIJE)
 !
@@ -283,7 +283,7 @@ IF ( PIMPL > 1.E-10 ) THEN
 !
   DO JK = IKE-IKL,IKB,-1*IKL
     !$mnh_expand_array(JIJ=IIJB:IIJE)
-    PVARP(IIJB:IIJE,JK) = PVARP(IIJB:IIJE,JK) - ZGAM(IIJB:IIJE,JK+IKL) * PVARP(IIJB:IIJE,JK+IKL)
+    PVARP(:,JK) = PVARP(:,JK) - ZGAM(:,JK+IKL) * PVARP(:,JK+IKL)
     !$mnh_end_expand_array(JIJ=IIJB:IIJE)
   END DO
 !
@@ -291,7 +291,7 @@ ELSE
 ! 
   DO JK=IKTB,IKTE
     !$mnh_expand_array(JIJ=IIJB:IIJE)
-    PVARP(IIJB:IIJE,JK) = ZY(IIJB:IIJE,JK) * PTSTEP / PRHODJ(IIJB:IIJE,JK)
+    PVARP(:,JK) = ZY(:,JK) * PTSTEP / PRHODJ(:,JK)
     !$mnh_end_expand_array(JIJ=IIJB:IIJE)
   END DO
 !
@@ -302,8 +302,8 @@ END IF
 !            ----------------------------------------
 !
 !$mnh_expand_array(JIJ=IIJB:IIJE)
-PVARP(IIJB:IIJE,IKA)=PVARP(IIJB:IIJE,IKB)
-PVARP(IIJB:IIJE,IKU)=PVARP(IIJB:IIJE,IKE)
+PVARP(:,IKA)=PVARP(:,IKB)
+PVARP(:,IKU)=PVARP(:,IKE)
 !$mnh_end_expand_array(JIJ=IIJB:IIJE)
 !
 !-------------------------------------------------------------------------------
diff --git a/src/PHYEX/turb/mode_tridiag_tke.f90 b/src/PHYEX/turb/mode_tridiag_tke.f90
index cc761d7ad6692eee4041148e7f4c3f12a7e4f6e8..1c11a85689bc57b2155d185fc47d02cee5031c8d 100644
--- a/src/PHYEX/turb/mode_tridiag_tke.f90
+++ b/src/PHYEX/turb/mode_tridiag_tke.f90
@@ -165,25 +165,25 @@ IIJB=D%NIJB
 IIJE=D%NIJE
 !
 !$mnh_expand_array(JIJ=IIJB:IIJE)
-ZY(IIJB:IIJE,IKB) = PVARM(IIJB:IIJE,IKB)  + PTSTEP*PSOURCE(IIJB:IIJE,IKB) -   &
-  PEXPL / PRHODJ(IIJB:IIJE,IKB) * PA(IIJB:IIJE,IKB+IKL) *  & 
-  (PVARM(IIJB:IIJE,IKB+IKL) - PVARM(IIJB:IIJE,IKB))
+ZY(:,IKB) = PVARM(:,IKB)  + PTSTEP*PSOURCE(:,IKB) -   &
+  PEXPL / PRHODJ(:,IKB) * PA(:,IKB+IKL) *  & 
+  (PVARM(:,IKB+IKL) - PVARM(:,IKB))
 !$mnh_end_expand_array(JIJ=IIJB:IIJE)
 !
 DO JK=IKTB+1,IKTE-1
   !$mnh_expand_array(JIJ=IIJB:IIJE)
-  ZY(IIJB:IIJE,JK)= PVARM(IIJB:IIJE,JK)  + PTSTEP*PSOURCE(IIJB:IIJE,JK) -               &
-      PEXPL / PRHODJ(IIJB:IIJE,JK) *                                           &
-                             ( PVARM(IIJB:IIJE,JK-IKL)*PA(IIJB:IIJE,JK)                &
-                              -PVARM(IIJB:IIJE,JK)*(PA(IIJB:IIJE,JK)+PA(IIJB:IIJE,JK+IKL))   &
-                              +PVARM(IIJB:IIJE,JK+IKL)*PA(IIJB:IIJE,JK+IKL)              &
+  ZY(:,JK)= PVARM(:,JK)  + PTSTEP*PSOURCE(:,JK) -               &
+      PEXPL / PRHODJ(:,JK) *                                           &
+                             ( PVARM(:,JK-IKL)*PA(:,JK)                &
+                              -PVARM(:,JK)*(PA(:,JK)+PA(:,JK+IKL))   &
+                              +PVARM(:,JK+IKL)*PA(:,JK+IKL)              &
                              ) 
   !$mnh_end_expand_array(JIJ=IIJB:IIJE)
 END DO
 ! 
 !$mnh_expand_array(JIJ=IIJB:IIJE)
-ZY(IIJB:IIJE,IKE)= PVARM(IIJB:IIJE,IKE) + PTSTEP*PSOURCE(IIJB:IIJE,IKE) +               &
-  PEXPL / PRHODJ(IIJB:IIJE,IKE) * PA(IIJB:IIJE,IKE) * (PVARM(IIJB:IIJE,IKE)-PVARM(IIJB:IIJE,IKE-IKL))
+ZY(:,IKE)= PVARM(:,IKE) + PTSTEP*PSOURCE(:,IKE) +               &
+  PEXPL / PRHODJ(:,IKE) * PA(:,IKE) * (PVARM(:,IKE)-PVARM(:,IKE-IKL))
 !$mnh_end_expand_array(JIJ=IIJB:IIJE)
 !
 !
@@ -196,37 +196,37 @@ IF ( PIMPL > 1.E-10 ) THEN
   !  going up
   !
   !$mnh_expand_array(JIJ=IIJB:IIJE)
-  ZBET(IIJB:IIJE) = 1. + PIMPL * (PDIAG(IIJB:IIJE,IKB)-PA(IIJB:IIJE,IKB+IKL) / PRHODJ(IIJB:IIJE,IKB))
+  ZBET(:) = 1. + PIMPL * (PDIAG(:,IKB)-PA(:,IKB+IKL) / PRHODJ(:,IKB))
                                                     ! bet = b(ikb)
-  PVARP(IIJB:IIJE,IKB) = ZY(IIJB:IIJE,IKB) / ZBET(IIJB:IIJE)                
+  PVARP(:,IKB) = ZY(:,IKB) / ZBET(:)                
   !$mnh_end_expand_array(JIJ=IIJB:IIJE)               
   !
   DO JK = IKB+IKL,IKE-IKL,IKL
     !$mnh_expand_array(JIJ=IIJB:IIJE)
-    ZGAM(IIJB:IIJE,JK) = PIMPL * PA(IIJB:IIJE,JK) / PRHODJ(IIJB:IIJE,JK-IKL) / ZBET(IIJB:IIJE)  
+    ZGAM(:,JK) = PIMPL * PA(:,JK) / PRHODJ(:,JK-IKL) / ZBET(:)  
                                                     ! gam(k) = c(k-1) / bet
-    ZBET(IIJB:IIJE)    = 1. + PIMPL * ( PDIAG(IIJB:IIJE,JK) -                     &
-                                 (  PA(IIJB:IIJE,JK) * (1. + ZGAM(IIJB:IIJE,JK))  &
-                                  + PA(IIJB:IIJE,JK+IKL)                      &
-                                 ) / PRHODJ(IIJB:IIJE,JK)                   &
+    ZBET(:)    = 1. + PIMPL * ( PDIAG(:,JK) -                     &
+                                 (  PA(:,JK) * (1. + ZGAM(:,JK))  &
+                                  + PA(:,JK+IKL)                      &
+                                 ) / PRHODJ(:,JK)                   &
                                 )                   ! bet = b(k) - a(k)* gam(k)  
-    PVARP(IIJB:IIJE,JK)= ( ZY(IIJB:IIJE,JK) - PIMPL * PA(IIJB:IIJE,JK) / PRHODJ(IIJB:IIJE,JK) &
-                    * PVARP(IIJB:IIJE,JK-IKL)                                 &
-                   ) / ZBET(IIJB:IIJE)
+    PVARP(:,JK)= ( ZY(:,JK) - PIMPL * PA(:,JK) / PRHODJ(:,JK) &
+                    * PVARP(:,JK-IKL)                                 &
+                   ) / ZBET(:)
                                         ! res(k) = (y(k) -a(k)*res(k-1))/ bet 
     !$mnh_end_expand_array(JIJ=IIJB:IIJE)
   END DO
   !$mnh_expand_array(JIJ=IIJB:IIJE)
   ! special treatment for the last level
-  ZGAM(IIJB:IIJE,IKE) = PIMPL * PA(IIJB:IIJE,IKE) / PRHODJ(IIJB:IIJE,IKE-IKL) / ZBET(IIJB:IIJE) 
+  ZGAM(:,IKE) = PIMPL * PA(:,IKE) / PRHODJ(:,IKE-IKL) / ZBET(:) 
                                                     ! gam(k) = c(k-1) / bet
-  ZBET(IIJB:IIJE)    = 1. + PIMPL * ( PDIAG(IIJB:IIJE,IKE) -                   &
-         (  PA(IIJB:IIJE,IKE) * (1. + ZGAM(IIJB:IIJE,IKE)) ) / PRHODJ(IIJB:IIJE,IKE) &
+  ZBET(:)    = 1. + PIMPL * ( PDIAG(:,IKE) -                   &
+         (  PA(:,IKE) * (1. + ZGAM(:,IKE)) ) / PRHODJ(:,IKE) &
                               )  
                                                     ! bet = b(k) - a(k)* gam(k)  
-  PVARP(IIJB:IIJE,IKE)= ( ZY(IIJB:IIJE,IKE) - PIMPL * PA(IIJB:IIJE,IKE) / PRHODJ(IIJB:IIJE,IKE) &
-                                * PVARP(IIJB:IIJE,IKE-IKL)                      &
-                 ) / ZBET(IIJB:IIJE)
+  PVARP(:,IKE)= ( ZY(:,IKE) - PIMPL * PA(:,IKE) / PRHODJ(:,IKE) &
+                                * PVARP(:,IKE-IKL)                      &
+                 ) / ZBET(:)
                                        ! res(k) = (y(k) -a(k)*res(k-1))/ bet 
   !
   !  going down
@@ -234,7 +234,7 @@ IF ( PIMPL > 1.E-10 ) THEN
   !$mnh_end_expand_array(JIJ=IIJB:IIJE)
   DO JK = IKE-IKL,IKB,-1*IKL
   !$mnh_expand_array(JIJ=IIJB:IIJE)
-    PVARP(IIJB:IIJE,JK) = PVARP(IIJB:IIJE,JK) - ZGAM(IIJB:IIJE,JK+IKL) * PVARP(IIJB:IIJE,JK+IKL) 
+    PVARP(:,JK) = PVARP(:,JK) - ZGAM(:,JK+IKL) * PVARP(:,JK+IKL) 
   !$mnh_end_expand_array(JIJ=IIJB:IIJE)
   END DO
 !
@@ -242,7 +242,7 @@ ELSE
 ! 
   DO JK=IKTB,IKTE
     !$mnh_expand_array(JIJ=IIJB:IIJE)
-    PVARP(IIJB:IIJE,JK) = ZY(IIJB:IIJE,JK)
+    PVARP(:,JK) = ZY(:,JK)
     !$mnh_end_expand_array(JIJ=IIJB:IIJE)
   END DO
 !
@@ -253,8 +253,8 @@ END IF
 !            ----------------------------------------
 !
 !$mnh_expand_array(JIJ=IIJB:IIJE)
-PVARP(IIJB:IIJE,IKA)=PVARP(IIJB:IIJE,IKB)
-PVARP(IIJB:IIJE,IKU)=PVARP(IIJB:IIJE,IKE)
+PVARP(:,IKA)=PVARP(:,IKB)
+PVARP(:,IKU)=PVARP(:,IKE)
 !$mnh_end_expand_array(JIJ=IIJB:IIJE)
 !
 !-------------------------------------------------------------------------------
diff --git a/src/PHYEX/turb/mode_tridiag_wind.f90 b/src/PHYEX/turb/mode_tridiag_wind.f90
index 0c57fc93e758dc8fd1cda909ab53842ba688765f..b19d6dd2174956d997bab38744a52065d4b22de9 100644
--- a/src/PHYEX/turb/mode_tridiag_wind.f90
+++ b/src/PHYEX/turb/mode_tridiag_wind.f90
@@ -170,25 +170,25 @@ IIJB=D%NIJB
 IIJE=D%NIJE
 !
 !$mnh_expand_array(JIJ=IIJB:IIJE)
-ZY(IIJB:IIJE,IKB) = PVARM(IIJB:IIJE,IKB)  + PTSTEP*PSOURCE(IIJB:IIJE,IKB) -   &
-  PEXPL / PRHODJA(IIJB:IIJE,IKB) * PA(IIJB:IIJE,IKB+IKL) * &
-  (PVARM(IIJB:IIJE,IKB+IKL) - PVARM(IIJB:IIJE,IKB))
+ZY(:,IKB) = PVARM(:,IKB)  + PTSTEP*PSOURCE(:,IKB) -   &
+  PEXPL / PRHODJA(:,IKB) * PA(:,IKB+IKL) * &
+  (PVARM(:,IKB+IKL) - PVARM(:,IKB))
 !$mnh_end_expand_array(JIJ=IIJB:IIJE)
 !
 DO JK=IKTB+1,IKTE-1
   !$mnh_expand_array(JIJ=IIJB:IIJE)
-  ZY(IIJB:IIJE,JK)= PVARM(IIJB:IIJE,JK)  + PTSTEP*PSOURCE(IIJB:IIJE,JK) -               &
-      PEXPL / PRHODJA(IIJB:IIJE,JK) *                                          &
-                             ( PVARM(IIJB:IIJE,JK-IKL)*PA(IIJB:IIJE,JK)                &
-                              -PVARM(IIJB:IIJE,JK)*(PA(IIJB:IIJE,JK)+PA(IIJB:IIJE,JK+IKL))   &
-                              +PVARM(IIJB:IIJE,JK+IKL)*PA(IIJB:IIJE,JK+IKL)              &
+  ZY(:,JK)= PVARM(:,JK)  + PTSTEP*PSOURCE(:,JK) -               &
+      PEXPL / PRHODJA(:,JK) *                                          &
+                             ( PVARM(:,JK-IKL)*PA(:,JK)                &
+                              -PVARM(:,JK)*(PA(:,JK)+PA(:,JK+IKL))   &
+                              +PVARM(:,JK+IKL)*PA(:,JK+IKL)              &
                              ) 
   !$mnh_end_expand_array(JIJ=IIJB:IIJE)
 END DO
 ! 
 !$mnh_expand_array(JIJ=IIJB:IIJE)
-ZY(IIJB:IIJE,IKE)= PVARM(IIJB:IIJE,IKE) + PTSTEP*PSOURCE(IIJB:IIJE,IKE) +               &
-  PEXPL / PRHODJA(IIJB:IIJE,IKE) * PA(IIJB:IIJE,IKE) * (PVARM(IIJB:IIJE,IKE)-PVARM(IIJB:IIJE,IKE-IKL))
+ZY(:,IKE)= PVARM(:,IKE) + PTSTEP*PSOURCE(:,IKE) +               &
+  PEXPL / PRHODJA(:,IKE) * PA(:,IKE) * (PVARM(:,IKE)-PVARM(:,IKE-IKL))
 !$mnh_end_expand_array(JIJ=IIJB:IIJE)
 !
 !
@@ -201,35 +201,35 @@ IF ( PIMPL > 1.E-10 ) THEN
   !  going up
   !
   !$mnh_expand_array(JIJ=IIJB:IIJE)
-  ZBET(IIJB:IIJE) = 1. - PIMPL * (  PA(IIJB:IIJE,IKB+IKL) / PRHODJA(IIJB:IIJE,IKB) &  
-                            + PCOEFS(IIJB:IIJE) *  PTSTEP        )   ! bet = b(ikb)
-  PVARP(IIJB:IIJE,IKB) = ZY(IIJB:IIJE,IKB) / ZBET(IIJB:IIJE)
+  ZBET(:) = 1. - PIMPL * (  PA(:,IKB+IKL) / PRHODJA(:,IKB) &  
+                            + PCOEFS(:) *  PTSTEP        )   ! bet = b(ikb)
+  PVARP(:,IKB) = ZY(:,IKB) / ZBET(:)
   !$mnh_end_expand_array(JIJ=IIJB:IIJE)               
   !
   DO JK = IKB+IKL,IKE-IKL,IKL
     !$mnh_expand_array(JIJ=IIJB:IIJE)
-    ZGAM(IIJB:IIJE,JK) = PIMPL * PA(IIJB:IIJE,JK) / PRHODJA(IIJB:IIJE,JK-IKL) / ZBET(IIJB:IIJE)  
+    ZGAM(:,JK) = PIMPL * PA(:,JK) / PRHODJA(:,JK-IKL) / ZBET(:)  
                                                     ! gam(k) = c(k-1) / bet
-    ZBET(IIJB:IIJE)    = 1. - PIMPL * (  PA(IIJB:IIJE,JK) * (1. + ZGAM(IIJB:IIJE,JK))  &
-                                 + PA(IIJB:IIJE,JK+IKL)                      &
-                                ) / PRHODJA(IIJB:IIJE,JK)  
+    ZBET(:)    = 1. - PIMPL * (  PA(:,JK) * (1. + ZGAM(:,JK))  &
+                                 + PA(:,JK+IKL)                      &
+                                ) / PRHODJA(:,JK)  
                                                     ! bet = b(k) - a(k)* gam(k)  
-    PVARP(IIJB:IIJE,JK)= ( ZY(IIJB:IIJE,JK) - PIMPL * PA(IIJB:IIJE,JK) / PRHODJA(IIJB:IIJE,JK) &
-                    * PVARP(IIJB:IIJE,JK-IKL)                                 &
-                   ) / ZBET(IIJB:IIJE)
+    PVARP(:,JK)= ( ZY(:,JK) - PIMPL * PA(:,JK) / PRHODJA(:,JK) &
+                    * PVARP(:,JK-IKL)                                 &
+                   ) / ZBET(:)
                                         ! res(k) = (y(k) -a(k)*res(k-1))/ bet 
     !$mnh_end_expand_array(JIJ=IIJB:IIJE)
   END DO
   !$mnh_expand_array(JIJ=IIJB:IIJE)
   ! special treatment for the last level
-  ZGAM(IIJB:IIJE,IKE) = PIMPL * PA(IIJB:IIJE,IKE) / PRHODJA(IIJB:IIJE,IKE-IKL) / ZBET(IIJB:IIJE) 
+  ZGAM(:,IKE) = PIMPL * PA(:,IKE) / PRHODJA(:,IKE-IKL) / ZBET(:) 
                                                     ! gam(k) = c(k-1) / bet
-  ZBET(IIJB:IIJE)    = 1. - PIMPL * (  PA(IIJB:IIJE,IKE) * (1. + ZGAM(IIJB:IIJE,IKE))  &
-                              ) / PRHODJA(IIJB:IIJE,IKE)  
+  ZBET(:)    = 1. - PIMPL * (  PA(:,IKE) * (1. + ZGAM(:,IKE))  &
+                              ) / PRHODJA(:,IKE)  
                                                     ! bet = b(k) - a(k)* gam(k)  
-  PVARP(IIJB:IIJE,IKE)= ( ZY(IIJB:IIJE,IKE) - PIMPL * PA(IIJB:IIJE,IKE) / PRHODJA(IIJB:IIJE,IKE) &
-                                 * PVARP(IIJB:IIJE,IKE-IKL)                      &
-                  ) / ZBET(IIJB:IIJE)
+  PVARP(:,IKE)= ( ZY(:,IKE) - PIMPL * PA(:,IKE) / PRHODJA(:,IKE) &
+                                 * PVARP(:,IKE-IKL)                      &
+                  ) / ZBET(:)
                                         ! res(k) = (y(k) -a(k)*res(k-1))/ bet 
   !
   !  going down
@@ -237,7 +237,7 @@ IF ( PIMPL > 1.E-10 ) THEN
   !$mnh_end_expand_array(JIJ=IIJB:IIJE)
   DO JK = IKE-IKL,IKB,-1*IKL
   !$mnh_expand_array(JIJ=IIJB:IIJE)
-    PVARP(IIJB:IIJE,JK) = PVARP(IIJB:IIJE,JK) - ZGAM(IIJB:IIJE,JK+IKL) * PVARP(IIJB:IIJE,JK+IKL) 
+    PVARP(:,JK) = PVARP(:,JK) - ZGAM(:,JK+IKL) * PVARP(:,JK+IKL) 
   !$mnh_end_expand_array(JIJ=IIJB:IIJE)
   END DO
 !
@@ -245,7 +245,7 @@ ELSE
 ! 
   DO JK=IKTB,IKTE
     !$mnh_expand_array(JIJ=IIJB:IIJE)
-    PVARP(IIJB:IIJE,JK) = ZY(IIJB:IIJE,JK)
+    PVARP(:,JK) = ZY(:,JK)
     !$mnh_end_expand_array(JIJ=IIJB:IIJE)
   END DO
 !
@@ -256,8 +256,8 @@ END IF
 !            ----------------------------------------
 !
 !$mnh_expand_array(JIJ=IIJB:IIJE)
-PVARP(IIJB:IIJE,IKA)=PVARP(IIJB:IIJE,IKB)
-PVARP(IIJB:IIJE,IKU)=PVARP(IIJB:IIJE,IKE)
+PVARP(:,IKA)=PVARP(:,IKB)
+PVARP(:,IKU)=PVARP(:,IKE)
 !$mnh_end_expand_array(JIJ=IIJB:IIJE)
 !
 !-------------------------------------------------------------------------------
diff --git a/src/PHYEX/turb/mode_turb_ver.f90 b/src/PHYEX/turb/mode_turb_ver.f90
index 6847c703e900270816207ad37a90eec4e25386e7..848abf83551f9c3d2650604e58cb71fbf54a0de0 100644
--- a/src/PHYEX/turb/mode_turb_ver.f90
+++ b/src/PHYEX/turb/mode_turb_ver.f90
@@ -424,18 +424,18 @@ CALL PRANDTL(D,CST,CSTURB,KRR,KSV,KRRI,TURBN%LTURB_FLX,  &
 !
 IF (OOCEAN) THEN
   !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-  ZBETA(IIJB:IIJE,1:IKT) = CST%XG*CST%XALPHAOC
+  ZBETA(:,:) = CST%XG*CST%XALPHAOC
   !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 ELSE
   !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-  ZBETA(IIJB:IIJE,1:IKT) = CST%XG/PTHVREF(IIJB:IIJE,1:IKT)
+  ZBETA(:,:) = CST%XG/PTHVREF(:,:)
   !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 END IF
 !
 ! Square root of Tke
 !
 !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-ZSQRT_TKE(IIJB:IIJE,1:IKT) = SQRT(PTKEM(IIJB:IIJE,1:IKT))
+ZSQRT_TKE(:,:) = SQRT(PTKEM(:,:))
 !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 !
 ! gradients of mean quantities at previous time-step
@@ -449,12 +449,12 @@ IF (KRR>0) CALL GZ_M_W_PHY(D,PRM(:,:,1),PDZZ,ZDR_DZ)
 !
 IF (.NOT. TURBN%LHARAT) THEN
   !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-  ZD(IIJB:IIJE,1:IKT) = (1.+ZREDTH1(IIJB:IIJE,1:IKT)+ZREDR1(IIJB:IIJE,1:IKT)) * &
-                               &(1.+0.5*(ZREDTH1(IIJB:IIJE,1:IKT)+ZREDR1(IIJB:IIJE,1:IKT)))
+  ZD(:,:) = (1.+ZREDTH1(:,:)+ZREDR1(:,:)) * &
+                               &(1.+0.5*(ZREDTH1(:,:)+ZREDR1(:,:)))
   !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 ELSE
   !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-  ZD(IIJB:IIJE,1:IKT) = 1.
+  ZD(:,:) = 1.
   !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 ENDIF
 !
diff --git a/src/PHYEX/turb/mode_turb_ver_dyn_flux.f90 b/src/PHYEX/turb/mode_turb_ver_dyn_flux.f90
index acda739bf432db377a546504ce3cb145282f4738..e500f4e5dbde508a36f94d8c68b4bee391d82b47 100644
--- a/src/PHYEX/turb/mode_turb_ver_dyn_flux.f90
+++ b/src/PHYEX/turb/mode_turb_ver_dyn_flux.f90
@@ -360,7 +360,7 @@ ZCMFS = CSTURB%XCMFS
 IF (TURBN%LHARAT) ZCMFS=1.
 !
 !$mnh_expand_array(JIJ=IIJB:IIJE)
-ZDIRSINZW(IIJB:IIJE) = SQRT(1.-PDIRCOSZW(IIJB:IIJE)**2)
+ZDIRSINZW(:) = SQRT(1.-PDIRCOSZW(:)**2)
 !$mnh_end_expand_array(JIJ=IIJB:IIJE)
 !  compute the coefficients for the uncentred gradient computation near the
 !  ground
@@ -369,19 +369,19 @@ ZDIRSINZW(IIJB:IIJE) = SQRT(1.-PDIRCOSZW(IIJB:IIJE)**2)
 !
 IF (TURBN%LHARAT) THEN
   !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-  ZKEFF(IIJB:IIJE,1:IKT) =  PLM(IIJB:IIJE,1:IKT) * SQRT(PTKEM(IIJB:IIJE,1:IKT))
+  ZKEFF(:,:) =  PLM(:,:) * SQRT(PTKEM(:,:))
   !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 ELSE
   !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-  ZWORK1(IIJB:IIJE,1:IKT) = PLM(IIJB:IIJE,1:IKT) * SQRT(PTKEM(IIJB:IIJE,1:IKT))
+  ZWORK1(:,:) = PLM(:,:) * SQRT(PTKEM(:,:))
   !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
   CALL MZM_PHY(D,ZWORK1,ZKEFF)
 ENDIF
 !
-ZUSLOPEM(IIJB:IIJE)=PUSLOPEM(IIJB:IIJE)
-ZVSLOPEM(IIJB:IIJE)=PVSLOPEM(IIJB:IIJE)
-ZFLUXSFCU(IIJB:IIJE)=PSFUM(IIJB:IIJE)
-ZFLUXSFCV(IIJB:IIJE)=PSFVM(IIJB:IIJE)
+ZUSLOPEM(:)=PUSLOPEM(:)
+ZVSLOPEM(:)=PVSLOPEM(:)
+ZFLUXSFCU(:)=PSFUM(:)
+ZFLUXSFCV(:)=PSFVM(:)
 !
 !----------------------------------------------------------------------------
 !
@@ -398,8 +398,8 @@ CALL MXM_PHY(D,PDZZ,ZWORK2)
 CALL MZM_PHY(D,PRHODJ,ZWORK3)
 CALL MXM_PHY(D,ZWORK3,ZWORK4)
 !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-ZA(IIJB:IIJE,1:IKT) = -PTSTEP * ZCMFS * ZWORK1(IIJB:IIJE,1:IKT)* ZWORK4(IIJB:IIJE,1:IKT) &
-                              / ZWORK2(IIJB:IIJE,1:IKT)**2
+ZA(:,:) = -PTSTEP * ZCMFS * ZWORK1(:,:)* ZWORK4(:,:) &
+                              / ZWORK2(:,:)**2
 !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 !
 !
@@ -408,66 +408,66 @@ ZA(IIJB:IIJE,1:IKT) = -PTSTEP * ZCMFS * ZWORK1(IIJB:IIJE,1:IKT)* ZWORK4(IIJB:IIJ
 ! compute the coefficient between the vertical flux and the 2 components of the
 ! wind following the slope
 !$mnh_expand_array(JIJ=IIJB:IIJE)
-ZCOEFFLXU(IIJB:IIJE) = PCDUEFF(IIJB:IIJE) * (PDIRCOSZW(IIJB:IIJE)**2 - ZDIRSINZW(IIJB:IIJE)**2) &
-                                   * PCOSSLOPE(IIJB:IIJE)
-ZCOEFFLXV(IIJB:IIJE) = PCDUEFF(IIJB:IIJE) * PDIRCOSZW(IIJB:IIJE) * PSINSLOPE(IIJB:IIJE)
+ZCOEFFLXU(:) = PCDUEFF(:) * (PDIRCOSZW(:)**2 - ZDIRSINZW(:)**2) &
+                                   * PCOSSLOPE(:)
+ZCOEFFLXV(:) = PCDUEFF(:) * PDIRCOSZW(:) * PSINSLOPE(:)
 !
 ! prepare the implicit scheme coefficients for the surface flux
-ZCOEFS(IIJB:IIJE)=  ZCOEFFLXU(IIJB:IIJE) * PCOSSLOPE(IIJB:IIJE) * PDIRCOSZW(IIJB:IIJE)  &
-                 +ZCOEFFLXV(IIJB:IIJE) * PSINSLOPE(IIJB:IIJE)
+ZCOEFS(:)=  ZCOEFFLXU(:) * PCOSSLOPE(:) * PDIRCOSZW(:)  &
+                 +ZCOEFFLXV(:) * PSINSLOPE(:)
 !
 ! average this flux to be located at the U,W vorticity point
 !$mnh_end_expand_array(JIJ=IIJB:IIJE)
-ZWORK11D(IIJB:IIJE)=ZCOEFS(IIJB:IIJE) / PDZZ(IIJB:IIJE,IKB) 
+ZWORK11D(:)=ZCOEFS(:) / PDZZ(:,IKB) 
 CALL MXM2D_PHY(D,ZWORK11D,ZCOEFS)
 !
 !
-ZSOURCE(IIJB:IIJE,IKTB+1:IKTE-1) = 0.
+ZSOURCE(:,IKTB+1:IKTE-1) = 0.
 ! ZSOURCE= sfc FLUX /DZ
 ! Sfx flux assumed to be in SI & at vorticity point
 CALL MXM_PHY(D,PRHODJ,ZWORK1)
 !
 IF (OOCEAN) THEN  ! Ocean model
   !$mnh_expand_array(JIJ=IIJB:IIJE)
-  ZWORK21D(IIJB:IIJE) = ZFLUXSFCU(IIJB:IIJE)/PDZZ(IIJB:IIJE,IKE)
+  ZWORK21D(:) = ZFLUXSFCU(:)/PDZZ(:,IKE)
   !$mnh_end_expand_array(JIJ=IIJB:IIJE)
   CALL MXM2D_PHY(D,ZWORK21D,ZWORK31D)
   !
   !$mnh_expand_array(JIJ=IIJB:IIJE)  
-  ZSOURCE(IIJB:IIJE,IKE) = ZWORK31D(IIJB:IIJE) &
-       *0.5 * ( 1. + ZWORK1(IIJB:IIJE,IKU) / ZWORK1(IIJB:IIJE,IKE)) 
+  ZSOURCE(:,IKE) = ZWORK31D(:) &
+       *0.5 * ( 1. + ZWORK1(:,IKU) / ZWORK1(:,IKE)) 
   !$mnh_end_expand_array(JIJ=IIJB:IIJE)
   !
   ! Zero flux at the ocean domain bottom
-  ZSOURCE(IIJB:IIJE,IKB) = 0.
+  ZSOURCE(:,IKB) = 0.
   !
 ELSE ! Atmosphere
   ! Compute the explicit tangential flux at the W point    
   !$mnh_expand_array(JIJ=IIJB:IIJE)               
-  ZSOURCE(IIJB:IIJE,IKB)     =                                              &
-   PTAU11M(IIJB:IIJE) * PCOSSLOPE(IIJB:IIJE) * PDIRCOSZW(IIJB:IIJE) * ZDIRSINZW(IIJB:IIJE) &
-   -PTAU12M(IIJB:IIJE) * PSINSLOPE(IIJB:IIJE) * ZDIRSINZW(IIJB:IIJE)                  &
-   -PTAU33M(IIJB:IIJE) * PCOSSLOPE(IIJB:IIJE) * ZDIRSINZW(IIJB:IIJE) * PDIRCOSZW(IIJB:IIJE)  
+  ZSOURCE(:,IKB)     =                                              &
+   PTAU11M(:) * PCOSSLOPE(:) * PDIRCOSZW(:) * ZDIRSINZW(:) &
+   -PTAU12M(:) * PSINSLOPE(:) * ZDIRSINZW(:)                  &
+   -PTAU33M(:) * PCOSSLOPE(:) * ZDIRSINZW(:) * PDIRCOSZW(:)  
 !
   ! add the vertical part or the surface flux at the U,W vorticity point
 !
-  ZWORK31D(IIJB:IIJE) = ZSOURCE(IIJB:IIJE,IKB)/PDZZ(IIJB:IIJE,IKB)
+  ZWORK31D(:) = ZSOURCE(:,IKB)/PDZZ(:,IKB)
   !$mnh_end_expand_array(JIJ=IIJB:IIJE)
   CALL MXM2D_PHY(D,ZWORK31D,ZWORK41D)
-  ZWORK51D(IIJB:IIJE)= ZCOEFFLXU(IIJB:IIJE) / PDZZ(IIJB:IIJE,IKB)       &
-         *ZUSLOPEM(IIJB:IIJE)                           &
-        -ZCOEFFLXV(IIJB:IIJE) / PDZZ(IIJB:IIJE,IKB)       &
-         *ZVSLOPEM(IIJB:IIJE)
+  ZWORK51D(:)= ZCOEFFLXU(:) / PDZZ(:,IKB)       &
+         *ZUSLOPEM(:)                           &
+        -ZCOEFFLXV(:) / PDZZ(:,IKB)       &
+         *ZVSLOPEM(:)
   CALL MXM2D_PHY(D,ZWORK51D,ZWORK61D)
   !$mnh_expand_array(JIJ=IIJB:IIJE)
-  ZSOURCE(IIJB:IIJE,IKB) =                                  &
-  (   ZWORK41D(IIJB:IIJE) &
-  +  ZWORK61D(IIJB:IIJE)   &
-  -  ZCOEFS(IIJB:IIJE) * PUM(IIJB:IIJE,IKB) * TURBN%XIMPL        &
-  ) * 0.5 * ( 1. + ZWORK1(IIJB:IIJE,IKA) / ZWORK1(IIJB:IIJE,IKB) )
+  ZSOURCE(:,IKB) =                                  &
+  (   ZWORK41D(:) &
+  +  ZWORK61D(:)   &
+  -  ZCOEFS(:) * PUM(:,IKB) * TURBN%XIMPL        &
+  ) * 0.5 * ( 1. + ZWORK1(:,IKA) / ZWORK1(:,IKB) )
   !$mnh_end_expand_array(JIJ=IIJB:IIJE)
 !
-  ZSOURCE(IIJB:IIJE,IKE) = 0.
+  ZSOURCE(:,IKE) = 0.
 ENDIF
 !
 ! Obtention of the split U at t+ deltat
@@ -480,35 +480,35 @@ CALL TRIDIAG_WIND(D,PUM,ZA,ZCOEFS,PTSTEP,PEXPL,TURBN%XIMPL,   &
 CALL MXM_PHY(D,PRHODJ,ZWORK1)
 CALL MXM_PHY(D,ZKEFF,ZWORK2)
 !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-ZWORK3(IIJB:IIJE,1:IKT)=TURBN%XIMPL*ZRES(IIJB:IIJE,1:IKT) + PEXPL*PUM(IIJB:IIJE,1:IKT)
+ZWORK3(:,:)=TURBN%XIMPL*ZRES(:,:) + PEXPL*PUM(:,:)
 !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 CALL DZM_PHY(D,ZWORK3,ZWORK4)
 CALL MXM_PHY(D,PDZZ,ZWORK5)
 !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-PRUS(IIJB:IIJE,1:IKT)= PRUS(IIJB:IIJE,1:IKT)+ZWORK1(IIJB:IIJE,1:IKT)*(ZRES(IIJB:IIJE,1:IKT) & 
-                              - PUM(IIJB:IIJE,1:IKT))/PTSTEP
+PRUS(:,:)= PRUS(:,:)+ZWORK1(:,:)*(ZRES(:,:) & 
+                              - PUM(:,:))/PTSTEP
 !
 !*       5.2  Partial TKE Dynamic Production
 !
 ! vertical flux of the U wind component
 !
-ZFLXZ(IIJB:IIJE,1:IKT)     = -ZCMFS * ZWORK2(IIJB:IIJE,1:IKT) * ZWORK4(IIJB:IIJE,1:IKT) &
-                                   / ZWORK5(IIJB:IIJE,1:IKT)
+ZFLXZ(:,:)     = -ZCMFS * ZWORK2(:,:) * ZWORK4(:,:) &
+                                   / ZWORK5(:,:)
 !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 !
 IF (OOCEAN) THEN
-  ZFLXZ(IIJB:IIJE,IKE+1) = ZFLUXSFCU(IIJB:IIJE)
+  ZFLXZ(:,IKE+1) = ZFLUXSFCU(:)
 ELSE
   ! surface flux
   CALL MXM_PHY(D,PDZZ,ZWORK1)
   CALL MXM_PHY(D,PRHODJ,ZWORK2)
   !$mnh_expand_array(JIJ=IIJB:IIJE)
-  ZFLXZ(IIJB:IIJE,IKB)   =   ZWORK1(IIJB:IIJE,IKB)  *                &
-    ( ZSOURCE(IIJB:IIJE,IKB)                                         &
-     +ZCOEFS(IIJB:IIJE) * ZRES(IIJB:IIJE,IKB) * TURBN%XIMPL                &
-    ) / 0.5 / ( 1. + ZWORK2(IIJB:IIJE,IKA)/ ZWORK2(IIJB:IIJE,IKB) )
+  ZFLXZ(:,IKB)   =   ZWORK1(:,IKB)  *                &
+    ( ZSOURCE(:,IKB)                                         &
+     +ZCOEFS(:) * ZRES(:,IKB) * TURBN%XIMPL                &
+    ) / 0.5 / ( 1. + ZWORK2(:,IKA)/ ZWORK2(:,IKB) )
   !
-  ZFLXZ(IIJB:IIJE,IKA) = ZFLXZ(IIJB:IIJE,IKB)
+  ZFLXZ(:,IKA) = ZFLXZ(:,IKB)
   !$mnh_end_expand_array(JIJ=IIJB:IIJE)
 END IF
 !
@@ -530,19 +530,19 @@ END IF
 !
 ! first part of total momentum flux
 !
-PWU(IIJB:IIJE,1:IKT) = ZFLXZ(IIJB:IIJE,1:IKT)
+PWU(:,:) = ZFLXZ(:,:)
 !
 ! Contribution to the TKE dynamic production of TKE
 ! (computed at mass point)
 !
 CALL GZ_U_UW_PHY(D,PUM,PDZZ,ZWORK1)
 !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-ZWORK2(IIJB:IIJE,1:IKT) = ZFLXZ(IIJB:IIJE,1:IKT) * ZWORK1(IIJB:IIJE,1:IKT)
+ZWORK2(:,:) = ZFLXZ(:,:) * ZWORK1(:,:)
 !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 CALL MXF_PHY(D,ZWORK2,ZWORK3)
 CALL MZF_PHY(D,ZWORK3,ZWORK4)
 !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-PDP(IIJB:IIJE,1:IKT) = -ZWORK4(IIJB:IIJE,1:IKT)
+PDP(:,:) = -ZWORK4(:,:)
 !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 !
 ! Special cases near surface
@@ -551,22 +551,22 @@ IF (OOCEAN) THEN
   ! evaluate the dynamic production at w(IKE) and store in PDP(IKE)
   ! before to be extrapolated in tke_eps routine
   !$mnh_expand_array(JIJ=IIJB:IIJE)  
-  ZWORK2(IIJB:IIJE,IKE) = ZFLXZ(IIJB:IIJE,IKE) * (PUM(IIJB:IIJE,IKE)-PUM(IIJB:IIJE,IKE-IKL))  &
-                         / ZWORK1(IIJB:IIJE,IKE-IKL)
+  ZWORK2(:,IKE) = ZFLXZ(:,IKE) * (PUM(:,IKE)-PUM(:,IKE-IKL))  &
+                         / ZWORK1(:,IKE-IKL)
   !$mnh_end_expand_array(JIJ=IIJB:IIJE)                 
   CALL MXF_PHY(D,ZWORK2,ZWORK3)
   !$mnh_expand_array(JIJ=IIJB:IIJE)  
-  PDP(IIJB:IIJE,IKE) = -ZWORK3(IIJB:IIJE,IKE)
+  PDP(:,IKE) = -ZWORK3(:,IKE)
   !$mnh_end_expand_array(JIJ=IIJB:IIJE)
 ELSE ! Atmosphere
   ! evaluate the dynamic production at w(IKB+KKL) in PDP(IKB)
   !$mnh_expand_array(JIJ=IIJB:IIJE)  
-  ZWORK2(IIJB:IIJE,IKB) = ZFLXZ(IIJB:IIJE,IKB+IKL) * (PUM(IIJB:IIJE,IKB+IKL)-PUM(IIJB:IIJE,IKB))  &
-                           / ZWORK1(IIJB:IIJE,IKB+IKL)
+  ZWORK2(:,IKB) = ZFLXZ(:,IKB+IKL) * (PUM(:,IKB+IKL)-PUM(:,IKB))  &
+                           / ZWORK1(:,IKB+IKL)
   !$mnh_end_expand_array(JIJ=IIJB:IIJE)                   
   CALL MXF_PHY(D,ZWORK2,ZWORK3)
   !$mnh_expand_array(JIJ=IIJB:IIJE)
-  PDP(IIJB:IIJE,IKB) = -ZWORK3(IIJB:IIJE,IKB)
+  PDP(:,IKB) = -ZWORK3(:,IKB)
   !$mnh_end_expand_array(JIJ=IIJB:IIJE)
 !
 END IF
@@ -582,14 +582,14 @@ IF (TLES%LLES_CALL) THEN
   !
   CALL GZ_U_UW_PHY(D,PUM,PDZZ,ZWORK1)
   !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-  ZWORK1(IIJB:IIJE,1:IKT) = ZWORK1(IIJB:IIJE,1:IKT) * ZFLXZ(IIJB:IIJE,1:IKT)
+  ZWORK1(:,:) = ZWORK1(:,:) * ZFLXZ(:,:)
   !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
   CALL MXF_PHY(D,ZWORK1,ZWORK2)
   CALL MZF_PHY(D,ZWORK2,ZWORK3) 
   CALL LES_MEAN_SUBGRID_PHY(D,TLES,ZWORK3, TLES%X_LES_RES_ddxa_U_SBG_UaU )
   !
   !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-  ZWORK1(IIJB:IIJE,1:IKT) = ZCMFS * ZKEFF(IIJB:IIJE,1:IKT)
+  ZWORK1(:,:) = ZCMFS * ZKEFF(:,:)
   !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
   CALL LES_MEAN_SUBGRID_PHY(D,TLES, ZWORK1, TLES%X_LES_SUBGRID_Km )
   !
@@ -604,47 +604,47 @@ IF(TURBN%CTURBDIM=='3DIM') THEN
   ! Compute the source for the W wind component
                 ! used to compute the W source at the ground
   !$mnh_expand_array(JIJ=IIJB:IIJE)
-  ZFLXZ(IIJB:IIJE,IKA) = 2 * ZFLXZ(IIJB:IIJE,IKB) - ZFLXZ(IIJB:IIJE,IKB+IKL) ! extrapolation 
+  ZFLXZ(:,IKA) = 2 * ZFLXZ(:,IKB) - ZFLXZ(:,IKB+IKL) ! extrapolation 
   !$mnh_end_expand_array(JIJ=IIJB:IIJE)
  IF (OOCEAN) THEN
    !$mnh_expand_array(JIJ=IIJB:IIJE)
-   ZFLXZ(IIJB:IIJE,IKU) = 2 * ZFLXZ(IIJB:IIJE,IKE) - ZFLXZ(IIJB:IIJE,IKE-IKL) ! extrapolation
+   ZFLXZ(:,IKU) = 2 * ZFLXZ(:,IKE) - ZFLXZ(:,IKE-IKL) ! extrapolation
    !$mnh_end_expand_array(JIJ=IIJB:IIJE)
  END IF
   !
   CALL MXM_PHY(D,PRHODJ,ZWORK1)
   !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-  ZWORK1(IIJB:IIJE,1:IKT) = ZWORK1(IIJB:IIJE,1:IKT) / PDXX(IIJB:IIJE,1:IKT)
+  ZWORK1(:,:) = ZWORK1(:,:) / PDXX(:,:)
   !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
   CALL MZM_PHY(D,ZWORK1,ZWORK2)
   !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-  ZWORK2(IIJB:IIJE,1:IKT) = ZWORK2(IIJB:IIJE,1:IKT) * ZFLXZ(IIJB:IIJE,1:IKT)
+  ZWORK2(:,:) = ZWORK2(:,:) * ZFLXZ(:,:)
   !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
   CALL DXF_PHY(D,ZWORK2,ZWORK1)
   !
   IF (.NOT. OFLAT) THEN
     !
     !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-    ZWORK2(IIJB:IIJE,1:IKT) = ZFLXZ(IIJB:IIJE,1:IKT)*PDZX(IIJB:IIJE,1:IKT)
+    ZWORK2(:,:) = ZFLXZ(:,:)*PDZX(:,:)
     !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
     CALL MZF_PHY(D,ZWORK2,ZWORK3)
     !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-    ZWORK3(IIJB:IIJE,1:IKT) = ZWORK3(IIJB:IIJE,1:IKT) / PDXX(IIJB:IIJE,1:IKT)
+    ZWORK3(:,:) = ZWORK3(:,:) / PDXX(:,:)
     !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
     CALL MXF_PHY(D,ZWORK3,ZWORK2)
     CALL MZF_PHY(D,PDZZ,ZWORK3)
     !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-    ZWORK3(IIJB:IIJE,1:IKT) = PRHODJ(IIJB:IIJE,1:IKT) &
-                                             / ZWORK3(IIJB:IIJE,1:IKT) * ZWORK2(IIJB:IIJE,1:IKT)
+    ZWORK3(:,:) = PRHODJ(:,:) &
+                                             / ZWORK3(:,:) * ZWORK2(:,:)
     !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
     CALL DZM_PHY(D,ZWORK3,ZWORK2)
     !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-    PRWS(IIJB:IIJE,1:IKT) = PRWS(IIJB:IIJE,1:IKT) - ZWORK1(IIJB:IIJE,1:IKT) &
-                                  + ZWORK2(IIJB:IIJE,1:IKT)
+    PRWS(:,:) = PRWS(:,:) - ZWORK1(:,:) &
+                                  + ZWORK2(:,:)
     !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
   ELSE
     !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-    PRWS(IIJB:IIJE,1:IKT)= PRWS(IIJB:IIJE,1:IKT) - ZWORK1(IIJB:IIJE,1:IKT)
+    PRWS(:,:)= PRWS(:,:) - ZWORK1(:,:)
     !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
   END IF
   !
@@ -652,12 +652,12 @@ IF(TURBN%CTURBDIM=='3DIM') THEN
   !
   CALL GX_W_UW_PHY(D,OFLAT,PWM,PDXX,PDZZ,PDZX, ZWORK1)
   !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-  ZWORK1(IIJB:IIJE,1:IKT) = ZWORK1(IIJB:IIJE,1:IKT) * ZFLXZ(IIJB:IIJE,1:IKT)
+  ZWORK1(:,:) = ZWORK1(:,:) * ZFLXZ(:,:)
   !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
   CALL MXF_PHY(D,ZWORK1,ZWORK2)
   CALL MZF_PHY(D,ZWORK2,ZWORK3)
   !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-  ZA(IIJB:IIJE,1:IKT) = -ZWORK3(IIJB:IIJE,1:IKT)
+  ZA(:,:) = -ZWORK3(:,:)
   !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
   !
   ! Special cases near surface
@@ -666,36 +666,36 @@ IF(TURBN%CTURBDIM=='3DIM') THEN
     ! evaluate the dynamic production at w(IKE) in PDP(IKE)
     !
     !$mnh_expand_array(JIJ=IIJB:IIJE)
-    ZWORK31D(IIJB:IIJE) = - ZFLXZ(IIJB:IIJE,IKE) *  ZWORK1(IIJB:IIJE,IKE) &
-                            / (0.5*(PDXX(IIJB:IIJE,IKE-IKL)+PDXX(IIJB:IIJE,IKE)))
+    ZWORK31D(:) = - ZFLXZ(:,IKE) *  ZWORK1(:,IKE) &
+                            / (0.5*(PDXX(:,IKE-IKL)+PDXX(:,IKE)))
     !$mnh_end_expand_array(JIJ=IIJB:IIJE)
     CALL MXF2D_PHY(D,ZWORK31D,ZWORK41D)
-    ZA(IIJB:IIJE,IKE) = ZWORK41D(IIJB:IIJE)
+    ZA(:,IKE) = ZWORK41D(:)
   !
   ELSE !Atmosphere
     ! evaluate the dynamic production at w(IKB+IKL) in PDP(IKB)
     !
     !$mnh_expand_array(JIJ=IIJB:IIJE)
-    ZWORK21D(IIJB:IIJE) = (PWM(IIJB:IIJE,IKB+2*IKL)-PWM(IIJB:IIJE,IKB+IKL)) &
-                          / (PDZZ(IIJB:IIJE,IKB+2*IKL)+PDZZ(IIJB:IIJE,IKB+IKL))       &
-                          + (PWM(IIJB:IIJE,IKB+IKL)-PWM(IIJB:IIJE,IKB))                       &
-                          / (PDZZ(IIJB:IIJE,IKB+IKL)+PDZZ(IIJB:IIJE,IKB)) 
+    ZWORK21D(:) = (PWM(:,IKB+2*IKL)-PWM(:,IKB+IKL)) &
+                          / (PDZZ(:,IKB+2*IKL)+PDZZ(:,IKB+IKL))       &
+                          + (PWM(:,IKB+IKL)-PWM(:,IKB))                       &
+                          / (PDZZ(:,IKB+IKL)+PDZZ(:,IKB)) 
     !$mnh_end_expand_array(JIJ=IIJB:IIJE)
     !
     CALL MXM2D_PHY(D,ZWORK21D,ZWORK51D)
     !$mnh_expand_array(JIJ=IIJB:IIJE)
-    ZWORK31D(IIJB:IIJE) = - ZFLXZ(IIJB:IIJE,IKB+IKL) &
-                                      * ( ZWORK1(IIJB:IIJE,IKB+IKL) - ZWORK51D(IIJB:IIJE) &
-                                      *   PDZX(IIJB:IIJE,IKB+IKL) ) &
-                                      / (0.5*(PDXX(IIJB:IIJE,IKB+IKL)+PDXX(IIJB:IIJE,IKB)))
+    ZWORK31D(:) = - ZFLXZ(:,IKB+IKL) &
+                                      * ( ZWORK1(:,IKB+IKL) - ZWORK51D(:) &
+                                      *   PDZX(:,IKB+IKL) ) &
+                                      / (0.5*(PDXX(:,IKB+IKL)+PDXX(:,IKB)))
     !$mnh_end_expand_array(JIJ=IIJB:IIJE)
     CALL MXF2D_PHY(D,ZWORK31D,ZWORK41D)
-    ZA(IIJB:IIJE,IKB) = ZWORK41D(IIJB:IIJE)
+    ZA(:,IKB) = ZWORK41D(:)
     !
   END IF
   !
   !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-  PDP(IIJB:IIJE,1:IKT)=PDP(IIJB:IIJE,1:IKT)+ZA(IIJB:IIJE,1:IKT)
+  PDP(:,:)=PDP(:,:)+ZA(:,:)
   !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
   !
   ! Storage in the LES configuration
@@ -705,7 +705,7 @@ IF(TURBN%CTURBDIM=='3DIM') THEN
     !
     CALL GX_W_UW_PHY(D,OFLAT,PWM,PDXX,PDZZ,PDZX,ZWORK1)
     !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-    ZWORK1(IIJB:IIJE,1:IKT) = ZWORK1(IIJB:IIJE,1:IKT)*ZFLXZ(IIJB:IIJE,1:IKT)
+    ZWORK1(:,:) = ZWORK1(:,:)*ZFLXZ(:,:)
     !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
     CALL MXF_PHY(D,ZWORK1,ZWORK2)
     CALL MZF_PHY(D,ZWORK2,ZWORK1)
@@ -714,7 +714,7 @@ IF(TURBN%CTURBDIM=='3DIM') THEN
     CALL GX_M_U_PHY(D,OFLAT,PTHLM,PDXX,PDZZ,PDZX,ZWORK1)
     CALL MZF_PHY(D,ZFLXZ,ZWORK2)
     !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-    ZWORK2(IIJB:IIJE,1:IKT) = ZWORK2(IIJB:IIJE,1:IKT) * ZWORK1(IIJB:IIJE,1:IKT)
+    ZWORK2(:,:) = ZWORK2(:,:) * ZWORK1(:,:)
     !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
     CALL MXF_PHY(D,ZWORK2,ZWORK1)
     CALL LES_MEAN_SUBGRID_PHY(D,TLES,ZWORK1, TLES%X_LES_RES_ddxa_Thl_SBG_UaW )
@@ -723,7 +723,7 @@ IF(TURBN%CTURBDIM=='3DIM') THEN
       CALL GX_U_M_PHY(D,OFLAT,PRM(:,:,1),PDXX,PDZZ,PDZX,ZWORK1)
       CALL MZF_PHY(D,ZFLXZ,ZWORK2)
       !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-      ZWORK1(IIJB:IIJE,1:IKT) = ZWORK1(IIJB:IIJE,1:IKT) * ZWORK2(IIJB:IIJE,1:IKT)
+      ZWORK1(:,:) = ZWORK1(:,:) * ZWORK2(:,:)
       !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
       CALL MXF_PHY(D,ZWORK1,ZWORK2)
       CALL LES_MEAN_SUBGRID_PHY(D,TLES,ZWORK2,TLES%X_LES_RES_ddxa_Rt_SBG_UaW )
@@ -732,7 +732,7 @@ IF(TURBN%CTURBDIM=='3DIM') THEN
       CALL GX_U_M_PHY(D,OFLAT,PSVM(:,:,JSV),PDXX,PDZZ,PDZX,ZWORK1)
       CALL MZF_PHY(D,ZFLXZ,ZWORK2)
       !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-      ZWORK1(IIJB:IIJE,1:IKT) = ZWORK1(IIJB:IIJE,1:IKT) * ZWORK2(IIJB:IIJE,1:IKT)
+      ZWORK1(:,:) = ZWORK1(:,:) * ZWORK2(:,:)
       !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
       CALL MXF_PHY(D,ZWORK1,ZWORK2)
       CALL LES_MEAN_SUBGRID_PHY(D,TLES,ZWORK2,TLES%X_LES_RES_ddxa_Sv_SBG_UaW(:,:,:,JSV) )
@@ -757,8 +757,8 @@ CALL MYM_PHY(D,PDZZ,ZWORK2)
 CALL MZM_PHY(D,PRHODJ,ZWORK3)
 CALL MYM_PHY(D,ZWORK3,ZWORK4)
 !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-ZA(IIJB:IIJE,1:IKT) = -PTSTEP * ZCMFS * ZWORK1(IIJB:IIJE,1:IKT)* ZWORK4(IIJB:IIJE,1:IKT) & 
-                              / ZWORK2(IIJB:IIJE,1:IKT)**2
+ZA(:,:) = -PTSTEP * ZCMFS * ZWORK1(:,:)* ZWORK4(:,:) & 
+                              / ZWORK2(:,:)**2
 !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 !
 !
@@ -767,77 +767,77 @@ ZA(IIJB:IIJE,1:IKT) = -PTSTEP * ZCMFS * ZWORK1(IIJB:IIJE,1:IKT)* ZWORK4(IIJB:IIJ
 ! compute the coefficient between the vertical flux and the 2 components of the
 ! wind following the slope
 !$mnh_expand_array(JIJ=IIJB:IIJE)
-ZCOEFFLXU(IIJB:IIJE) = PCDUEFF(IIJB:IIJE) * (PDIRCOSZW(IIJB:IIJE)**2 - ZDIRSINZW(IIJB:IIJE)**2) &
-                                   * PSINSLOPE(IIJB:IIJE)
-ZCOEFFLXV(IIJB:IIJE) = PCDUEFF(IIJB:IIJE) * PDIRCOSZW(IIJB:IIJE) * PCOSSLOPE(IIJB:IIJE)
+ZCOEFFLXU(:) = PCDUEFF(:) * (PDIRCOSZW(:)**2 - ZDIRSINZW(:)**2) &
+                                   * PSINSLOPE(:)
+ZCOEFFLXV(:) = PCDUEFF(:) * PDIRCOSZW(:) * PCOSSLOPE(:)
 
 ! prepare the implicit scheme coefficients for the surface flux
-ZCOEFS(IIJB:IIJE)=  ZCOEFFLXU(IIJB:IIJE) * PSINSLOPE(IIJB:IIJE) * PDIRCOSZW(IIJB:IIJE)  &
-               +ZCOEFFLXV(IIJB:IIJE) * PCOSSLOPE(IIJB:IIJE)
+ZCOEFS(:)=  ZCOEFFLXU(:) * PSINSLOPE(:) * PDIRCOSZW(:)  &
+               +ZCOEFFLXV(:) * PCOSSLOPE(:)
 !$mnh_end_expand_array(JIJ=IIJB:IIJE)
 !
 ! average this flux to be located at the V,W vorticity point
 !$mnh_expand_array(JIJ=IIJB:IIJE)
-ZWORK11D(IIJB:IIJE)=ZCOEFS(IIJB:IIJE) / PDZZ(IIJB:IIJE,IKB) 
+ZWORK11D(:)=ZCOEFS(:) / PDZZ(:,IKB) 
 !$mnh_end_expand_array(JIJ=IIJB:IIJE)
 CALL MYM2D_PHY(D,ZWORK11D,ZCOEFS)
 !
 ! No flux in SOURCE TERM NULL OUTSIDE BC 
-ZSOURCE(IIJB:IIJE,IKB+1:IKE-1) = 0.
+ZSOURCE(:,IKB+1:IKE-1) = 0.
 ! Surface case
 CALL MYM_PHY(D,PRHODJ,ZWORK1)
 IF (OOCEAN) THEN ! Ocean case
-  ZCOEFFLXU(IIJB:IIJE) = PCDUEFF(IIJB:IIJE)
-  ZCOEFFLXV(IIJB:IIJE) = PCDUEFF(IIJB:IIJE)
-  ZCOEFS(IIJB:IIJE)=ZCOEFFLXU(IIJB:IIJE)
+  ZCOEFFLXU(:) = PCDUEFF(:)
+  ZCOEFFLXV(:) = PCDUEFF(:)
+  ZCOEFS(:)=ZCOEFFLXU(:)
   ! average this flux to be located at the U,W vorticity point
   !$mnh_expand_array(JIJ=IIJB:IIJE)  
-  ZWORK11D(IIJB:IIJE) = ZCOEFS(IIJB:IIJE) / PDZZ(IIJB:IIJE,IKE)
+  ZWORK11D(:) = ZCOEFS(:) / PDZZ(:,IKE)
   !$mnh_end_expand_array(JIJ=IIJB:IIJE)  
   CALL MYM2D_PHY(D,ZWORK11D,ZCOEFS)
   !
-  ZWORK11D(IIJB:IIJE) = ZFLUXSFCV(IIJB:IIJE) / PDZZ(IIJB:IIJE,IKE)
+  ZWORK11D(:) = ZFLUXSFCV(:) / PDZZ(:,IKE)
   CALL MYM2D_PHY(D,ZWORK11D,ZWORK21D)
   !
   !$mnh_expand_array(JIJ=IIJB:IIJE)
-    ZSOURCE(IIJB:IIJE,IKE) = ZWORK21D(IIJB:IIJE) &
-        *0.5 * ( 1. + ZWORK1(IIJB:IIJE,IKU) / ZWORK1(IIJB:IIJE,IKE))
+    ZSOURCE(:,IKE) = ZWORK21D(:) &
+        *0.5 * ( 1. + ZWORK1(:,IKU) / ZWORK1(:,IKE))
   !$mnh_end_expand_array(JIJ=IIJB:IIJE)
   !No flux at the ocean domain bottom
-  ZSOURCE(IIJB:IIJE,IKB) = 0.
+  ZSOURCE(:,IKB) = 0.
 !
 ELSE ! Atmos case
 !
   !$mnh_expand_array(JIJ=IIJB:IIJE)
-  ZWORK31D(IIJB:IIJE) = ZCOEFFLXU(IIJB:IIJE) / PDZZ(IIJB:IIJE,IKB) &
-            *ZUSLOPEM(IIJB:IIJE)                                   &
-            +ZCOEFFLXV(IIJB:IIJE) / PDZZ(IIJB:IIJE,IKB)            &
-            *ZVSLOPEM(IIJB:IIJE) 
+  ZWORK31D(:) = ZCOEFFLXU(:) / PDZZ(:,IKB) &
+            *ZUSLOPEM(:)                                   &
+            +ZCOEFFLXV(:) / PDZZ(:,IKB)            &
+            *ZVSLOPEM(:) 
   !$mnh_end_expand_array(JIJ=IIJB:IIJE)
   CALL MYM2D_PHY(D,ZWORK31D,ZWORK61D)
   !
   ! compute the explicit tangential flux at the W point
   !$mnh_expand_array(JIJ=IIJB:IIJE)
-  ZSOURCE(IIJB:IIJE,IKB) =                                                                    &
-    PTAU11M(IIJB:IIJE) * PSINSLOPE(IIJB:IIJE) * PDIRCOSZW(IIJB:IIJE) * ZDIRSINZW(IIJB:IIJE)   &
-   +PTAU12M(IIJB:IIJE) * PCOSSLOPE(IIJB:IIJE) * ZDIRSINZW(IIJB:IIJE)                          &
-   -PTAU33M(IIJB:IIJE) * PSINSLOPE(IIJB:IIJE) * ZDIRSINZW(IIJB:IIJE) * PDIRCOSZW(IIJB:IIJE) 
+  ZSOURCE(:,IKB) =                                                                    &
+    PTAU11M(:) * PSINSLOPE(:) * PDIRCOSZW(:) * ZDIRSINZW(:)   &
+   +PTAU12M(:) * PCOSSLOPE(:) * ZDIRSINZW(:)                          &
+   -PTAU33M(:) * PSINSLOPE(:) * ZDIRSINZW(:) * PDIRCOSZW(:) 
   !
-  ZWORK31D(IIJB:IIJE) = ZSOURCE(IIJB:IIJE,IKB)/PDZZ(IIJB:IIJE,IKB)
+  ZWORK31D(:) = ZSOURCE(:,IKB)/PDZZ(:,IKB)
   !$mnh_end_expand_array(JIJ=IIJB:IIJE)
   CALL MYM2D_PHY(D,ZWORK31D,ZWORK51D)
 !
   ! add the vertical part or the surface flux at the V,W vorticity point
   !$mnh_expand_array(JIJ=IIJB:IIJE)
-  ZSOURCE(IIJB:IIJE,IKB) =                                      &
-  (  ZWORK51D(IIJB:IIJE)                                        &
-   + ZWORK61D(IIJB:IIJE)                                        &
-   - ZCOEFS(IIJB:IIJE) * PVM(IIJB:IIJE,IKB) * TURBN%XIMPL             &
-  ) * 0.5 * ( 1. + ZWORK1(IIJB:IIJE,IKA) / ZWORK1(IIJB:IIJE,IKB) )
+  ZSOURCE(:,IKB) =                                      &
+  (  ZWORK51D(:)                                        &
+   + ZWORK61D(:)                                        &
+   - ZCOEFS(:) * PVM(:,IKB) * TURBN%XIMPL             &
+  ) * 0.5 * ( 1. + ZWORK1(:,IKA) / ZWORK1(:,IKB) )
   !$mnh_end_expand_array(JIJ=IIJB:IIJE)
 !
   !No flux at the atmosphere top
-  ZSOURCE(IIJB:IIJE,IKE) = 0.
+  ZSOURCE(:,IKE) = 0.
 ENDIF ! End of Ocean or Atmospher Cases
 ! 
 !  Obtention of the split V at t+ deltat 
@@ -849,33 +849,33 @@ CALL TRIDIAG_WIND(D,PVM,ZA,ZCOEFS,PTSTEP,PEXPL,TURBN%XIMPL,  &
 CALL MYM_PHY(D,PRHODJ,ZWORK1)
 CALL MYM_PHY(D,ZKEFF,ZWORK2)
 !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-ZWORK3(IIJB:IIJE,1:IKT)=TURBN%XIMPL*ZRES(IIJB:IIJE,1:IKT) + PEXPL*PVM(IIJB:IIJE,1:IKT)
+ZWORK3(:,:)=TURBN%XIMPL*ZRES(:,:) + PEXPL*PVM(:,:)
 !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 CALL DZM_PHY(D,ZWORK3,ZWORK4)
 CALL MYM_PHY(D,PDZZ,ZWORK5)
 !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-PRVS(IIJB:IIJE,1:IKT) = PRVS(IIJB:IIJE,1:IKT)+ZWORK1(IIJB:IIJE,1:IKT)*(ZRES(IIJB:IIJE,1:IKT)& 
-                               - PVM(IIJB:IIJE,1:IKT))/PTSTEP
+PRVS(:,:) = PRVS(:,:)+ZWORK1(:,:)*(ZRES(:,:)& 
+                               - PVM(:,:))/PTSTEP
 !
 !
 !*       6.2  Complete 1D dynamic Production
 !
 !  vertical flux of the V wind component
 !
-ZFLXZ(IIJB:IIJE,1:IKT)   = -ZCMFS * ZWORK2(IIJB:IIJE,1:IKT) * ZWORK4(IIJB:IIJE,1:IKT) &
-                                   / ZWORK5(IIJB:IIJE,1:IKT)
+ZFLXZ(:,:)   = -ZCMFS * ZWORK2(:,:) * ZWORK4(:,:) &
+                                   / ZWORK5(:,:)
 !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 !
 IF (OOCEAN) THEN
-  ZFLXZ(IIJB:IIJE,IKE+1)  = ZFLUXSFCV(IIJB:IIJE)
+  ZFLXZ(:,IKE+1)  = ZFLUXSFCV(:)
 ELSE
   !$mnh_expand_array(JIJ=IIJB:IIJE)
-  ZFLXZ(IIJB:IIJE,IKB)   =   ZWORK5(IIJB:IIJE,IKB)  *                &
-    ( ZSOURCE(IIJB:IIJE,IKB)                                         &
-     +ZCOEFS(IIJB:IIJE) * ZRES(IIJB:IIJE,IKB) * TURBN%XIMPL                &
-    ) / 0.5 / ( 1. + ZWORK1(IIJB:IIJE,IKA) / ZWORK1(IIJB:IIJE,IKB) )
+  ZFLXZ(:,IKB)   =   ZWORK5(:,IKB)  *                &
+    ( ZSOURCE(:,IKB)                                         &
+     +ZCOEFS(:) * ZRES(:,IKB) * TURBN%XIMPL                &
+    ) / 0.5 / ( 1. + ZWORK1(:,IKA) / ZWORK1(:,IKB) )
   !
-  ZFLXZ(IIJB:IIJE,IKA) = ZFLXZ(IIJB:IIJE,IKB)
+  ZFLXZ(:,IKA) = ZFLXZ(:,IKB)
   !$mnh_end_expand_array(JIJ=IIJB:IIJE)
 END IF
 !
@@ -897,19 +897,19 @@ END IF
 !
 ! second part of total momentum flux
 !
-PWV(IIJB:IIJE,1:IKT) = ZFLXZ(IIJB:IIJE,1:IKT)
+PWV(:,:) = ZFLXZ(:,:)
 !
 !  Contribution to the TKE dynamical production 
 !    computed at mass point
 !
 CALL GZ_V_VW_PHY(D,PVM,PDZZ,ZWORK1)
 !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-ZWORK2(IIJB:IIJE,1:IKT) = ZFLXZ(IIJB:IIJE,1:IKT) * ZWORK1(IIJB:IIJE,1:IKT)
+ZWORK2(:,:) = ZFLXZ(:,:) * ZWORK1(:,:)
 !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 CALL MYF_PHY(D,ZWORK2,ZWORK3)
 CALL MZF_PHY(D,ZWORK3,ZWORK4)
 !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-ZA(IIJB:IIJE,1:IKT) = -ZWORK4(IIJB:IIJE,1:IKT)
+ZA(:,:) = -ZWORK4(:,:)
 !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 !
 ! Special cases at surface
@@ -918,28 +918,28 @@ IF (OOCEAN) THEN
   ! evaluate the dynamic production at w(IKE) in PDP(IKE)
   ! before extrapolation done in routine tke_eps_source
   !$mnh_expand_array(JIJ=IIJB:IIJE)
-  ZWORK2(IIJB:IIJE,IKE) = ZFLXZ(IIJB:IIJE,IKE) * (PVM(IIJB:IIJE,IKE)-PVM(IIJB:IIJE,IKE-IKL))  &
-                         / ZWORK1(IIJB:IIJE,IKE-IKL)
+  ZWORK2(:,IKE) = ZFLXZ(:,IKE) * (PVM(:,IKE)-PVM(:,IKE-IKL))  &
+                         / ZWORK1(:,IKE-IKL)
   !$mnh_end_expand_array(JIJ=IIJB:IIJE)
   CALL MYF_PHY(D,ZWORK2,ZWORK3)
   !$mnh_expand_array(JIJ=IIJB:IIJE)
-  ZA(IIJB:IIJE,IKE) = -ZWORK3(IIJB:IIJE,IKE)
+  ZA(:,IKE) = -ZWORK3(:,IKE)
   !$mnh_end_expand_array(JIJ=IIJB:IIJE)
 !
 ELSE ! Atmosphere
   ! evaluate the dynamic production at w(IKB+IKL) in PDP(IKB)
   !$mnh_expand_array(JIJ=IIJB:IIJE)
-  ZWORK2(IIJB:IIJE,IKB) = ZFLXZ(IIJB:IIJE,IKB+IKL) * (PVM(IIJB:IIJE,IKB+IKL)-PVM(IIJB:IIJE,IKB))  &
-                           / ZWORK1(IIJB:IIJE,IKB+IKL)
+  ZWORK2(:,IKB) = ZFLXZ(:,IKB+IKL) * (PVM(:,IKB+IKL)-PVM(:,IKB))  &
+                           / ZWORK1(:,IKB+IKL)
   !$mnh_end_expand_array(JIJ=IIJB:IIJE)
   CALL MYF_PHY(D,ZWORK2,ZWORK3)
   !$mnh_expand_array(JIJ=IIJB:IIJE)
-  ZA(IIJB:IIJE,IKB) = -ZWORK3(IIJB:IIJE,IKB)
+  ZA(:,IKB) = -ZWORK3(:,IKB)
   !$mnh_end_expand_array(JIJ=IIJB:IIJE)
 END IF
 !
 !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-PDP(IIJB:IIJE,1:IKT)=PDP(IIJB:IIJE,1:IKT)+ZA(IIJB:IIJE,1:IKT)
+PDP(:,:)=PDP(:,:)+ZA(:,:)
 !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 !
 ! Storage in the LES configuration
@@ -953,7 +953,7 @@ IF (TLES%LLES_CALL) THEN
   !
   CALL GZ_V_VW_PHY(D,PVM,PDZZ,ZWORK1)
   !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-  ZWORK1(IIJB:IIJE,1:IKT) = ZWORK1(IIJB:IIJE,1:IKT) * ZFLXZ(IIJB:IIJE,1:IKT)
+  ZWORK1(:,:) = ZWORK1(:,:) * ZFLXZ(:,:)
   !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
   CALL MYF_PHY(D,ZWORK1,ZWORK2)
   CALL MZF_PHY(D,ZWORK2,ZWORK1)
@@ -970,22 +970,22 @@ IF(TURBN%CTURBDIM=='3DIM') THEN
   ! Compute the source for the W wind component
   IF (OOCEAN) THEN
     !$mnh_expand_array(JIJ=IIJB:IIJE)
-    ZFLXZ(IIJB:IIJE,IKE+IKL) = 2 * ZFLXZ(IIJB:IIJE,IKE) - ZFLXZ(IIJB:IIJE,IKE-IKL) ! extrapolation 
+    ZFLXZ(:,IKE+IKL) = 2 * ZFLXZ(:,IKE) - ZFLXZ(:,IKE-IKL) ! extrapolation 
     !$mnh_end_expand_array(JIJ=IIJB:IIJE)
   ELSE
     !$mnh_expand_array(JIJ=IIJB:IIJE)
-    ZFLXZ(IIJB:IIJE,IKA) = 2 * ZFLXZ(IIJB:IIJE,IKB) - ZFLXZ(IIJB:IIJE,IKB+IKL) ! extrapolation
+    ZFLXZ(:,IKA) = 2 * ZFLXZ(:,IKB) - ZFLXZ(:,IKB+IKL) ! extrapolation
     !$mnh_end_expand_array(JIJ=IIJB:IIJE)
   END IF
   !
   IF (.NOT. O2D) THEN
     CALL MYM_PHY(D,PRHODJ,ZWORK1)
     !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-    ZWORK1(IIJB:IIJE,1:IKT) = ZWORK1(IIJB:IIJE,1:IKT) / PDYY(IIJB:IIJE,1:IKT)
+    ZWORK1(:,:) = ZWORK1(:,:) / PDYY(:,:)
     !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
     CALL MZM_PHY(D,ZWORK1,ZWORK2)
     !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-    ZWORK2(IIJB:IIJE,1:IKT) = ZWORK2(IIJB:IIJE,1:IKT) * ZFLXZ(IIJB:IIJE,1:IKT)
+    ZWORK2(:,:) = ZWORK2(:,:) * ZFLXZ(:,:)
     !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
     CALL DYF_PHY(D,ZWORK2,ZWORK1)
     !
@@ -993,27 +993,27 @@ IF(TURBN%CTURBDIM=='3DIM') THEN
     IF (.NOT. OFLAT) THEN
       CALL MZF_PHY(D,PDZZ,ZWORK3)
       !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-      ZWORK2(IIJB:IIJE,1:IKT) = ZFLXZ(IIJB:IIJE,1:IKT) * PDZY(IIJB:IIJE,1:IKT)
+      ZWORK2(:,:) = ZFLXZ(:,:) * PDZY(:,:)
       !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)      
       CALL MZF_PHY(D,ZWORK2,ZWORK4)
       !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)      
-      ZWORK4(IIJB:IIJE,1:IKT) = ZWORK4(IIJB:IIJE,1:IKT) / PDYY(IIJB:IIJE,1:IKT)
+      ZWORK4(:,:) = ZWORK4(:,:) / PDYY(:,:)
       !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)      
       CALL MYF_PHY(D,ZWORK4,ZWORK2)
       !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)      
-      ZWORK3(IIJB:IIJE,1:IKT) = PRHODJ(IIJB:IIJE,1:IKT) / ZWORK3(IIJB:IIJE,1:IKT) &
-                                      * ZWORK2(IIJB:IIJE,1:IKT)
+      ZWORK3(:,:) = PRHODJ(:,:) / ZWORK3(:,:) &
+                                      * ZWORK2(:,:)
       !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)      
       CALL DZM_PHY(D,ZWORK3,ZWORK2)
       !ZWORK2 = DZM(PRHODJ / MZF(PDZZ) * MYF(MZF(ZFLXZ*PDZY) / PDYY ) )
       !
       !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-      PRWS(IIJB:IIJE,1:IKT) = PRWS(IIJB:IIJE,1:IKT) - ZWORK1(IIJB:IIJE,1:IKT) &
-                                    + ZWORK2(IIJB:IIJE,1:IKT)
+      PRWS(:,:) = PRWS(:,:) - ZWORK1(:,:) &
+                                    + ZWORK2(:,:)
       !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
     ELSE
       !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-      PRWS(IIJB:IIJE,1:IKT)= PRWS(IIJB:IIJE,1:IKT) - ZWORK1(IIJB:IIJE,1:IKT)
+      PRWS(:,:)= PRWS(:,:) - ZWORK1(:,:)
       !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
     END IF
   END IF
@@ -1022,12 +1022,12 @@ IF(TURBN%CTURBDIM=='3DIM') THEN
   IF (.NOT. O2D) THEN
     CALL GY_W_VW_PHY(D,OFLAT,PWM,PDYY,PDZZ,PDZY, ZWORK1)
     !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-    ZWORK1(IIJB:IIJE,1:IKT) = ZWORK1(IIJB:IIJE,1:IKT) * ZFLXZ(IIJB:IIJE,1:IKT)
+    ZWORK1(:,:) = ZWORK1(:,:) * ZFLXZ(:,:)
     !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
     CALL MYF_PHY(D,ZWORK1,ZWORK2)
     CALL MZF_PHY(D,ZWORK2,ZWORK3)
     !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-    ZA(IIJB:IIJE,1:IKT) = -ZWORK3(IIJB:IIJE,1:IKT)
+    ZA(:,:) = -ZWORK3(:,:)
     !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
     !
     CALL DYM_PHY(D,PWM,ZWORK1)
@@ -1035,34 +1035,34 @@ IF(TURBN%CTURBDIM=='3DIM') THEN
     IF (OOCEAN) THEN
       ! evaluate the dynamic production at w(IKE) and stored in PDP(IKE)
       !$mnh_expand_array(JIJ=IIJB:IIJE)
-      ZWORK31D(IIJB:IIJE) = - ZFLXZ(IIJB:IIJE,IKE) *  ZWORK1(IIJB:IIJE,IKE) &
-                            / (0.5*(PDYY(IIJB:IIJE,IKE-IKL)+PDYY(IIJB:IIJE,IKE)))
+      ZWORK31D(:) = - ZFLXZ(:,IKE) *  ZWORK1(:,IKE) &
+                            / (0.5*(PDYY(:,IKE-IKL)+PDYY(:,IKE)))
       !$mnh_end_expand_array(JIJ=IIJB:IIJE)
       CALL MYF2D_PHY(D,ZWORK31D,ZWORK41D)
-      ZA(IIJB:IIJE,IKE) = ZWORK41D(IIJB:IIJE)
+      ZA(:,IKE) = ZWORK41D(:)
     ELSE ! Atmosphere
       ! evaluate the dynamic production at w(IKB+KKL) and stored in PDP(IKB)
       !$mnh_expand_array(JIJ=IIJB:IIJE)
-      ZWORK21D(IIJB:IIJE) = (PWM(IIJB:IIJE,IKB+2*IKL   )-PWM(IIJB:IIJE,IKB+IKL)) &
-                            / (PDZZ(IIJB:IIJE,IKB+2*IKL)+PDZZ(IIJB:IIJE,IKB+IKL))       &
-                            + (PWM(IIJB:IIJE,IKB+IKL)-PWM(IIJB:IIJE,IKB))                       &
-                            / (PDZZ(IIJB:IIJE,IKB+IKL)+PDZZ(IIJB:IIJE,IKB)) 
+      ZWORK21D(:) = (PWM(:,IKB+2*IKL   )-PWM(:,IKB+IKL)) &
+                            / (PDZZ(:,IKB+2*IKL)+PDZZ(:,IKB+IKL))       &
+                            + (PWM(:,IKB+IKL)-PWM(:,IKB))                       &
+                            / (PDZZ(:,IKB+IKL)+PDZZ(:,IKB)) 
       !$mnh_end_expand_array(JIJ=IIJB:IIJE)
       !
       CALL MYM2D_PHY(D,ZWORK21D,ZWORK51D)
       !$mnh_expand_array(JIJ=IIJB:IIJE)
-      ZWORK31D(IIJB:IIJE  ) = - ZFLXZ(IIJB:IIJE,IKB+IKL) &
-                                        * ( ZWORK1(IIJB:IIJE,IKB+IKL) - ZWORK51D(IIJB:IIJE  ) &
-                                        *   PDZY(IIJB:IIJE,IKB+IKL) ) &
-                                        / (0.5*(PDYY(IIJB:IIJE,IKB+IKL)+PDYY(IIJB:IIJE,IKB)))
+      ZWORK31D(:  ) = - ZFLXZ(:,IKB+IKL) &
+                                        * ( ZWORK1(:,IKB+IKL) - ZWORK51D(:  ) &
+                                        *   PDZY(:,IKB+IKL) ) &
+                                        / (0.5*(PDYY(:,IKB+IKL)+PDYY(:,IKB)))
       !$mnh_end_expand_array(JIJ=IIJB:IIJE)
       CALL MYF2D_PHY(D,ZWORK31D,ZWORK41D)
-      ZA(IIJB:IIJE,IKB) = ZWORK41D(IIJB:IIJE)
+      ZA(:,IKB) = ZWORK41D(:)
     !
     END IF
 !
     !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-    PDP(IIJB:IIJE,1:IKT)=PDP(IIJB:IIJE,1:IKT)+ZA(IIJB:IIJE,1:IKT)
+    PDP(:,:)=PDP(:,:)+ZA(:,:)
     !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
   !
   END IF
@@ -1074,7 +1074,7 @@ IF(TURBN%CTURBDIM=='3DIM') THEN
     !
     CALL GY_W_VW_PHY(D,OFLAT,PWM,PDYY,PDZZ,PDZY,ZWORK1)
     !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-    ZWORK1(IIJB:IIJE,1:IKT) = ZWORK1(IIJB:IIJE,1:IKT)*ZFLXZ(IIJB:IIJE,1:IKT)
+    ZWORK1(:,:) = ZWORK1(:,:)*ZFLXZ(:,:)
     !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
     CALL MYF_PHY(D,ZWORK1,ZWORK2)
     CALL MZF_PHY(D,ZWORK2,ZWORK1)
@@ -1083,7 +1083,7 @@ IF(TURBN%CTURBDIM=='3DIM') THEN
     CALL GY_M_V_PHY(D,OFLAT,PTHLM,PDYY,PDZZ,PDZY,ZWORK1)
     CALL MZF_PHY(D,ZFLXZ,ZWORK2)
     !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-    ZWORK2(IIJB:IIJE,1:IKT) = ZWORK2(IIJB:IIJE,1:IKT) * ZWORK1(IIJB:IIJE,1:IKT)
+    ZWORK2(:,:) = ZWORK2(:,:) * ZWORK1(:,:)
     !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
     CALL MYF_PHY(D,ZWORK2,ZWORK1)
     CALL LES_MEAN_SUBGRID_PHY(D,TLES,ZWORK1,TLES%X_LES_RES_ddxa_Thl_SBG_UaW , .TRUE. )
@@ -1092,7 +1092,7 @@ IF(TURBN%CTURBDIM=='3DIM') THEN
       CALL GY_V_M_PHY(D,OFLAT,PRM(:,:,1),PDYY,PDZZ,PDZY,ZWORK1)
       CALL MZF_PHY(D,ZFLXZ,ZWORK2)
       !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-      ZWORK1(IIJB:IIJE,1:IKT) = ZWORK1(IIJB:IIJE,1:IKT) * ZWORK2(IIJB:IIJE,1:IKT)
+      ZWORK1(:,:) = ZWORK1(:,:) * ZWORK2(:,:)
       !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
       CALL MYF_PHY(D,ZWORK1,ZWORK2)
       CALL LES_MEAN_SUBGRID_PHY(D,TLES,ZWORK2,TLES%X_LES_RES_ddxa_Rt_SBG_UaW , .TRUE. )
@@ -1113,8 +1113,8 @@ END IF
 IF ( TURBN%LTURB_FLX .AND. TPFILE%LOPENED .AND. TURBN%CTURBDIM == '1DIM') THEN
   CALL GZ_W_M_PHY(D,PWM,PDZZ,ZWORK1)
   !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-  ZFLXZ(IIJB:IIJE,1:IKT)= (2./3.) * PTKEM(IIJB:IIJE,1:IKT)                     &
-     -ZCMFS*PLM(IIJB:IIJE,1:IKT)*SQRT(PTKEM(IIJB:IIJE,1:IKT))*ZWORK1(IIJB:IIJE,1:IKT)
+  ZFLXZ(:,:)= (2./3.) * PTKEM(:,:)                     &
+     -ZCMFS*PLM(:,:)*SQRT(PTKEM(:,:))*ZWORK1(:,:)
   !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
   ! to be tested &
   !   +XCMFB*(4./3.)*PLM(:,:,:)/SQRT(PTKEM(:,:,:))*PTP(:,:,:)
diff --git a/src/PHYEX/turb/mode_turb_ver_sv_corr.f90 b/src/PHYEX/turb/mode_turb_ver_sv_corr.f90
index 64acbc7f83418a05b71b816b7d6cf9cb86b452fa..2f1dc8d9ac32d9ac2c56c338a897b55ee1426501 100644
--- a/src/PHYEX/turb/mode_turb_ver_sv_corr.f90
+++ b/src/PHYEX/turb/mode_turb_ver_sv_corr.f90
@@ -159,10 +159,10 @@ DO JSV=1,KSV
     CALL MZF_PHY(D,ZFLXZ,ZWORK2)
     CALL MZF_PHY(D,PWM,ZWORK3)
     !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-    ZFLXZ(IIJB:IIJE,1:IKT) =  PPSI_SV(IIJB:IIJE,1:IKT,JSV)*ZWORK1(IIJB:IIJE,1:IKT)**2
-    ZFLXZ(IIJB:IIJE,1:IKT) = ZCSV / ZCSVD * PLM(IIJB:IIJE,1:IKT) * PLEPS(IIJB:IIJE,1:IKT) * ZWORK2(IIJB:IIJE,1:IKT)
-    ZWORK1(IIJB:IIJE,1:IKT) = -2.*ZCSVD*SQRT(PTKEM(IIJB:IIJE,1:IKT))*ZFLXZ(IIJB:IIJE,1:IKT)/PLEPS(IIJB:IIJE,1:IKT)
-    ZWORK2(IIJB:IIJE,1:IKT) = ZWORK3(IIJB:IIJE,1:IKT)*ZFLXZ(IIJB:IIJE,1:IKT)
+    ZFLXZ(:,:) =  PPSI_SV(:,:,JSV)*ZWORK1(:,:)**2
+    ZFLXZ(:,:) = ZCSV / ZCSVD * PLM(:,:) * PLEPS(:,:) * ZWORK2(:,:)
+    ZWORK1(:,:) = -2.*ZCSVD*SQRT(PTKEM(:,:))*ZFLXZ(:,:)/PLEPS(:,:)
+    ZWORK2(:,:) = ZWORK3(:,:)*ZFLXZ(:,:)
     !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
     CALL LES_MEAN_SUBGRID_PHY(D,TLES,ZWORK1, TLES%X_LES_SUBGRID_DISS_Sv2(:,:,:,JSV) )
     CALL LES_MEAN_SUBGRID_PHY(D,TLES,ZWORK2, TLES%X_LES_RES_W_SBG_Sv2(:,:,:,JSV) )
@@ -178,15 +178,15 @@ DO JSV=1,KSV
     CALL GZ_M_W_PHY(D,PSVM(:,:,JSV),PDZZ,ZWORK2)
     !
     !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-    ZFLXZ(IIJB:IIJE,1:IKT)= ( CSTURB%XCSHF * PPHI3(IIJB:IIJE,1:IKT) + ZCSV * PPSI_SV(IIJB:IIJE,1:IKT,JSV) ) &
-                  *  ZWORK1(IIJB:IIJE,1:IKT) *  ZWORK2(IIJB:IIJE,1:IKT)
+    ZFLXZ(:,:)= ( CSTURB%XCSHF * PPHI3(:,:) + ZCSV * PPSI_SV(:,:,JSV) ) &
+                  *  ZWORK1(:,:) *  ZWORK2(:,:)
     !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
     !
     CALL MZF_PHY(D,ZFLXZ,ZWORK3)
     !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-    ZFLXZ(IIJB:IIJE,1:IKT)= PLM(IIJB:IIJE,1:IKT) * PLEPS(IIJB:IIJE,1:IKT) / (2.*ZCTSVD) * ZWORK3(IIJB:IIJE,1:IKT)
-    ZWORK1(IIJB:IIJE,1:IKT) = ZA(IIJB:IIJE,1:IKT)*ZFLXZ(IIJB:IIJE,1:IKT)
-    ZWORK2(IIJB:IIJE,1:IKT) = -CST%XG/PTHVREF(IIJB:IIJE,1:IKT)/3.*ZA(IIJB:IIJE,1:IKT)*ZFLXZ(IIJB:IIJE,1:IKT)    
+    ZFLXZ(:,:)= PLM(:,:) * PLEPS(:,:) / (2.*ZCTSVD) * ZWORK3(:,:)
+    ZWORK1(:,:) = ZA(:,:)*ZFLXZ(:,:)
+    ZWORK2(:,:) = -CST%XG/PTHVREF(:,:)/3.*ZA(:,:)*ZFLXZ(:,:)    
     !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
     !
     CALL LES_MEAN_SUBGRID_PHY(D,TLES, ZWORK1, TLES%X_LES_SUBGRID_SvThv(:,:,:,JSV) )
@@ -197,14 +197,14 @@ DO JSV=1,KSV
       !
       CALL GZ_M_W_PHY(D,PRM(:,:,1),PDZZ,ZWORK1)
       !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-      ZFLXZ(IIJB:IIJE,1:IKT)= ( ZCSV * PPSI3(IIJB:IIJE,1:IKT) + ZCSV * PPSI_SV(IIJB:IIJE,1:IKT,JSV) )  &
-                    *  ZWORK1(IIJB:IIJE,1:IKT) *  ZWORK2(IIJB:IIJE,1:IKT)
+      ZFLXZ(:,:)= ( ZCSV * PPSI3(:,:) + ZCSV * PPSI_SV(:,:,JSV) )  &
+                    *  ZWORK1(:,:) *  ZWORK2(:,:)
       !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
       CALL MZF_PHY(D,ZFLXZ,ZWORK3)
       !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-      ZFLXZ(IIJB:IIJE,1:IKT)= PLM(IIJB:IIJE,1:IKT) * PLEPS(IIJB:IIJE,1:IKT) / (2.*ZCQSVD) * ZWORK3(IIJB:IIJE,1:IKT)
-      ZWORK1(IIJB:IIJE,1:IKT) = ZA(IIJB:IIJE,1:IKT)*ZFLXZ(IIJB:IIJE,1:IKT)
-      ZWORK2(IIJB:IIJE,1:IKT) = -CST%XG/PTHVREF(IIJB:IIJE,1:IKT)/3.*ZA(IIJB:IIJE,1:IKT)*ZFLXZ(IIJB:IIJE,1:IKT)
+      ZFLXZ(:,:)= PLM(:,:) * PLEPS(:,:) / (2.*ZCQSVD) * ZWORK3(:,:)
+      ZWORK1(:,:) = ZA(:,:)*ZFLXZ(:,:)
+      ZWORK2(:,:) = -CST%XG/PTHVREF(:,:)/3.*ZA(:,:)*ZFLXZ(:,:)
       !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
       CALL LES_MEAN_SUBGRID_PHY(D,TLES, ZWORK1, TLES%X_LES_SUBGRID_SvThv(:,:,:,JSV) , .TRUE.)
       CALL LES_MEAN_SUBGRID_PHY(D,TLES, ZWORK2, TLES%X_LES_SUBGRID_SvPz(:,:,:,JSV), .TRUE.)
diff --git a/src/PHYEX/turb/mode_turb_ver_sv_flux.f90 b/src/PHYEX/turb/mode_turb_ver_sv_flux.f90
index 40a52e4ce77ea68335688a57bdc43324495a7207..1817fbb86c949a49ce427384ef054b4b04357786 100644
--- a/src/PHYEX/turb/mode_turb_ver_sv_flux.f90
+++ b/src/PHYEX/turb/mode_turb_ver_sv_flux.f90
@@ -326,11 +326,11 @@ IIJB=D%NIJB
 !
 IF (TURBN%LHARAT) THEN
   !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-  ZKEFF(IIJB:IIJE,1:IKT) =  PLM(IIJB:IIJE,1:IKT) * SQRT(PTKEM(IIJB:IIJE,1:IKT))
+  ZKEFF(:,:) =  PLM(:,:) * SQRT(PTKEM(:,:))
   !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 ELSE
   !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-  ZWORK1(IIJB:IIJE,1:IKT) = PLM(IIJB:IIJE,1:IKT)*SQRT(PTKEM(IIJB:IIJE,1:IKT))
+  ZWORK1(:,:) = PLM(:,:)*SQRT(PTKEM(:,:))
   !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
   CALL MZM_PHY(D,ZWORK1,ZKEFF)
 ENDIF
@@ -354,16 +354,16 @@ DO JSV=1,KSV
 ! Preparation of the arguments for TRIDIAG
     IF (TURBN%LHARAT) THEN
       !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)  
-      ZA(IIJB:IIJE,1:IKT) = -PTSTEP * ZKEFF(IIJB:IIJE,1:IKT) * ZMZMRHODJ(IIJB:IIJE,1:IKT) &
-                                   / PDZZ(IIJB:IIJE,1:IKT)**2
+      ZA(:,:) = -PTSTEP * ZKEFF(:,:) * ZMZMRHODJ(:,:) &
+                                   / PDZZ(:,:)**2
       !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
     ELSE
       !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-      ZA(IIJB:IIJE,1:IKT) = -PTSTEP*ZCSV*PPSI_SV(IIJB:IIJE,1:IKT,JSV) *   &
-           ZKEFF(IIJB:IIJE,1:IKT) * ZMZMRHODJ(IIJB:IIJE,1:IKT) / PDZZ(IIJB:IIJE,1:IKT)**2
+      ZA(:,:) = -PTSTEP*ZCSV*PPSI_SV(:,:,JSV) *   &
+           ZKEFF(:,:) * ZMZMRHODJ(:,:) / PDZZ(:,:)**2
       !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
     ENDIF
-  ZSOURCE(IIJB:IIJE,1:IKT) = 0.
+  ZSOURCE(:,:) = 0.
 !
 ! Compute the sources for the JSVth scalar variable
 
@@ -373,42 +373,42 @@ DO JSV=1,KSV
 ! is taken into account in the vertical part
   IF (TURBN%CTURBDIM=='3DIM') THEN
     !$mnh_expand_array(JIJ=IIJB:IIJE)
-    ZSOURCE(IIJB:IIJE,IKB) = (TURBN%XIMPL*PSFSVP(IIJB:IIJE,JSV) + PEXPL*PSFSVM(IIJB:IIJE,JSV)) / &
-                       PDZZ(IIJB:IIJE,IKB) * PDIRCOSZW(IIJB:IIJE)                    &
-                     * 0.5 * (1. + PRHODJ(IIJB:IIJE,IKA) / PRHODJ(IIJB:IIJE,IKB))
+    ZSOURCE(:,IKB) = (TURBN%XIMPL*PSFSVP(:,JSV) + PEXPL*PSFSVM(:,JSV)) / &
+                       PDZZ(:,IKB) * PDIRCOSZW(:)                    &
+                     * 0.5 * (1. + PRHODJ(:,IKA) / PRHODJ(:,IKB))
     !$mnh_end_expand_array(JIJ=IIJB:IIJE)
   ELSE
     !$mnh_expand_array(JIJ=IIJB:IIJE)
-    ZSOURCE(IIJB:IIJE,IKB) = (TURBN%XIMPL*PSFSVP(IIJB:IIJE,JSV) + PEXPL*PSFSVM(IIJB:IIJE,JSV)) / &
-                       PDZZ(IIJB:IIJE,IKB) / PDIRCOSZW(IIJB:IIJE)                    &
-                     * 0.5 * (1. + PRHODJ(IIJB:IIJE,IKA) / PRHODJ(IIJB:IIJE,IKB))
+    ZSOURCE(:,IKB) = (TURBN%XIMPL*PSFSVP(:,JSV) + PEXPL*PSFSVM(:,JSV)) / &
+                       PDZZ(:,IKB) / PDIRCOSZW(:)                    &
+                     * 0.5 * (1. + PRHODJ(:,IKA) / PRHODJ(:,IKB))
     !$mnh_end_expand_array(JIJ=IIJB:IIJE)
   END IF
-  ZSOURCE(IIJB:IIJE,IKTB+1:IKTE-1) = 0.
-  ZSOURCE(IIJB:IIJE,IKE) = 0.
+  ZSOURCE(:,IKTB+1:IKTE-1) = 0.
+  ZSOURCE(:,IKE) = 0.
 !
 ! Obtention of the split JSV scalar variable at t+ deltat
   CALL TRIDIAG(D,PSVM(:,:,JSV),ZA,PTSTEP,PEXPL,TURBN%XIMPL,PRHODJ,ZSOURCE,ZRES)
 !
 !  Compute the equivalent tendency for the JSV scalar variable
   !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-  PRSVS(IIJB:IIJE,1:IKT,JSV)= PRSVS(IIJB:IIJE,1:IKT,JSV)+    &
-                    PRHODJ(IIJB:IIJE,1:IKT)*(ZRES(IIJB:IIJE,1:IKT)-PSVM(IIJB:IIJE,1:IKT,JSV))/PTSTEP
+  PRSVS(:,:,JSV)= PRSVS(:,:,JSV)+    &
+                    PRHODJ(:,:)*(ZRES(:,:)-PSVM(:,:,JSV))/PTSTEP
   !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 !
   IF ( (TURBN%LTURB_FLX .AND. TPFILE%LOPENED) .OR. TLES%LLES_CALL ) THEN
     ! Diagnostic of the cartesian vertical flux
     !
     !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-    ZWORK1(IIJB:IIJE,1:IKT) = PLM(IIJB:IIJE,1:IKT)*SQRT(PTKEM(IIJB:IIJE,1:IKT))
-    ZWORK2(IIJB:IIJE,1:IKT) = TURBN%XIMPL*ZRES(IIJB:IIJE,1:IKT) + PEXPL*PSVM(IIJB:IIJE,1:IKT,JSV)
+    ZWORK1(:,:) = PLM(:,:)*SQRT(PTKEM(:,:))
+    ZWORK2(:,:) = TURBN%XIMPL*ZRES(:,:) + PEXPL*PSVM(:,:,JSV)
     !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
     CALL MZM_PHY(D,ZWORK1,ZWORK3)
     CALL DZM_PHY(D,ZWORK2,ZWORK4)
     !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-    ZFLXZ(IIJB:IIJE,1:IKT) = -ZCSV * PPSI_SV(IIJB:IIJE,1:IKT,JSV) * ZWORK3(IIJB:IIJE,1:IKT) & 
-                                    / PDZZ(IIJB:IIJE,1:IKT) * &
-                  ZWORK4(IIJB:IIJE,1:IKT)
+    ZFLXZ(:,:) = -ZCSV * PPSI_SV(:,:,JSV) * ZWORK3(:,:) & 
+                                    / PDZZ(:,:) * &
+                  ZWORK4(:,:)
     !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
     ! surface flux
     !* in 3DIM case, a part of the flux goes vertically, and another goes horizontally
@@ -417,31 +417,31 @@ DO JSV=1,KSV
     ! is taken into account in the vertical part
     IF (TURBN%CTURBDIM=='3DIM') THEN
       !$mnh_expand_array(JIJ=IIJB:IIJE)
-      ZFLXZ(IIJB:IIJE,IKB) = (TURBN%XIMPL*PSFSVP(IIJB:IIJE,JSV) + PEXPL*PSFSVM(IIJB:IIJE,JSV))  &
-                       * PDIRCOSZW(IIJB:IIJE)  
+      ZFLXZ(:,IKB) = (TURBN%XIMPL*PSFSVP(:,JSV) + PEXPL*PSFSVM(:,JSV))  &
+                       * PDIRCOSZW(:)  
       !$mnh_end_expand_array(JIJ=IIJB:IIJE)
     ELSE
       !$mnh_expand_array(JIJ=IIJB:IIJE)
-      ZFLXZ(IIJB:IIJE,IKB) = (TURBN%XIMPL*PSFSVP(IIJB:IIJE,JSV) + PEXPL*PSFSVM(IIJB:IIJE,JSV))  &
-                       / PDIRCOSZW(IIJB:IIJE)
+      ZFLXZ(:,IKB) = (TURBN%XIMPL*PSFSVP(:,JSV) + PEXPL*PSFSVM(:,JSV))  &
+                       / PDIRCOSZW(:)
      !$mnh_end_expand_array(JIJ=IIJB:IIJE)
     END IF
     ! extrapolates the flux under the ground so that the vertical average with
     ! the IKB flux gives the ground value
     !
     !$mnh_expand_array(JIJ=IIJB:IIJE)
-    ZFLXZ(IIJB:IIJE,IKA) = ZFLXZ(IIJB:IIJE,IKB)
+    ZFLXZ(:,IKA) = ZFLXZ(:,IKB)
     !$mnh_end_expand_array(JIJ=IIJB:IIJE)
 
     IF ( OFLYER ) THEN
       DO JK=IKTB+1,IKTE-1
         !$mnh_expand_array(JIJ=IIJB:IIJE)
-        PWSV(IIJB:IIJE,JK,JSV)=0.5*(ZFLXZ(IIJB:IIJE,JK)+ZFLXZ(IIJB:IIJE,JK+IKL))
+        PWSV(:,JK,JSV)=0.5*(ZFLXZ(:,JK)+ZFLXZ(:,JK+IKL))
         !$mnh_end_expand_array(JIJ=IIJB:IIJE)
       END DO
       !$mnh_expand_array(JIJ=IIJB:IIJE)
-      PWSV(IIJB:IIJE,IKB,JSV)=0.5*(ZFLXZ(IIJB:IIJE,IKB)+ZFLXZ(IIJB:IIJE,IKB+IKL))
-      PWSV(IIJB:IIJE,IKE,JSV)=PWSV(IIJB:IIJE,IKE-IKL,JSV)
+      PWSV(:,IKB,JSV)=0.5*(ZFLXZ(:,IKB)+ZFLXZ(:,IKB+IKL))
+      PWSV(:,IKE,JSV)=PWSV(:,IKE-IKL,JSV)
       !$mnh_end_expand_array(JIJ=IIJB:IIJE)
     END IF
  END IF
@@ -475,25 +475,25 @@ DO JSV=1,KSV
     !
     CALL GZ_W_M_PHY(D,PWM,PDZZ,ZWORK2)
     !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-    ZWORK3(IIJB:IIJE,1:IKT) = ZWORK2(IIJB:IIJE,1:IKT) * ZWORK1(IIJB:IIJE,1:IKT)
+    ZWORK3(:,:) = ZWORK2(:,:) * ZWORK1(:,:)
     !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
     CALL LES_MEAN_SUBGRID_PHY(D,TLES,ZWORK3, TLES%X_LES_RES_ddxa_W_SBG_UaSv(:,:,:,JSV) )
     !
     CALL GZ_M_W_PHY(D,PSVM(:,:,JSV),PDZZ,ZWORK1)
     !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-    ZWORK2(IIJB:IIJE,1:IKT) = ZWORK1(IIJB:IIJE,1:IKT) * ZFLXZ(IIJB:IIJE,1:IKT)
+    ZWORK2(:,:) = ZWORK1(:,:) * ZFLXZ(:,:)
     !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
     CALL MZF_PHY(D,ZWORK2,ZWORK3)
     CALL LES_MEAN_SUBGRID_PHY(D,TLES,ZWORK3, TLES%X_LES_RES_ddxa_Sv_SBG_UaSv(:,:,:,JSV) )
     !
     CALL MZF_PHY(D,ZFLXZ,ZWORK1)
     !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-    ZWORK2(IIJB:IIJE,1:IKT) = -ZCSVP*SQRT(PTKEM(IIJB:IIJE,1:IKT))/PLM(IIJB:IIJE,1:IKT)*ZWORK1(IIJB:IIJE,1:IKT)
+    ZWORK2(:,:) = -ZCSVP*SQRT(PTKEM(:,:))/PLM(:,:)*ZWORK1(:,:)
     !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
     CALL LES_MEAN_SUBGRID_PHY(D,TLES,ZWORK2, TLES%X_LES_SUBGRID_SvPz(:,:,:,JSV) )
     !
     !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-    ZWORK1(IIJB:IIJE,1:IKT) = PWM(IIJB:IIJE,1:IKT)*ZFLXZ(IIJB:IIJE,1:IKT)
+    ZWORK1(:,:) = PWM(:,:)*ZFLXZ(:,:)
     !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
     CALL MZF_PHY(D,ZWORK1,ZWORK2)
     CALL LES_MEAN_SUBGRID_PHY(D,TLES,ZWORK2, TLES%X_LES_RES_W_SBG_WSv(:,:,:,JSV) )
diff --git a/src/PHYEX/turb/mode_turb_ver_thermo_corr.f90 b/src/PHYEX/turb/mode_turb_ver_thermo_corr.f90
index 8a53e4917a552ea1eda3b790e8ee7dcc90a5887a..2ee5d5de45e9fe302c8fd4af1c058719b03aafcc 100644
--- a/src/PHYEX/turb/mode_turb_ver_thermo_corr.f90
+++ b/src/PHYEX/turb/mode_turb_ver_thermo_corr.f90
@@ -370,12 +370,12 @@ GUSERV = (KRR/=0)
 !  compute the coefficients for the uncentred gradient computation near the
 !  ground
 !$mnh_expand_array(JIJ=IIJB:IIJE)
-ZCOEFF(IIJB:IIJE,IKB+2*IKL)= - PDZZ(IIJB:IIJE,IKB+IKL) /      &
-       ( (PDZZ(IIJB:IIJE,IKB+2*IKL)+PDZZ(IIJB:IIJE,IKB+IKL)) * PDZZ(IIJB:IIJE,IKB+2*IKL) )
-ZCOEFF(IIJB:IIJE,IKB+IKL)=   (PDZZ(IIJB:IIJE,IKB+2*IKL)+PDZZ(IIJB:IIJE,IKB+IKL)) /      &
-       ( PDZZ(IIJB:IIJE,IKB+IKL) * PDZZ(IIJB:IIJE,IKB+2*IKL) )
-ZCOEFF(IIJB:IIJE,IKB)= - (PDZZ(IIJB:IIJE,IKB+2*IKL)+2.*PDZZ(IIJB:IIJE,IKB+IKL)) /      &
-       ( (PDZZ(IIJB:IIJE,IKB+2*IKL)+PDZZ(IIJB:IIJE,IKB+IKL)) * PDZZ(IIJB:IIJE,IKB+IKL) )
+ZCOEFF(:,IKB+2*IKL)= - PDZZ(:,IKB+IKL) /      &
+       ( (PDZZ(:,IKB+2*IKL)+PDZZ(:,IKB+IKL)) * PDZZ(:,IKB+2*IKL) )
+ZCOEFF(:,IKB+IKL)=   (PDZZ(:,IKB+2*IKL)+PDZZ(:,IKB+IKL)) /      &
+       ( PDZZ(:,IKB+IKL) * PDZZ(:,IKB+2*IKL) )
+ZCOEFF(:,IKB)= - (PDZZ(:,IKB+2*IKL)+2.*PDZZ(:,IKB+IKL)) /      &
+       ( (PDZZ(:,IKB+2*IKL)+PDZZ(:,IKB+IKL)) * PDZZ(:,IKB+IKL) )
 !$mnh_end_expand_array(JIJ=IIJB:IIJE)
 !
 !
@@ -390,16 +390,16 @@ IF (TURBN%LHARAT) THEN
   !  function MZF produces -999 for level IKU (82 for 80 levels)
   !  so put these to normal value as this level (82) is indeed calculated
   !$mnh_expand_array(JIJ=IIJB:IIJE)
-  PLMF(IIJB:IIJE,IKT)=0.001
-  PLEPSF(IIJB:IIJE,IKT)=0.001
+  PLMF(:,IKT)=0.001
+  PLEPSF(:,IKT)=0.001
   !$mnh_end_expand_array(JIJ=IIJB:IIJE)
   ! with energy cascade contribution 50MF term can be omitted
   !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-  ZKEFF(IIJB:IIJE,1:IKT) = PLM(IIJB:IIJE,1:IKT) * SQRT(PTKEM(IIJB:IIJE,1:IKT))
+  ZKEFF(:,:) = PLM(:,:) * SQRT(PTKEM(:,:))
   !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 ELSE
   !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-  ZWORK1(IIJB:IIJE,1:IKT) = PLM(IIJB:IIJE,1:IKT) * SQRT(PTKEM(IIJB:IIJE,1:IKT))
+  ZWORK1(:,:) = PLM(:,:) * SQRT(PTKEM(:,:))
   !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
   CALL MZM_PHY(D,ZWORK1,ZKEFF)
 ENDIF
@@ -432,27 +432,27 @@ END IF
 !
   IF (TURBN%LHARAT) THEN
     !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-    ZWORK1(IIJB:IIJE,1:IKT)=PDTH_DZ(IIJB:IIJE,1:IKT)**2
+    ZWORK1(:,:)=PDTH_DZ(:,:)**2
     !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
     CALL MZF_PHY(D,ZWORK1,ZWORK2)
     IF (TURBN%LSTATNW) THEN
       !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-      ZF(IIJB:IIJE,1:IKT) = CSTURB%XCTV * & 
-                              PLMF(IIJB:IIJE,1:IKT)*PLEPSF(IIJB:IIJE,1:IKT)*ZWORK2(IIJB:IIJE,1:IKT)
+      ZF(:,:) = CSTURB%XCTV * & 
+                              PLMF(:,:)*PLEPSF(:,:)*ZWORK2(:,:)
       !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
     ELSE
       !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-      ZF(IIJB:IIJE,1:IKT) = PLMF(IIJB:IIJE,1:IKT)*PLEPSF(IIJB:IIJE,1:IKT)*ZWORK2(IIJB:IIJE,1:IKT)
+      ZF(:,:) = PLMF(:,:)*PLEPSF(:,:)*ZWORK2(:,:)
       !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
     END IF
   ELSE
     !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-    ZWORK1(IIJB:IIJE,1:IKT)=PPHI3(IIJB:IIJE,1:IKT)*PDTH_DZ(IIJB:IIJE,1:IKT)**2
+    ZWORK1(:,:)=PPHI3(:,:)*PDTH_DZ(:,:)**2
     !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
     CALL MZF_PHY(D,ZWORK1,ZWORK2)
     !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-    ZF(IIJB:IIJE,1:IKT) = CSTURB%XCTV*PLM(IIJB:IIJE,1:IKT)*PLEPS(IIJB:IIJE,1:IKT)& 
-                                 * ZWORK2(IIJB:IIJE,1:IKT)
+    ZF(:,:) = CSTURB%XCTV*PLM(:,:)*PLEPS(:,:)& 
+                                 * ZWORK2(:,:)
     !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
   ENDIF
   ZDFDDTDZ(:,:) = 0.     ! this term, because of discretization, is treated separately
@@ -466,10 +466,10 @@ END IF
      & PD,PLEPS,PSQRT_TKE,PBLL_O_E,PETHETA,ZWORK2)
     !
     !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-    ZF(IIJB:IIJE,1:IKT)       = ZF(IIJB:IIJE,1:IKT) + ZWORK1(IIJB:IIJE,1:IKT) &
-                                      * PFTH2(IIJB:IIJE,1:IKT)
-    ZDFDDTDZ(IIJB:IIJE,1:IKT) = ZDFDDTDZ(IIJB:IIJE,1:IKT) + ZWORK2(IIJB:IIJE,1:IKT) &
-                                      * PFTH2(IIJB:IIJE,1:IKT)
+    ZF(:,:)       = ZF(:,:) + ZWORK1(:,:) &
+                                      * PFTH2(:,:)
+    ZDFDDTDZ(:,:) = ZDFDDTDZ(:,:) + ZWORK2(:,:) &
+                                      * PFTH2(:,:)
     !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
   END IF
   !
@@ -482,10 +482,10 @@ END IF
      & PLM,PLEPS,PTKEM,GUSERV,ZWORK3)
     !
     !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-    ZF(IIJB:IIJE,1:IKT)  = ZF(IIJB:IIJE,1:IKT) + ZWORK1(IIJB:IIJE,1:IKT) &
-                                 * ZWORK2(IIJB:IIJE,1:IKT)
-    ZDFDDTDZ(IIJB:IIJE,1:IKT) = ZDFDDTDZ(IIJB:IIJE,1:IKT) + ZWORK3(IIJB:IIJE,1:IKT) &
-                                      * ZWORK2(IIJB:IIJE,1:IKT)
+    ZF(:,:)  = ZF(:,:) + ZWORK1(:,:) &
+                                 * ZWORK2(:,:)
+    ZDFDDTDZ(:,:) = ZDFDDTDZ(:,:) + ZWORK3(:,:) &
+                                      * ZWORK2(:,:)
     !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
   END IF
   !
@@ -498,10 +498,10 @@ END IF
        & PLEPS,PSQRT_TKE,PBLL_O_E,PEMOIST,PDTH_DZ,ZWORK2)
       !
       !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-      ZF(IIJB:IIJE,1:IKT) = ZF(IIJB:IIJE,1:IKT) + ZWORK1(IIJB:IIJE,1:IKT) &
-                                  * PFR2(IIJB:IIJE,1:IKT)
-      ZDFDDTDZ(IIJB:IIJE,1:IKT) = ZDFDDTDZ(IIJB:IIJE,1:IKT) + ZWORK2(IIJB:IIJE,1:IKT) &
-                                        * PFR2(IIJB:IIJE,1:IKT)
+      ZF(:,:) = ZF(:,:) + ZWORK1(:,:) &
+                                  * PFR2(:,:)
+      ZDFDDTDZ(:,:) = ZDFDDTDZ(:,:) + ZWORK2(:,:) &
+                                        * PFR2(:,:)
       !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
     END IF
     !
@@ -514,10 +514,10 @@ END IF
        & PLM,PLEPS,PTKEM,PBLL_O_E,PEMOIST,PDTH_DZ,ZWORK3)
       !
       !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-      ZF(IIJB:IIJE,1:IKT) = ZF(IIJB:IIJE,1:IKT) + ZWORK1(IIJB:IIJE,1:IKT) &
-                                  * ZWORK2(IIJB:IIJE,1:IKT)
-      ZDFDDTDZ(IIJB:IIJE,1:IKT) = ZDFDDTDZ(IIJB:IIJE,1:IKT) + ZWORK3(IIJB:IIJE,1:IKT) &
-                                        * ZWORK1(IIJB:IIJE,1:IKT)
+      ZF(:,:) = ZF(:,:) + ZWORK1(:,:) &
+                                  * ZWORK2(:,:)
+      ZDFDDTDZ(:,:) = ZDFDDTDZ(:,:) + ZWORK3(:,:) &
+                                        * ZWORK1(:,:)
       !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
     END IF
     !
@@ -529,84 +529,84 @@ END IF
        & PD,PLEPS,PSQRT_TKE,PBLL_O_E,PEMOIST,PDTH_DZ,ZWORK2)
       !
       !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-      ZF(IIJB:IIJE,1:IKT) = ZF(IIJB:IIJE,1:IKT) + ZWORK1(IIJB:IIJE,1:IKT) &
-                                  * PFTHR(IIJB:IIJE,1:IKT)
-      ZDFDDTDZ(IIJB:IIJE,1:IKT) = ZDFDDTDZ(IIJB:IIJE,1:IKT) + ZWORK2(IIJB:IIJE,1:IKT) &
-                                        * PFTHR(IIJB:IIJE,1:IKT)
+      ZF(:,:) = ZF(:,:) + ZWORK1(:,:) &
+                                  * PFTHR(:,:)
+      ZDFDDTDZ(:,:) = ZDFDDTDZ(:,:) + ZWORK2(:,:) &
+                                        * PFTHR(:,:)
       !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
     END IF
 
   END IF
   !
   !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-  ZWORK1(IIJB:IIJE,1:IKT) = PTHLP(IIJB:IIJE,1:IKT) - PTHLM(IIJB:IIJE,1:IKT)
+  ZWORK1(:,:) = PTHLP(:,:) - PTHLM(:,:)
   !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
   CALL DZM_PHY(D,ZWORK1,ZWORK2)
   !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-  ZWORK3(IIJB:IIJE,1:IKT) = ZWORK2(IIJB:IIJE,1:IKT) / PDZZ(IIJB:IIJE,1:IKT)
+  ZWORK3(:,:) = ZWORK2(:,:) / PDZZ(:,:)
   !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
   CALL MZF_PHY(D,ZWORK3,ZWORK4)
   !
   !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-  ZFLXZ(IIJB:IIJE,1:IKT)   = ZF(IIJB:IIJE,1:IKT) + TURBN%XIMPL * ZDFDDTDZ(IIJB:IIJE,1:IKT) &
-                                    * ZWORK4(IIJB:IIJE,1:IKT)
+  ZFLXZ(:,:)   = ZF(:,:) + TURBN%XIMPL * ZDFDDTDZ(:,:) &
+                                    * ZWORK4(:,:)
   !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
   !
   ! special case near the ground ( uncentred gradient )
   IF (TURBN%LHARAT) THEN
     !$mnh_expand_array(JIJ=IIJB:IIJE)
-    ZFLXZ(IIJB:IIJE,IKB) =  PLMF(IIJB:IIJE,IKB)   &
-     * PLEPSF(IIJB:IIJE,IKB)                                         &
+    ZFLXZ(:,IKB) =  PLMF(:,IKB)   &
+     * PLEPSF(:,IKB)                                         &
      *( PEXPL *                                                  &
-     ( ZCOEFF(IIJB:IIJE,IKB+2*IKL)*PTHLM(IIJB:IIJE,IKB+2*IKL)             &
-      +ZCOEFF(IIJB:IIJE,IKB+IKL  )*PTHLM(IIJB:IIJE,IKB+IKL  )             & 
-      +ZCOEFF(IIJB:IIJE,IKB      )*PTHLM(IIJB:IIJE,IKB  )   )**2          &
+     ( ZCOEFF(:,IKB+2*IKL)*PTHLM(:,IKB+2*IKL)             &
+      +ZCOEFF(:,IKB+IKL  )*PTHLM(:,IKB+IKL  )             & 
+      +ZCOEFF(:,IKB      )*PTHLM(:,IKB  )   )**2          &
      +TURBN%XIMPL *                                                  &
-     ( ZCOEFF(IIJB:IIJE,IKB+2*IKL)*PTHLP(IIJB:IIJE,IKB+2*IKL)             &
-      +ZCOEFF(IIJB:IIJE,IKB+IKL  )*PTHLP(IIJB:IIJE,IKB+IKL  )             &
-      +ZCOEFF(IIJB:IIJE,IKB      )*PTHLP(IIJB:IIJE,IKB  )   )**2          &
+     ( ZCOEFF(:,IKB+2*IKL)*PTHLP(:,IKB+2*IKL)             &
+      +ZCOEFF(:,IKB+IKL  )*PTHLP(:,IKB+IKL  )             &
+      +ZCOEFF(:,IKB      )*PTHLP(:,IKB  )   )**2          &
     ) 
     !$mnh_end_expand_array(JIJ=IIJB:IIJE)
     IF (TURBN%LSTATNW) THEN
       !$mnh_expand_array(JIJ=IIJB:IIJE)
-      ZFLXZ(IIJB:IIJE,IKB) = CSTURB%XCTV * ZFLXZ(IIJB:IIJE,IKB)
+      ZFLXZ(:,IKB) = CSTURB%XCTV * ZFLXZ(:,IKB)
       !$mnh_end_expand_array(JIJ=IIJB:IIJE)
      END IF
   ELSE
      !$mnh_expand_array(JIJ=IIJB:IIJE)
-     ZFLXZ(IIJB:IIJE,IKB) = CSTURB%XCTV * PPHI3(IIJB:IIJE,IKB+IKL) * PLM(IIJB:IIJE,IKB)   &
-     * PLEPS(IIJB:IIJE,IKB)                                         &
+     ZFLXZ(:,IKB) = CSTURB%XCTV * PPHI3(:,IKB+IKL) * PLM(:,IKB)   &
+     * PLEPS(:,IKB)                                         &
      *( PEXPL *                                                  &
-     ( ZCOEFF(IIJB:IIJE,IKB+2*IKL)*PTHLM(IIJB:IIJE,IKB+2*IKL)             &
-      +ZCOEFF(IIJB:IIJE,IKB+IKL  )*PTHLM(IIJB:IIJE,IKB+IKL  )             & 
-      +ZCOEFF(IIJB:IIJE,IKB      )*PTHLM(IIJB:IIJE,IKB  )   )**2          &
+     ( ZCOEFF(:,IKB+2*IKL)*PTHLM(:,IKB+2*IKL)             &
+      +ZCOEFF(:,IKB+IKL  )*PTHLM(:,IKB+IKL  )             & 
+      +ZCOEFF(:,IKB      )*PTHLM(:,IKB  )   )**2          &
      +TURBN%XIMPL *                                                  &
-     ( ZCOEFF(IIJB:IIJE,IKB+2*IKL)*PTHLP(IIJB:IIJE,IKB+2*IKL)             &
-      +ZCOEFF(IIJB:IIJE,IKB+IKL  )*PTHLP(IIJB:IIJE,IKB+IKL  )             &
-      +ZCOEFF(IIJB:IIJE,IKB      )*PTHLP(IIJB:IIJE,IKB  )   )**2          &
+     ( ZCOEFF(:,IKB+2*IKL)*PTHLP(:,IKB+2*IKL)             &
+      +ZCOEFF(:,IKB+IKL  )*PTHLP(:,IKB+IKL  )             &
+      +ZCOEFF(:,IKB      )*PTHLP(:,IKB  )   )**2          &
      )
      !$mnh_end_expand_array(JIJ=IIJB:IIJE)
    ENDIF
   !
   !$mnh_expand_array(JIJ=IIJB:IIJE)
-  ZFLXZ(IIJB:IIJE,IKA) = ZFLXZ(IIJB:IIJE,IKB)
+  ZFLXZ(:,IKA) = ZFLXZ(:,IKB)
   !$mnh_end_expand_array(JIJ=IIJB:IIJE)
   !
   IF (TURBN%LSTATNW) THEN
     !wc  The variance from the budget eq should be multiplied by 2 here
     !    thl'2=2*L*LEPS*(dthl/dz**2)
     !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-    ZFLXZ(IIJB:IIJE,1:IKT) = MAX(0., 2.*ZFLXZ(IIJB:IIJE,1:IKT))
+    ZFLXZ(:,:) = MAX(0., 2.*ZFLXZ(:,:))
     !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
   ELSE
     !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-    ZFLXZ(IIJB:IIJE,1:IKT) = MAX(0., ZFLXZ(IIJB:IIJE,1:IKT))
+    ZFLXZ(:,:) = MAX(0., ZFLXZ(:,:))
     !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
   END IF
   !
   IF (KRRL > 0)  THEN
     !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-    PSIGS(IIJB:IIJE,1:IKT) = ZFLXZ(IIJB:IIJE,1:IKT) * PATHETA(IIJB:IIJE,1:IKT)**2
+    PSIGS(:,:) = ZFLXZ(:,:) * PATHETA(:,:)**2
     !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
   ELSE
     PSIGS(:,:) = 0.
@@ -638,24 +638,24 @@ END IF
     !
     CALL MZF_PHY(D,PWM,ZWORK1)
     !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-    ZWORK2(IIJB:IIJE,1:IKT) = ZWORK1(IIJB:IIJE,1:IKT) * ZFLXZ(IIJB:IIJE,1:IKT)
+    ZWORK2(:,:) = ZWORK1(:,:) * ZFLXZ(:,:)
     !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
     CALL LES_MEAN_SUBGRID_PHY(D,TLES,ZWORK2, TLES%X_LES_RES_W_SBG_Thl2 )
     !
     !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-    ZWORK1(IIJB:IIJE,1:IKT) = -2.*CSTURB%XCTD*PSQRT_TKE(IIJB:IIJE,1:IKT)*ZFLXZ(IIJB:IIJE,1:IKT) &
-                                      / PLEPS(IIJB:IIJE,1:IKT)
+    ZWORK1(:,:) = -2.*CSTURB%XCTD*PSQRT_TKE(:,:)*ZFLXZ(:,:) &
+                                      / PLEPS(:,:)
     !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
     CALL LES_MEAN_SUBGRID_PHY(D,TLES,ZWORK1, TLES%X_LES_SUBGRID_DISS_Thl2 )
     !
     !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-    ZWORK1(IIJB:IIJE,1:IKT) = PETHETA(IIJB:IIJE,1:IKT)*ZFLXZ(IIJB:IIJE,1:IKT)
+    ZWORK1(:,:) = PETHETA(:,:)*ZFLXZ(:,:)
     !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
     CALL LES_MEAN_SUBGRID_PHY(D,TLES,ZWORK1, TLES%X_LES_SUBGRID_ThlThv )
     !
     !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-    ZWORK1(IIJB:IIJE,1:IKT) = -CSTURB%XA3*PBETA(IIJB:IIJE,1:IKT)*PETHETA(IIJB:IIJE,1:IKT) &
-                                      * ZFLXZ(IIJB:IIJE,1:IKT)
+    ZWORK1(:,:) = -CSTURB%XA3*PBETA(:,:)*PETHETA(:,:) &
+                                      * ZFLXZ(:,:)
     !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
     CALL LES_MEAN_SUBGRID_PHY(D,TLES,ZWORK1, TLES%X_LES_SUBGRID_ThlPz, .TRUE. )
     !
@@ -671,28 +671,28 @@ END IF
     ! Compute the turbulent variance F and F' at time t-dt.
   IF (TURBN%LHARAT) THEN
     !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-    ZWORK1(IIJB:IIJE,1:IKT) = PDTH_DZ(IIJB:IIJE,1:IKT)*PDR_DZ(IIJB:IIJE,1:IKT)
+    ZWORK1(:,:) = PDTH_DZ(:,:)*PDR_DZ(:,:)
     !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
     CALL MZF_PHY(D,ZWORK1,ZWORK2)
     IF (TURBN%LSTATNW) THEN
       !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-      ZF(IIJB:IIJE,1:IKT) = CSTURB%XCTV * &
-                              PLMF(IIJB:IIJE,1:IKT)*PLEPSF(IIJB:IIJE,1:IKT)*ZWORK2(IIJB:IIJE,1:IKT)
+      ZF(:,:) = CSTURB%XCTV * &
+                              PLMF(:,:)*PLEPSF(:,:)*ZWORK2(:,:)
       !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
     ELSE
       !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-      ZF(IIJB:IIJE,1:IKT) = PLMF(IIJB:IIJE,1:IKT)*PLEPSF(IIJB:IIJE,1:IKT)*ZWORK2(IIJB:IIJE,1:IKT)
+      ZF(:,:) = PLMF(:,:)*PLEPSF(:,:)*ZWORK2(:,:)
       !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
     END IF
   ELSE
     !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-    ZWORK1(IIJB:IIJE,1:IKT) = 0.5*(PPHI3(IIJB:IIJE,1:IKT)+PPSI3(IIJB:IIJE,1:IKT))& 
-                                      *PDTH_DZ(IIJB:IIJE,1:IKT)*PDR_DZ(IIJB:IIJE,1:IKT)
+    ZWORK1(:,:) = 0.5*(PPHI3(:,:)+PPSI3(:,:))& 
+                                      *PDTH_DZ(:,:)*PDR_DZ(:,:)
     !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
     CALL MZF_PHY(D,ZWORK1,ZWORK2)
     !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-    ZF(IIJB:IIJE,1:IKT) = CSTURB%XCTV*PLM(IIJB:IIJE,1:IKT)*PLEPS(IIJB:IIJE,1:IKT)& 
-                                 * ZWORK2(IIJB:IIJE,1:IKT)
+    ZF(:,:) = CSTURB%XCTV*PLM(:,:)*PLEPS(:,:)& 
+                                 * ZWORK2(:,:)
     !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
   ENDIF
     ZDFDDTDZ(:,:) = 0.     ! this term, because of discretization, is treated separately
@@ -710,11 +710,11 @@ END IF
        & PD,PLEPS,PSQRT_TKE,PBLL_O_E,PETHETA,ZWORK3)
       !
       !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-      ZF(IIJB:IIJE,1:IKT) = ZF(IIJB:IIJE,1:IKT) + ZWORK1(IIJB:IIJE,1:IKT) * PFTH2(IIJB:IIJE,1:IKT)
-      ZDFDDTDZ(IIJB:IIJE,1:IKT) = ZDFDDTDZ(IIJB:IIJE,1:IKT) + ZWORK2(IIJB:IIJE,1:IKT) &
-                                        * PFTH2(IIJB:IIJE,1:IKT)
-      ZDFDDRDZ(IIJB:IIJE,1:IKT) = ZDFDDRDZ(IIJB:IIJE,1:IKT) + ZWORK3(IIJB:IIJE,1:IKT) &
-                                        * PFTH2(IIJB:IIJE,1:IKT)
+      ZF(:,:) = ZF(:,:) + ZWORK1(:,:) * PFTH2(:,:)
+      ZDFDDTDZ(:,:) = ZDFDDTDZ(:,:) + ZWORK2(:,:) &
+                                        * PFTH2(:,:)
+      ZDFDDRDZ(:,:) = ZDFDDRDZ(:,:) + ZWORK3(:,:) &
+                                        * PFTH2(:,:)
       !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
     END IF
     !
@@ -729,12 +729,12 @@ END IF
        & PD,PLM,PLEPS,PTKEM,ZWORK4)
       !
       !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-      ZF(IIJB:IIJE,1:IKT) = ZF(IIJB:IIJE,1:IKT) + ZWORK2(IIJB:IIJE,1:IKT) &
-                                  * ZWORK1(IIJB:IIJE,1:IKT)
-      ZDFDDTDZ(IIJB:IIJE,1:IKT) = ZDFDDTDZ(IIJB:IIJE,1:IKT) + ZWORK3(IIJB:IIJE,1:IKT) &
-                                        * ZWORK1(IIJB:IIJE,1:IKT)
-      ZDFDDRDZ(IIJB:IIJE,1:IKT) = ZDFDDRDZ(IIJB:IIJE,1:IKT) + ZWORK4(IIJB:IIJE,1:IKT) &
-                                        * ZWORK1(IIJB:IIJE,1:IKT)
+      ZF(:,:) = ZF(:,:) + ZWORK2(:,:) &
+                                  * ZWORK1(:,:)
+      ZDFDDTDZ(:,:) = ZDFDDTDZ(:,:) + ZWORK3(:,:) &
+                                        * ZWORK1(:,:)
+      ZDFDDRDZ(:,:) = ZDFDDRDZ(:,:) + ZWORK4(:,:) &
+                                        * ZWORK1(:,:)
       !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
     END IF
     !
@@ -748,11 +748,11 @@ END IF
        & PLEPS,PSQRT_TKE,PBLL_O_E,PEMOIST,PDTH_DZ,ZWORK3)
       !
       !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-      ZF(IIJB:IIJE,1:IKT) = ZF(IIJB:IIJE,1:IKT) + ZWORK1(IIJB:IIJE,1:IKT) * PFR2(IIJB:IIJE,1:IKT)
-      ZDFDDTDZ(IIJB:IIJE,1:IKT) = ZDFDDTDZ(IIJB:IIJE,1:IKT) + ZWORK2(IIJB:IIJE,1:IKT) &
-                                        * PFR2(IIJB:IIJE,1:IKT)
-      ZDFDDRDZ(IIJB:IIJE,1:IKT) = ZDFDDRDZ(IIJB:IIJE,1:IKT) + ZWORK3(IIJB:IIJE,1:IKT) &
-                                        * PFR2(IIJB:IIJE,1:IKT)
+      ZF(:,:) = ZF(:,:) + ZWORK1(:,:) * PFR2(:,:)
+      ZDFDDTDZ(:,:) = ZDFDDTDZ(:,:) + ZWORK2(:,:) &
+                                        * PFR2(:,:)
+      ZDFDDRDZ(:,:) = ZDFDDRDZ(:,:) + ZWORK3(:,:) &
+                                        * PFR2(:,:)
       !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
     END IF
     !
@@ -767,11 +767,11 @@ END IF
       & PLM,PLEPS,PTKEM,PBLL_O_E,PDTH_DZ,PEMOIST,ZWORK4)
       !
       !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-      ZF(IIJB:IIJE,1:IKT) = ZF(IIJB:IIJE,1:IKT) + ZWORK2(IIJB:IIJE,1:IKT)*ZWORK1(IIJB:IIJE,1:IKT)
-      ZDFDDTDZ(IIJB:IIJE,1:IKT) = ZDFDDTDZ(IIJB:IIJE,1:IKT) + ZWORK3(IIJB:IIJE,1:IKT) &
-                                        * ZWORK1(IIJB:IIJE,1:IKT)
-      ZDFDDRDZ(IIJB:IIJE,1:IKT) = ZDFDDRDZ(IIJB:IIJE,1:IKT) + ZWORK4(IIJB:IIJE,1:IKT) &
-                                        * ZWORK1(IIJB:IIJE,1:IKT)
+      ZF(:,:) = ZF(:,:) + ZWORK2(:,:)*ZWORK1(:,:)
+      ZDFDDTDZ(:,:) = ZDFDDTDZ(:,:) + ZWORK3(:,:) &
+                                        * ZWORK1(:,:)
+      ZDFDDRDZ(:,:) = ZDFDDRDZ(:,:) + ZWORK4(:,:) &
+                                        * ZWORK1(:,:)
       !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
     END IF
     !
@@ -785,45 +785,45 @@ END IF
       & PD,PLEPS,PSQRT_TKE,PBLL_O_E,PEMOIST,ZWORK3)
       !
       !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-      ZF(IIJB:IIJE,1:IKT) = ZF(IIJB:IIJE,1:IKT) + ZWORK1(IIJB:IIJE,1:IKT) * PFTHR(IIJB:IIJE,1:IKT)
-      ZDFDDTDZ(IIJB:IIJE,1:IKT) = ZDFDDTDZ(IIJB:IIJE,1:IKT) + ZWORK2(IIJB:IIJE,1:IKT) &
-                                        * PFTHR(IIJB:IIJE,1:IKT)
-      ZDFDDRDZ(IIJB:IIJE,1:IKT) = ZDFDDRDZ(IIJB:IIJE,1:IKT) + ZWORK3(IIJB:IIJE,1:IKT) &
-                                        * PFTHR(IIJB:IIJE,1:IKT)
+      ZF(:,:) = ZF(:,:) + ZWORK1(:,:) * PFTHR(:,:)
+      ZDFDDTDZ(:,:) = ZDFDDTDZ(:,:) + ZWORK2(:,:) &
+                                        * PFTHR(:,:)
+      ZDFDDRDZ(:,:) = ZDFDDRDZ(:,:) + ZWORK3(:,:) &
+                                        * PFTHR(:,:)
       !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
     END IF
     !
     !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-    ZWORK1(IIJB:IIJE,1:IKT) = PTHLP(IIJB:IIJE,1:IKT) - PTHLM(IIJB:IIJE,1:IKT)
-    ZWORK2(IIJB:IIJE,1:IKT) = PRP(IIJB:IIJE,1:IKT) - PRM(IIJB:IIJE,1:IKT,1)
+    ZWORK1(:,:) = PTHLP(:,:) - PTHLM(:,:)
+    ZWORK2(:,:) = PRP(:,:) - PRM(:,:,1)
     !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
     CALL DZM_PHY(D,ZWORK1,ZWORK3)
     CALL DZM_PHY(D,ZWORK2,ZWORK4)
     !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-    ZWORK1(IIJB:IIJE,1:IKT) = ZWORK3(IIJB:IIJE,1:IKT) / PDZZ(IIJB:IIJE,1:IKT)
-    ZWORK2(IIJB:IIJE,1:IKT) = ZWORK4(IIJB:IIJE,1:IKT) / PDZZ(IIJB:IIJE,1:IKT)
+    ZWORK1(:,:) = ZWORK3(:,:) / PDZZ(:,:)
+    ZWORK2(:,:) = ZWORK4(:,:) / PDZZ(:,:)
     !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
     CALL MZF_PHY(D,ZWORK1,ZWORK7)
     CALL MZF_PHY(D,ZWORK2,ZWORK8)
     !
     IF (TURBN%LHARAT) THEN
       !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)  
-      ZWORK5(IIJB:IIJE,1:IKT) = 2. *PDR_DZ(IIJB:IIJE,1:IKT)  *ZWORK3(IIJB:IIJE,1:IKT) &
-                                       / PDZZ(IIJB:IIJE,1:IKT)               &
-               + 2. *PDTH_DZ(IIJB:IIJE,1:IKT) *ZWORK4(IIJB:IIJE,1:IKT) / PDZZ(IIJB:IIJE,1:IKT)
+      ZWORK5(:,:) = 2. *PDR_DZ(:,:)  *ZWORK3(:,:) &
+                                       / PDZZ(:,:)               &
+               + 2. *PDTH_DZ(:,:) *ZWORK4(:,:) / PDZZ(:,:)
       !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
       !
       CALL MZF_PHY(D,ZWORK5,ZWORK6)
       !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-      ZFLXZ(IIJB:IIJE,1:IKT)   = ZF(IIJB:IIJE,1:IKT)                  &
-        + TURBN%XIMPL * PLMF(IIJB:IIJE,1:IKT)*PLEPSF(IIJB:IIJE,1:IKT)*0.5   &
-        * ZWORK5(IIJB:IIJE,1:IKT)                                       &
-        + TURBN%XIMPL * ZDFDDTDZ(IIJB:IIJE,1:IKT) * ZWORK7(IIJB:IIJE,1:IKT) &
-        + TURBN%XIMPL * ZDFDDRDZ(IIJB:IIJE,1:IKT) * ZWORK8(IIJB:IIJE,1:IKT)
+      ZFLXZ(:,:)   = ZF(:,:)                  &
+        + TURBN%XIMPL * PLMF(:,:)*PLEPSF(:,:)*0.5   &
+        * ZWORK5(:,:)                                       &
+        + TURBN%XIMPL * ZDFDDTDZ(:,:) * ZWORK7(:,:) &
+        + TURBN%XIMPL * ZDFDDRDZ(:,:) * ZWORK8(:,:)
       !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
       IF (TURBN%LSTATNW) THEN    
         !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-        ZFLXZ(IIJB:IIJE,1:IKT)   = CSTURB%XCTV * ZFLXZ(IIJB:IIJE,1:IKT)
+        ZFLXZ(:,:)   = CSTURB%XCTV * ZFLXZ(:,:)
         !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
       END IF
     ELSE
@@ -837,93 +837,93 @@ END IF
       ! d(psi3*drdz )/ddrdz term
  
       !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-      ZWORK5(IIJB:IIJE,1:IKT) = (ZWKPHIPSI1(IIJB:IIJE,1:IKT)+ZWKPHIPSI2(IIJB:IIJE,1:IKT))& 
-      *PDR_DZ(IIJB:IIJE,1:IKT)*ZWORK3(IIJB:IIJE,1:IKT)/PDZZ(IIJB:IIJE,1:IKT) &
-                    + (ZWKPHIPSI3(IIJB:IIJE,1:IKT) + ZWKPHIPSI4(IIJB:IIJE,1:IKT)) & 
-                    *PDTH_DZ(IIJB:IIJE,1:IKT)*ZWORK4(IIJB:IIJE,1:IKT)/PDZZ(IIJB:IIJE,1:IKT)
+      ZWORK5(:,:) = (ZWKPHIPSI1(:,:)+ZWKPHIPSI2(:,:))& 
+      *PDR_DZ(:,:)*ZWORK3(:,:)/PDZZ(:,:) &
+                    + (ZWKPHIPSI3(:,:) + ZWKPHIPSI4(:,:)) & 
+                    *PDTH_DZ(:,:)*ZWORK4(:,:)/PDZZ(:,:)
       !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
       CALL MZF_PHY(D,ZWORK5,ZWORK6)      
       
       !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-      ZFLXZ(IIJB:IIJE,1:IKT)   = ZF(IIJB:IIJE,1:IKT)                          &
-        + TURBN%XIMPL * CSTURB%XCTV*PLM(IIJB:IIJE,1:IKT)*PLEPS(IIJB:IIJE,1:IKT)*0.5 &
-          * ZWORK6(IIJB:IIJE,1:IKT)                                                   &
-        + TURBN%XIMPL * ZDFDDTDZ(IIJB:IIJE,1:IKT) * ZWORK7(IIJB:IIJE,1:IKT)         &
-        + TURBN%XIMPL * ZDFDDRDZ(IIJB:IIJE,1:IKT) * ZWORK8(IIJB:IIJE,1:IKT)
+      ZFLXZ(:,:)   = ZF(:,:)                          &
+        + TURBN%XIMPL * CSTURB%XCTV*PLM(:,:)*PLEPS(:,:)*0.5 &
+          * ZWORK6(:,:)                                                   &
+        + TURBN%XIMPL * ZDFDDTDZ(:,:) * ZWORK7(:,:)         &
+        + TURBN%XIMPL * ZDFDDRDZ(:,:) * ZWORK8(:,:)
       !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
     ENDIF
     !
     ! special case near the ground ( uncentred gradient )
     IF (TURBN%LHARAT) THEN
       !$mnh_expand_array(JIJ=IIJB:IIJE)
-      ZFLXZ(IIJB:IIJE,IKB) =                                                            & 
+      ZFLXZ(:,IKB) =                                                            & 
       (1. )                                                                                   &
       *( PEXPL *                                                                              &
-         ( ZCOEFF(IIJB:IIJE,IKB+2*IKL)*PTHLM(IIJB:IIJE,IKB+2*IKL)             &
-          +ZCOEFF(IIJB:IIJE,IKB+IKL  )*PTHLM(IIJB:IIJE,IKB+IKL  )             & 
-          +ZCOEFF(IIJB:IIJE,IKB      )*PTHLM(IIJB:IIJE,IKB      ))                &
-        *( ZCOEFF(IIJB:IIJE,IKB+2*IKL)*PRM(IIJB:IIJE,IKB+2*IKL,1)             &
-          +ZCOEFF(IIJB:IIJE,IKB+IKL  )*PRM(IIJB:IIJE,IKB+IKL,1  )             & 
-          +ZCOEFF(IIJB:IIJE,IKB      )*PRM(IIJB:IIJE,IKB  ,1    ))                &
+         ( ZCOEFF(:,IKB+2*IKL)*PTHLM(:,IKB+2*IKL)             &
+          +ZCOEFF(:,IKB+IKL  )*PTHLM(:,IKB+IKL  )             & 
+          +ZCOEFF(:,IKB      )*PTHLM(:,IKB      ))                &
+        *( ZCOEFF(:,IKB+2*IKL)*PRM(:,IKB+2*IKL,1)             &
+          +ZCOEFF(:,IKB+IKL  )*PRM(:,IKB+IKL,1  )             & 
+          +ZCOEFF(:,IKB      )*PRM(:,IKB  ,1    ))                &
         +TURBN%XIMPL *                                                                              &
-         ( ZCOEFF(IIJB:IIJE,IKB+2*IKL)*PTHLP(IIJB:IIJE,IKB+2*IKL)             &
-          +ZCOEFF(IIJB:IIJE,IKB+IKL  )*PTHLP(IIJB:IIJE,IKB+IKL  )             &
-          +ZCOEFF(IIJB:IIJE,IKB      )*PTHLP(IIJB:IIJE,IKB      ))                &
-        *( ZCOEFF(IIJB:IIJE,IKB+2*IKL)*PRP(IIJB:IIJE,IKB+2*IKL  )             &
-          +ZCOEFF(IIJB:IIJE,IKB+IKL  )*PRP(IIJB:IIJE,IKB+IKL    )             & 
-          +ZCOEFF(IIJB:IIJE,IKB      )*PRP(IIJB:IIJE,IKB        ))                &
+         ( ZCOEFF(:,IKB+2*IKL)*PTHLP(:,IKB+2*IKL)             &
+          +ZCOEFF(:,IKB+IKL  )*PTHLP(:,IKB+IKL  )             &
+          +ZCOEFF(:,IKB      )*PTHLP(:,IKB      ))                &
+        *( ZCOEFF(:,IKB+2*IKL)*PRP(:,IKB+2*IKL  )             &
+          +ZCOEFF(:,IKB+IKL  )*PRP(:,IKB+IKL    )             & 
+          +ZCOEFF(:,IKB      )*PRP(:,IKB        ))                &
        )
       !$mnh_end_expand_array(JIJ=IIJB:IIJE)
     IF (TURBN%LSTATNW) THEN
       !$mnh_expand_array(JIJ=IIJB:IIJE)
-      ZFLXZ(IIJB:IIJE,IKB) = (CSTURB%XCHT1 + CSTURB%XCHT2) * ZFLXZ(IIJB:IIJE,IKB)
+      ZFLXZ(:,IKB) = (CSTURB%XCHT1 + CSTURB%XCHT2) * ZFLXZ(:,IKB)
       !$mnh_end_expand_array(JIJ=IIJB:IIJE)
     END IF
     ELSE 
       !$mnh_expand_array(JIJ=IIJB:IIJE)
-      ZFLXZ(IIJB:IIJE,IKB) =                                                            & 
-      (CSTURB%XCHT1 * PPHI3(IIJB:IIJE,IKB+IKL) + CSTURB%XCHT2 * PPSI3(IIJB:IIJE,IKB+IKL))   &
+      ZFLXZ(:,IKB) =                                                            & 
+      (CSTURB%XCHT1 * PPHI3(:,IKB+IKL) + CSTURB%XCHT2 * PPSI3(:,IKB+IKL))   &
       *( PEXPL *                                                                              &
-         ( ZCOEFF(IIJB:IIJE,IKB+2*IKL)*PTHLM(IIJB:IIJE,IKB+2*IKL)             &
-          +ZCOEFF(IIJB:IIJE,IKB+IKL  )*PTHLM(IIJB:IIJE,IKB+IKL  )             & 
-          +ZCOEFF(IIJB:IIJE,IKB      )*PTHLM(IIJB:IIJE,IKB      ))                &
-        *( ZCOEFF(IIJB:IIJE,IKB+2*IKL)*PRM(IIJB:IIJE,IKB+2*IKL,1)             &
-          +ZCOEFF(IIJB:IIJE,IKB+IKL  )*PRM(IIJB:IIJE,IKB+IKL,1  )             & 
-          +ZCOEFF(IIJB:IIJE,IKB      )*PRM(IIJB:IIJE,IKB  ,1    ))                &
+         ( ZCOEFF(:,IKB+2*IKL)*PTHLM(:,IKB+2*IKL)             &
+          +ZCOEFF(:,IKB+IKL  )*PTHLM(:,IKB+IKL  )             & 
+          +ZCOEFF(:,IKB      )*PTHLM(:,IKB      ))                &
+        *( ZCOEFF(:,IKB+2*IKL)*PRM(:,IKB+2*IKL,1)             &
+          +ZCOEFF(:,IKB+IKL  )*PRM(:,IKB+IKL,1  )             & 
+          +ZCOEFF(:,IKB      )*PRM(:,IKB  ,1    ))                &
         +TURBN%XIMPL *                                                                              &
-         ( ZCOEFF(IIJB:IIJE,IKB+2*IKL)*PTHLP(IIJB:IIJE,IKB+2*IKL)             &
-          +ZCOEFF(IIJB:IIJE,IKB+IKL  )*PTHLP(IIJB:IIJE,IKB+IKL  )             &
-          +ZCOEFF(IIJB:IIJE,IKB      )*PTHLP(IIJB:IIJE,IKB      ))                &
-        *( ZCOEFF(IIJB:IIJE,IKB+2*IKL)*PRP(IIJB:IIJE,IKB+2*IKL  )             &
-          +ZCOEFF(IIJB:IIJE,IKB+IKL  )*PRP(IIJB:IIJE,IKB+IKL    )             & 
-          +ZCOEFF(IIJB:IIJE,IKB      )*PRP(IIJB:IIJE,IKB        ))                &
+         ( ZCOEFF(:,IKB+2*IKL)*PTHLP(:,IKB+2*IKL)             &
+          +ZCOEFF(:,IKB+IKL  )*PTHLP(:,IKB+IKL  )             &
+          +ZCOEFF(:,IKB      )*PTHLP(:,IKB      ))                &
+        *( ZCOEFF(:,IKB+2*IKL)*PRP(:,IKB+2*IKL  )             &
+          +ZCOEFF(:,IKB+IKL  )*PRP(:,IKB+IKL    )             & 
+          +ZCOEFF(:,IKB      )*PRP(:,IKB        ))                &
        )
        !$mnh_end_expand_array(JIJ=IIJB:IIJE) 
     ENDIF
     !    
     !$mnh_expand_array(JIJ=IIJB:IIJE)
-    ZFLXZ(IIJB:IIJE,IKA) = ZFLXZ(IIJB:IIJE,IKB)
+    ZFLXZ(:,IKA) = ZFLXZ(:,IKB)
     !$mnh_end_expand_array(JIJ=IIJB:IIJE)
     !
     IF (TURBN%LSTATNW) THEN
       !wc  The variance from the budget eq should be multiplied by 2 here
       !    e.g. thl'2=2*L*LEPS*(cab)^-1 *(dthl/dz**2)
       !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-      ZFLXZ(IIJB:IIJE,1:IKT) = MIN(0., 2.*ZFLXZ(IIJB:IIJE,1:IKT))
+      ZFLXZ(:,:) = MIN(0., 2.*ZFLXZ(:,:))
       !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
     ENDIF
     IF ( KRRL > 0 ) THEN
       IF (TURBN%LSTATNW) THEN
         !wc Part of the new statistical cloud scheme set up. Normal notation so - sign
         !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-        PSIGS(IIJB:IIJE,1:IKT) = PSIGS(IIJB:IIJE,1:IKT) -     &
-                       2. * PATHETA(IIJB:IIJE,1:IKT) * PAMOIST(IIJB:IIJE,1:IKT) * ZFLXZ(IIJB:IIJE,1:IKT)
+        PSIGS(:,:) = PSIGS(:,:) -     &
+                       2. * PATHETA(:,:) * PAMOIST(:,:) * ZFLXZ(:,:)
         !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
       ELSE
         !  NB PATHETA is -b in Chaboureau Bechtold 2002 which explains the + sign here
         !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-        PSIGS(IIJB:IIJE,1:IKT) = PSIGS(IIJB:IIJE,1:IKT) +     &
-                       2. * PATHETA(IIJB:IIJE,1:IKT) * PAMOIST(IIJB:IIJE,1:IKT) * ZFLXZ(IIJB:IIJE,1:IKT)
+        PSIGS(:,:) = PSIGS(:,:) +     &
+                       2. * PATHETA(:,:) * PAMOIST(:,:) * ZFLXZ(:,:)
         !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
       ENDIF
     END IF
@@ -952,35 +952,35 @@ IF (TLES%LLES_CALL) THEN
       !
       CALL MZF_PHY(D,PWM,ZWORK1)
       !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-      ZWORK2(IIJB:IIJE,1:IKT) = ZWORK1(IIJB:IIJE,1:IKT) * ZFLXZ(IIJB:IIJE,1:IKT)
+      ZWORK2(:,:) = ZWORK1(:,:) * ZFLXZ(:,:)
       !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
       CALL LES_MEAN_SUBGRID_PHY(D,TLES,ZWORK2, TLES%X_LES_RES_W_SBG_ThlRt )
       !
       !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-      ZWORK1(IIJB:IIJE,1:IKT) = -2.*CSTURB%XCTD*PSQRT_TKE(IIJB:IIJE,1:IKT)*ZFLXZ(IIJB:IIJE,1:IKT) &
-                                        / PLEPS(IIJB:IIJE,1:IKT)
+      ZWORK1(:,:) = -2.*CSTURB%XCTD*PSQRT_TKE(:,:)*ZFLXZ(:,:) &
+                                        / PLEPS(:,:)
       !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
       CALL LES_MEAN_SUBGRID_PHY(D,TLES,ZWORK1, TLES%X_LES_SUBGRID_DISS_ThlRt )
       !
       !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-      ZWORK1(IIJB:IIJE,1:IKT) = PETHETA(IIJB:IIJE,1:IKT)*ZFLXZ(IIJB:IIJE,1:IKT)
+      ZWORK1(:,:) = PETHETA(:,:)*ZFLXZ(:,:)
       !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
       CALL LES_MEAN_SUBGRID_PHY(D,TLES,ZWORK1, TLES%X_LES_SUBGRID_RtThv )
       !
       !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-      ZWORK1(IIJB:IIJE,1:IKT) = -CSTURB%XA3*PBETA(IIJB:IIJE,1:IKT)*PETHETA(IIJB:IIJE,1:IKT) &
-                                        * ZFLXZ(IIJB:IIJE,1:IKT)
+      ZWORK1(:,:) = -CSTURB%XA3*PBETA(:,:)*PETHETA(:,:) &
+                                        * ZFLXZ(:,:)
       !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
       CALL LES_MEAN_SUBGRID_PHY(D,TLES,ZWORK1, TLES%X_LES_SUBGRID_RtPz, .TRUE. )
       !
       !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-      ZWORK1(IIJB:IIJE,1:IKT) = PEMOIST(IIJB:IIJE,1:IKT)*ZFLXZ(IIJB:IIJE,1:IKT)
+      ZWORK1(:,:) = PEMOIST(:,:)*ZFLXZ(:,:)
       !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
       CALL LES_MEAN_SUBGRID_PHY(D,TLES,ZWORK1, TLES%X_LES_SUBGRID_ThlThv , .TRUE. )
       !
       !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-      ZWORK1(IIJB:IIJE,1:IKT) = -CSTURB%XA3*PBETA(IIJB:IIJE,1:IKT)*PEMOIST(IIJB:IIJE,1:IKT) &
-                                        * ZFLXZ(IIJB:IIJE,1:IKT)
+      ZWORK1(:,:) = -CSTURB%XA3*PBETA(:,:)*PEMOIST(:,:) &
+                                        * ZFLXZ(:,:)
       !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
       CALL LES_MEAN_SUBGRID_PHY(D,TLES,ZWORK1, TLES%X_LES_SUBGRID_ThlPz, .TRUE. )
       !
@@ -995,25 +995,25 @@ END IF
     ! Compute the turbulent variance F and F' at time t-dt.
 IF (TURBN%LHARAT) THEN
   !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-  ZWORK1(IIJB:IIJE,1:IKT) = PDR_DZ(IIJB:IIJE,1:IKT)**2
+  ZWORK1(:,:) = PDR_DZ(:,:)**2
   !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
   CALL MZF_PHY(D,ZWORK1,ZWORK2)
   !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-  ZF(IIJB:IIJE,1:IKT) = PLMF(IIJB:IIJE,1:IKT)*PLEPSF(IIJB:IIJE,1:IKT)*ZWORK2(IIJB:IIJE,1:IKT)
+  ZF(:,:) = PLMF(:,:)*PLEPSF(:,:)*ZWORK2(:,:)
   !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
   IF (TURBN%LSTATNW) THEN
     !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-    ZF(IIJB:IIJE,1:IKT) = CSTURB%XCTV * ZF(IIJB:IIJE,1:IKT)
+    ZF(:,:) = CSTURB%XCTV * ZF(:,:)
     !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
   END IF
 ELSE
   !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-  ZWORK1(IIJB:IIJE,1:IKT) = PPSI3(IIJB:IIJE,1:IKT)*PDR_DZ(IIJB:IIJE,1:IKT)**2
+  ZWORK1(:,:) = PPSI3(:,:)*PDR_DZ(:,:)**2
   !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
   CALL MZF_PHY(D,ZWORK1,ZWORK2)
   !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-  ZF(IIJB:IIJE,1:IKT) = CSTURB%XCTV*PLM(IIJB:IIJE,1:IKT)*PLEPS(IIJB:IIJE,1:IKT)& 
-                                *ZWORK2(IIJB:IIJE,1:IKT)
+  ZF(:,:) = CSTURB%XCTV*PLM(:,:)*PLEPS(:,:)& 
+                                *ZWORK2(:,:)
   !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 ENDIF
     ZDFDDRDZ(:,:) = 0.     ! this term, because of discretization, is treated separately
@@ -1028,9 +1028,9 @@ ENDIF
       & PD,PLEPS,PSQRT_TKE,PBLL_O_E,PEMOIST,ZWORK2)
       !
       !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-      ZF(IIJB:IIJE,1:IKT) = ZF(IIJB:IIJE,1:IKT) + ZWORK1(IIJB:IIJE,1:IKT) * PFR2(IIJB:IIJE,1:IKT)
-      ZDFDDRDZ(IIJB:IIJE,1:IKT) = ZDFDDRDZ(IIJB:IIJE,1:IKT) + ZWORK2(IIJB:IIJE,1:IKT) &
-                                        * PFR2(IIJB:IIJE,1:IKT)
+      ZF(:,:) = ZF(:,:) + ZWORK1(:,:) * PFR2(:,:)
+      ZDFDDRDZ(:,:) = ZDFDDRDZ(:,:) + ZWORK2(:,:) &
+                                        * PFR2(:,:)
       !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
     END IF
     !
@@ -1043,9 +1043,9 @@ ENDIF
       & PD,PLM,PLEPS,PTKEM,GUSERV,ZWORK3)
       !
       !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-      ZF(IIJB:IIJE,1:IKT) = ZF(IIJB:IIJE,1:IKT) + ZWORK2(IIJB:IIJE,1:IKT)*ZWORK1(IIJB:IIJE,1:IKT)
-      ZDFDDRDZ(IIJB:IIJE,1:IKT) = ZDFDDRDZ(IIJB:IIJE,1:IKT) + ZWORK3(IIJB:IIJE,1:IKT) &
-                                        * ZWORK1(IIJB:IIJE,1:IKT)
+      ZF(:,:) = ZF(:,:) + ZWORK2(:,:)*ZWORK1(:,:)
+      ZDFDDRDZ(:,:) = ZDFDDRDZ(:,:) + ZWORK3(:,:) &
+                                        * ZWORK1(:,:)
       !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
     END IF
     !
@@ -1058,9 +1058,9 @@ ENDIF
           & PREDTH1,PD,PLEPS,PSQRT_TKE,PBLL_O_E,PETHETA,PDR_DZ,ZWORK2)
         !
         !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-        ZF(IIJB:IIJE,1:IKT) = ZF(IIJB:IIJE,1:IKT) + ZWORK1(IIJB:IIJE,1:IKT)*PFTH2(IIJB:IIJE,1:IKT) 
-        ZDFDDRDZ(IIJB:IIJE,1:IKT) = ZDFDDRDZ(IIJB:IIJE,1:IKT) + ZWORK2(IIJB:IIJE,1:IKT) &
-                                          * PFTH2(IIJB:IIJE,1:IKT)
+        ZF(:,:) = ZF(:,:) + ZWORK1(:,:)*PFTH2(:,:) 
+        ZDFDDRDZ(:,:) = ZDFDDRDZ(:,:) + ZWORK2(:,:) &
+                                          * PFTH2(:,:)
         !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
       END IF
       !
@@ -1073,9 +1073,9 @@ ENDIF
           & PD,PLM,PLEPS,PTKEM,PBLL_O_E,PETHETA,PDR_DZ,ZWORK3)
         !
         !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-        ZF(IIJB:IIJE,1:IKT) = ZF(IIJB:IIJE,1:IKT)+ZWORK2(IIJB:IIJE,1:IKT)*ZWORK1(IIJB:IIJE,1:IKT)
-        ZDFDDRDZ(IIJB:IIJE,1:IKT) = ZDFDDRDZ(IIJB:IIJE,1:IKT) + ZWORK3(IIJB:IIJE,1:IKT) &
-                                          * ZWORK1(IIJB:IIJE,1:IKT)
+        ZF(:,:) = ZF(:,:)+ZWORK2(:,:)*ZWORK1(:,:)
+        ZDFDDRDZ(:,:) = ZDFDDRDZ(:,:) + ZWORK3(:,:) &
+                                          * ZWORK1(:,:)
         !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
       END IF
       !
@@ -1087,110 +1087,110 @@ ENDIF
           & PD,PLEPS,PSQRT_TKE,PBLL_O_E,PETHETA,PDR_DZ,ZWORK2)
         !
         !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-        ZF(IIJB:IIJE,1:IKT) = ZF(IIJB:IIJE,1:IKT) + ZWORK1(IIJB:IIJE,1:IKT) &
-                                    * PFTHR(IIJB:IIJE,1:IKT) 
-        ZDFDDRDZ(IIJB:IIJE,1:IKT) = ZDFDDRDZ(IIJB:IIJE,1:IKT) + ZWORK2(IIJB:IIJE,1:IKT) &
-                                          * PFTHR(IIJB:IIJE,1:IKT)
+        ZF(:,:) = ZF(:,:) + ZWORK1(:,:) &
+                                    * PFTHR(:,:) 
+        ZDFDDRDZ(:,:) = ZDFDDRDZ(:,:) + ZWORK2(:,:) &
+                                          * PFTHR(:,:)
         !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
       END IF
 
     END IF
     !
   !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-  ZWORK1(IIJB:IIJE,1:IKT) = PRP(IIJB:IIJE,1:IKT) - PRM(IIJB:IIJE,1:IKT,1)
+  ZWORK1(:,:) = PRP(:,:) - PRM(:,:,1)
   !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
   CALL DZM_PHY(D,ZWORK1,ZWORK2)
   IF (TURBN%LHARAT) THEN
     !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-    ZWORK5(IIJB:IIJE,1:IKT) = ZWORK2(IIJB:IIJE,1:IKT) / PDZZ(IIJB:IIJE,1:IKT)
-    ZWORK3(IIJB:IIJE,1:IKT) = 2.*PDR_DZ(IIJB:IIJE,1:IKT)* ZWORK5(IIJB:IIJE,1:IKT)
+    ZWORK5(:,:) = ZWORK2(:,:) / PDZZ(:,:)
+    ZWORK3(:,:) = 2.*PDR_DZ(:,:)* ZWORK5(:,:)
     !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
     CALL MZF_PHY(D,ZWORK3,ZWORK4)
     CALL MZF_PHY(D,ZWORK5,ZWORK6)
     !
     !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-    ZFLXZ(IIJB:IIJE,1:IKT) = ZF(IIJB:IIJE,1:IKT)                   &
-          + TURBN%XIMPL * PLMF(IIJB:IIJE,1:IKT) *PLEPSF(IIJB:IIJE,1:IKT) &
-            * ZWORK4(IIJB:IIJE,1:IKT) &
-          + TURBN%XIMPL * ZDFDDRDZ(IIJB:IIJE,1:IKT) * ZWORK6(IIJB:IIJE,1:IKT)
+    ZFLXZ(:,:) = ZF(:,:)                   &
+          + TURBN%XIMPL * PLMF(:,:) *PLEPSF(:,:) &
+            * ZWORK4(:,:) &
+          + TURBN%XIMPL * ZDFDDRDZ(:,:) * ZWORK6(:,:)
     !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
     IF (TURBN%LSTATNW) THEN
       !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-      ZFLXZ(IIJB:IIJE,1:IKT) = CSTURB%XCTV * ZFLXZ(IIJB:IIJE,1:IKT)
+      ZFLXZ(:,:) = CSTURB%XCTV * ZFLXZ(:,:)
       !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT) 
      END IF
   ELSE
     CALL D_PSI3DRDZ2_O_DDRDZ(D,CSTURB,PPSI3,PREDR1,PREDTH1,PRED2R3,PRED2THR3,PDR_DZ,TURBN%CTURBDIM,GUSERV,ZWKPHIPSI1)
     !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-    ZWORK1(IIJB:IIJE,1:IKT) = ZWKPHIPSI1(IIJB:IIJE,1:IKT)*ZWORK2(IIJB:IIJE,1:IKT) &
-                                      / PDZZ(IIJB:IIJE,1:IKT)
+    ZWORK1(:,:) = ZWKPHIPSI1(:,:)*ZWORK2(:,:) &
+                                      / PDZZ(:,:)
     !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
     CALL MZF_PHY(D,ZWORK1,ZWORK3)
     !
     !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-    ZWORK4(IIJB:IIJE,1:IKT) = ZWORK2(IIJB:IIJE,1:IKT) / PDZZ(IIJB:IIJE,1:IKT)
+    ZWORK4(:,:) = ZWORK2(:,:) / PDZZ(:,:)
     !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
     CALL MZF_PHY(D,ZWORK4,ZWORK5)
     !
     !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-    ZFLXZ(IIJB:IIJE,1:IKT) = ZF(IIJB:IIJE,1:IKT)                             &
-          + TURBN%XIMPL * CSTURB%XCTV*PLM(IIJB:IIJE,1:IKT) *PLEPS(IIJB:IIJE,1:IKT) &
-            * ZWORK3(IIJB:IIJE,1:IKT) &
-          + TURBN%XIMPL * ZDFDDRDZ(IIJB:IIJE,1:IKT) * ZWORK5(IIJB:IIJE,1:IKT)
+    ZFLXZ(:,:) = ZF(:,:)                             &
+          + TURBN%XIMPL * CSTURB%XCTV*PLM(:,:) *PLEPS(:,:) &
+            * ZWORK3(:,:) &
+          + TURBN%XIMPL * ZDFDDRDZ(:,:) * ZWORK5(:,:)
     !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)  
   ENDIF
     !
     ! special case near the ground ( uncentred gradient )
   IF (TURBN%LHARAT) THEN
     !$mnh_expand_array(JIJ=IIJB:IIJE)
-    ZFLXZ(IIJB:IIJE,IKB) =  PLMF(IIJB:IIJE,IKB)   &
-        * PLEPSF(IIJB:IIJE,IKB)                                        &
+    ZFLXZ(:,IKB) =  PLMF(:,IKB)   &
+        * PLEPSF(:,IKB)                                        &
     *( PEXPL *                                                  &
-       ( ZCOEFF(IIJB:IIJE,IKB+2*IKL)*PRM(IIJB:IIJE,IKB+2*IKL,1)             &
-        +ZCOEFF(IIJB:IIJE,IKB+IKL  )*PRM(IIJB:IIJE,IKB+IKL,1  )             & 
-        +ZCOEFF(IIJB:IIJE,IKB      )*PRM(IIJB:IIJE,IKB  ,1    ))**2         &
+       ( ZCOEFF(:,IKB+2*IKL)*PRM(:,IKB+2*IKL,1)             &
+        +ZCOEFF(:,IKB+IKL  )*PRM(:,IKB+IKL,1  )             & 
+        +ZCOEFF(:,IKB      )*PRM(:,IKB  ,1    ))**2         &
       +TURBN%XIMPL *                                                  &
-       ( ZCOEFF(IIJB:IIJE,IKB+2*IKL)*PRP(IIJB:IIJE,IKB+2*IKL)               &
-        +ZCOEFF(IIJB:IIJE,IKB+IKL  )*PRP(IIJB:IIJE,IKB+IKL  )               &
-        +ZCOEFF(IIJB:IIJE,IKB      )*PRP(IIJB:IIJE,IKB      ))**2           &
+       ( ZCOEFF(:,IKB+2*IKL)*PRP(:,IKB+2*IKL)               &
+        +ZCOEFF(:,IKB+IKL  )*PRP(:,IKB+IKL  )               &
+        +ZCOEFF(:,IKB      )*PRP(:,IKB      ))**2           &
     )
     !$mnh_end_expand_array(JIJ=IIJB:IIJE)
     IF (TURBN%LSTATNW) THEN
       !$mnh_expand_array(JIJ=IIJB:IIJE)
-      ZFLXZ(IIJB:IIJE,IKB) = CSTURB%XCHV * ZFLXZ(IIJB:IIJE,IKB)
+      ZFLXZ(:,IKB) = CSTURB%XCHV * ZFLXZ(:,IKB)
       !$mnh_end_expand_array(JIJ=IIJB:IIJE)
     END IF 
   ELSE
     !$mnh_expand_array(JIJ=IIJB:IIJE)
-    ZFLXZ(IIJB:IIJE,IKB) = CSTURB%XCHV * PPSI3(IIJB:IIJE,IKB+IKL) * PLM(IIJB:IIJE,IKB)   &
-        * PLEPS(IIJB:IIJE,IKB)                                        &
+    ZFLXZ(:,IKB) = CSTURB%XCHV * PPSI3(:,IKB+IKL) * PLM(:,IKB)   &
+        * PLEPS(:,IKB)                                        &
     *( PEXPL *                                                  &
-       ( ZCOEFF(IIJB:IIJE,IKB+2*IKL)*PRM(IIJB:IIJE,IKB+2*IKL,1)             &
-        +ZCOEFF(IIJB:IIJE,IKB+IKL  )*PRM(IIJB:IIJE,IKB+IKL,1  )             & 
-        +ZCOEFF(IIJB:IIJE,IKB      )*PRM(IIJB:IIJE,IKB  ,1    ))**2         &
+       ( ZCOEFF(:,IKB+2*IKL)*PRM(:,IKB+2*IKL,1)             &
+        +ZCOEFF(:,IKB+IKL  )*PRM(:,IKB+IKL,1  )             & 
+        +ZCOEFF(:,IKB      )*PRM(:,IKB  ,1    ))**2         &
       +TURBN%XIMPL *                                                  &
-       ( ZCOEFF(IIJB:IIJE,IKB+2*IKL)*PRP(IIJB:IIJE,IKB+2*IKL)               &
-        +ZCOEFF(IIJB:IIJE,IKB+IKL  )*PRP(IIJB:IIJE,IKB+IKL  )               &
-        +ZCOEFF(IIJB:IIJE,IKB      )*PRP(IIJB:IIJE,IKB      ))**2           &
+       ( ZCOEFF(:,IKB+2*IKL)*PRP(:,IKB+2*IKL)               &
+        +ZCOEFF(:,IKB+IKL  )*PRP(:,IKB+IKL  )               &
+        +ZCOEFF(:,IKB      )*PRP(:,IKB      ))**2           &
      ) 
     !$mnh_end_expand_array(JIJ=IIJB:IIJE)
   ENDIF
     !
     !$mnh_expand_array(JIJ=IIJB:IIJE)
-    ZFLXZ(IIJB:IIJE,IKA) = ZFLXZ(IIJB:IIJE,IKB)
+    ZFLXZ(:,IKA) = ZFLXZ(:,IKB)
     !$mnh_end_expand_array(JIJ=IIJB:IIJE)
     IF (TURBN%LSTATNW) THEN
       !wc  The variance from the budget eq should be multiplied by 2 here
       !    thl'2=2*L*LEPS*(dthl/dz**2)
       !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-      ZFLXZ(IIJB:IIJE,1:IKT) = MAX(0., 2.*ZFLXZ(IIJB:IIJE,1:IKT))
+      ZFLXZ(:,:) = MAX(0., 2.*ZFLXZ(:,:))
       !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
     ENDIF
     !
     IF ( KRRL > 0 ) THEN
       !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-      PSIGS(IIJB:IIJE,1:IKT) = PSIGS(IIJB:IIJE,1:IKT) + PAMOIST(IIJB:IIJE,1:IKT) **2 &
-                                     * ZFLXZ(IIJB:IIJE,1:IKT)
+      PSIGS(:,:) = PSIGS(:,:) + PAMOIST(:,:) **2 &
+                                     * ZFLXZ(:,:)
       !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
     END IF
     ! stores <Rnp Rnp>
@@ -1218,24 +1218,24 @@ ENDIF
       !
       CALL MZF_PHY(D,PWM,ZWORK1)
       !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-      ZWORK2(IIJB:IIJE,1:IKT) = ZWORK1(IIJB:IIJE,1:IKT) * ZFLXZ(IIJB:IIJE,1:IKT)
+      ZWORK2(:,:) = ZWORK1(:,:) * ZFLXZ(:,:)
       !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
       CALL LES_MEAN_SUBGRID_PHY(D,TLES,ZWORK2, TLES%X_LES_RES_W_SBG_Rt2 )
       !
       !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-      ZWORK1(IIJB:IIJE,1:IKT) = PEMOIST(IIJB:IIJE,1:IKT)*ZFLXZ(IIJB:IIJE,1:IKT)
+      ZWORK1(:,:) = PEMOIST(:,:)*ZFLXZ(:,:)
       !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
       CALL LES_MEAN_SUBGRID_PHY(D,TLES,ZWORK1, TLES%X_LES_SUBGRID_RtThv , .TRUE. )
       !
       !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-      ZWORK1(IIJB:IIJE,1:IKT) = -CSTURB%XA3*PBETA(IIJB:IIJE,1:IKT)*PEMOIST(IIJB:IIJE,1:IKT) &
-                                        * ZFLXZ(IIJB:IIJE,1:IKT)
+      ZWORK1(:,:) = -CSTURB%XA3*PBETA(:,:)*PEMOIST(:,:) &
+                                        * ZFLXZ(:,:)
       !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
       CALL LES_MEAN_SUBGRID_PHY(D,TLES,ZWORK1, TLES%X_LES_SUBGRID_RtPz, .TRUE. )
       !
       !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-      ZWORK1(IIJB:IIJE,1:IKT) = -2.*CSTURB%XCTD*PSQRT_TKE(IIJB:IIJE,1:IKT)*ZFLXZ(IIJB:IIJE,1:IKT) &
-                                        / PLEPS(IIJB:IIJE,1:IKT)
+      ZWORK1(:,:) = -2.*CSTURB%XCTD*PSQRT_TKE(:,:)*ZFLXZ(:,:) &
+                                        / PLEPS(:,:)
       !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
       CALL LES_MEAN_SUBGRID_PHY(D,TLES,ZWORK1, TLES%X_LES_SUBGRID_DISS_Rt2 )
       !
@@ -1251,15 +1251,15 @@ ENDIF
   IF ( KRRL > 0 ) THEN
     ! Extrapolate PSIGS at the ground and at the top
     !$mnh_expand_array(JIJ=IIJB:IIJE)
-    PSIGS(IIJB:IIJE,IKA) = PSIGS(IIJB:IIJE,IKB)
-    PSIGS(IIJB:IIJE,IKU) = PSIGS(IIJB:IIJE,IKE)
+    PSIGS(:,IKA) = PSIGS(:,IKB)
+    PSIGS(:,IKU) = PSIGS(:,IKE)
     !$mnh_end_expand_array(JIJ=IIJB:IIJE)
     !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 #ifdef REPRO48
-    PSIGS(IIJB:IIJE,1:IKT) =  MAX (PSIGS(IIJB:IIJE,1:IKT) , 0.)
-    PSIGS(IIJB:IIJE,1:IKT) =  SQRT(PSIGS(IIJB:IIJE,1:IKT))
+    PSIGS(:,:) =  MAX (PSIGS(:,:) , 0.)
+    PSIGS(:,:) =  SQRT(PSIGS(:,:))
 #else
-    PSIGS(IIJB:IIJE,1:IKT) =  SQRT( MAX (PSIGS(IIJB:IIJE,1:IKT) , 1.E-12) )
+    PSIGS(:,:) =  SQRT( MAX (PSIGS(:,:) , 1.E-12) )
 #endif
     !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
   END IF
diff --git a/src/PHYEX/turb/mode_turb_ver_thermo_flux.f90 b/src/PHYEX/turb/mode_turb_ver_thermo_flux.f90
index b537219ac83a63aa4ce0eb5a3cc0f8d7e95bade1..470a474cce203d400740c9a1c9086f5a6e363ed4 100644
--- a/src/PHYEX/turb/mode_turb_ver_thermo_flux.f90
+++ b/src/PHYEX/turb/mode_turb_ver_thermo_flux.f90
@@ -418,11 +418,11 @@ IF (TURBN%LHARAT) THEN
  ! LHARAT so TKE and length scales at half levels!
   !wc 50MF can be omitted with energy cascade included
   !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-  ZKEFF(IIJB:IIJE,1:IKT) =  PLM(IIJB:IIJE,1:IKT) * SQRT(PTKEM(IIJB:IIJE,1:IKT))
+  ZKEFF(:,:) =  PLM(:,:) * SQRT(PTKEM(:,:))
   !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 ELSE
   !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-  ZWORK1(IIJB:IIJE,1:IKT) = PLM(IIJB:IIJE,1:IKT) * SQRT(PTKEM(IIJB:IIJE,1:IKT))
+  ZWORK1(:,:) = PLM(:,:) * SQRT(PTKEM(:,:))
   !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
   CALL MZM_PHY(D,ZWORK1,ZKEFF)
 ENDIF
@@ -433,11 +433,11 @@ IF(TURBN%LLEONARD) THEN
   IF ( KRRL >= 1 ) THEN
     IF ( KRRI >= 1 ) THEN
       !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-      ZCLD_THOLD(IIJB:IIJE,1:IKT) = PRM(IIJB:IIJE,1:IKT,2) + PRM(IIJB:IIJE,1:IKT,4)
+      ZCLD_THOLD(:,:) = PRM(:,:,2) + PRM(:,:,4)
       !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
     ELSE
       !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-      ZCLD_THOLD(IIJB:IIJE,1:IKT) = PRM(IIJB:IIJE,1:IKT,2)
+      ZCLD_THOLD(:,:) = PRM(:,:,2)
       !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
     END IF
   END IF
@@ -472,14 +472,14 @@ CALL DZM_PHY(D,PTHLM,ZWORK1)
 CALL D_PHI3DTDZ_O_DDTDZ(D,CSTURB,PPHI3,PREDTH1,PREDR1,PRED2TH3,PRED2THR3,TURBN%CTURBDIM,GUSERV,ZWORK2)
 IF (TURBN%LHARAT) THEN
   !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-  ZF(IIJB:IIJE,1:IKT) = -ZKEFF(IIJB:IIJE,1:IKT)*ZWORK1(IIJB:IIJE,1:IKT)/PDZZ(IIJB:IIJE,1:IKT)
-  ZDFDDTDZ(IIJB:IIJE,1:IKT) = -ZKEFF(IIJB:IIJE,1:IKT)
+  ZF(:,:) = -ZKEFF(:,:)*ZWORK1(:,:)/PDZZ(:,:)
+  ZDFDDTDZ(:,:) = -ZKEFF(:,:)
   !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 ELSE
   !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-  ZF(IIJB:IIJE,1:IKT) = -CSTURB%XCSHF*PPHI3(IIJB:IIJE,1:IKT)*ZKEFF(IIJB:IIJE,1:IKT)& 
-                                *ZWORK1(IIJB:IIJE,1:IKT)/PDZZ(IIJB:IIJE,1:IKT)
-  ZDFDDTDZ(IIJB:IIJE,1:IKT) = -CSTURB%XCSHF*ZKEFF(IIJB:IIJE,1:IKT)*ZWORK2(IIJB:IIJE,1:IKT)
+  ZF(:,:) = -CSTURB%XCSHF*PPHI3(:,:)*ZKEFF(:,:)& 
+                                *ZWORK1(:,:)/PDZZ(:,:)
+  ZDFDDTDZ(:,:) = -CSTURB%XCSHF*ZKEFF(:,:)*ZWORK2(:,:)
   !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 END IF
 !
@@ -490,9 +490,9 @@ IF (TURBN%LLEONARD) THEN
   CALL MYF_PHY(D,PHGRAD(:,:,2),ZWORK3) ! GY_W_VW(PWM)
   CALL MZM_PHY(D,PHGRAD(:,:,4),ZWORK4) ! GY_M_M(PTHLM)
   !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)  
-  ZF_LEONARD(IIJB:IIJE,1:IKT)= TURBN%XCOEFHGRADTHL*PDXX(IIJB:IIJE,1:IKT)*PDYY(IIJB:IIJE,1:IKT)/12.0*( &
-                     ZWORK1(IIJB:IIJE,1:IKT)*ZWORK2(IIJB:IIJE,1:IKT) &
-                   + ZWORK3(IIJB:IIJE,1:IKT)*ZWORK4(IIJB:IIJE,1:IKT))
+  ZF_LEONARD(:,:)= TURBN%XCOEFHGRADTHL*PDXX(:,:)*PDYY(:,:)/12.0*( &
+                     ZWORK1(:,:)*ZWORK2(:,:) &
+                   + ZWORK3(:,:)*ZWORK4(:,:))
   !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 END IF
 !
@@ -505,9 +505,9 @@ IF (GFWTH) THEN
    & PD,PBLL_O_E,PETHETA,ZKEFF,PTKEM,ZWORK1)
 !
   !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-  ZF(IIJB:IIJE,1:IKT)= ZF(IIJB:IIJE,1:IKT) + Z3RDMOMENT(IIJB:IIJE,1:IKT) * PFWTH(IIJB:IIJE,1:IKT)
-  ZDFDDTDZ(IIJB:IIJE,1:IKT) = ZDFDDTDZ(IIJB:IIJE,1:IKT) + ZWORK1(IIJB:IIJE,1:IKT) &
-                                      * PFWTH(IIJB:IIJE,1:IKT)
+  ZF(:,:)= ZF(:,:) + Z3RDMOMENT(:,:) * PFWTH(:,:)
+  ZDFDDTDZ(:,:) = ZDFDDTDZ(:,:) + ZWORK1(:,:) &
+                                      * PFWTH(:,:)
   !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 END IF
 !
@@ -519,10 +519,10 @@ IF (GFTH2) THEN
   CALL MZM_PHY(D,PFTH2,ZWORK2)
 !
   !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-  ZF(IIJB:IIJE,1:IKT) = ZF(IIJB:IIJE,1:IKT) + Z3RDMOMENT(IIJB:IIJE,1:IKT) &
-                                * ZWORK2(IIJB:IIJE,1:IKT)
-  ZDFDDTDZ(IIJB:IIJE,1:IKT) = ZDFDDTDZ(IIJB:IIJE,1:IKT) + ZWORK1(IIJB:IIJE,1:IKT) &
-                                      * ZWORK2(IIJB:IIJE,1:IKT)
+  ZF(:,:) = ZF(:,:) + Z3RDMOMENT(:,:) &
+                                * ZWORK2(:,:)
+  ZDFDDTDZ(:,:) = ZDFDDTDZ(:,:) + ZWORK1(:,:) &
+                                      * ZWORK2(:,:)
   !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 END IF
 !
@@ -532,9 +532,9 @@ IF (GFWR) THEN
   CALL D_M3_WTH_W2R_O_DDTDZ(D,CSTURB,PREDTH1,PREDR1,PD,ZKEFF,PTKEM,PBLL_O_E,PEMOIST,ZWORK2)
 !
   !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-  ZF(IIJB:IIJE,1:IKT) = ZF(IIJB:IIJE,1:IKT) + ZWORK1(IIJB:IIJE,1:IKT) * PFWR(IIJB:IIJE,1:IKT)
-  ZDFDDTDZ(IIJB:IIJE,1:IKT) = ZDFDDTDZ(IIJB:IIJE,1:IKT) + ZWORK2(IIJB:IIJE,1:IKT) &
-                                      * PFWR(IIJB:IIJE,1:IKT)
+  ZF(:,:) = ZF(:,:) + ZWORK1(:,:) * PFWR(:,:)
+  ZDFDDTDZ(:,:) = ZDFDDTDZ(:,:) + ZWORK2(:,:) &
+                                      * PFWR(:,:)
   !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 END IF
 !
@@ -546,9 +546,9 @@ IF (GFR2) THEN
     & ZKEFF,PTKEM,PSQRT_TKE,PBLL_O_E,PBETA,PLEPS,PEMOIST,ZWORK3)
 !
   !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)    
-  ZF(IIJB:IIJE,1:IKT) = ZF(IIJB:IIJE,1:IKT) + ZWORK1(IIJB:IIJE,1:IKT) * ZWORK2(IIJB:IIJE,1:IKT)
-  ZDFDDTDZ(IIJB:IIJE,1:IKT) = ZDFDDTDZ(IIJB:IIJE,1:IKT) + ZWORK3(IIJB:IIJE,1:IKT) &
-                                      * ZWORK2(IIJB:IIJE,1:IKT)
+  ZF(:,:) = ZF(:,:) + ZWORK1(:,:) * ZWORK2(:,:)
+  ZDFDDTDZ(:,:) = ZDFDDTDZ(:,:) + ZWORK3(:,:) &
+                                      * ZWORK2(:,:)
   !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 END IF
 !
@@ -560,17 +560,17 @@ IF (GFTHR) THEN
   CALL MZM_PHY(D,PFTHR, ZWORK2)
 !
   !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-  ZF(IIJB:IIJE,1:IKT) = ZF(IIJB:IIJE,1:IKT) + Z3RDMOMENT(IIJB:IIJE,1:IKT) &
-                                * ZWORK2(IIJB:IIJE,1:IKT)
-  ZDFDDTDZ(IIJB:IIJE,1:IKT) = ZDFDDTDZ(IIJB:IIJE,1:IKT) + ZWORK1(IIJB:IIJE,1:IKT) &
-                                      * ZWORK2(IIJB:IIJE,1:IKT)
+  ZF(:,:) = ZF(:,:) + Z3RDMOMENT(:,:) &
+                                * ZWORK2(:,:)
+  ZDFDDTDZ(:,:) = ZDFDDTDZ(:,:) + ZWORK1(:,:) &
+                                      * ZWORK2(:,:)
   !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 END IF
 ! specialcase for surface
 IF (OOCEAN) THEN    ! ocean model in coupled case
   !$mnh_expand_array(JIJ=IIJB:IIJE) 
-  ZF(IIJB:IIJE,IKE+1) =  PSFTHM(IIJB:IIJE) &
-                *0.5* ( 1. + PRHODJ(IIJB:IIJE,IKU)/PRHODJ(IIJB:IIJE,IKE) )
+  ZF(:,IKE+1) =  PSFTHM(:) &
+                *0.5* ( 1. + PRHODJ(:,IKU)/PRHODJ(:,IKE) )
   !$mnh_end_expand_array(JIJ=IIJB:IIJE) 
 ELSE ! atmosp bottom
   !*In 3D, a part of the flux goes vertically,
@@ -578,22 +578,22 @@ ELSE ! atmosp bottom
   !*In 1D, part of energy released in horizontal flux is taken into account in the vertical part
   IF (TURBN%CTURBDIM=='3DIM') THEN
     !$mnh_expand_array(JIJ=IIJB:IIJE) 
-    ZF(IIJB:IIJE,IKB) = ( TURBN%XIMPL*PSFTHP(IIJB:IIJE) + PEXPL*PSFTHM(IIJB:IIJE) )   &
-                       * PDIRCOSZW(IIJB:IIJE)                       &
-                       * 0.5 * (1. + PRHODJ(IIJB:IIJE,IKA) / PRHODJ(IIJB:IIJE,IKB))
+    ZF(:,IKB) = ( TURBN%XIMPL*PSFTHP(:) + PEXPL*PSFTHM(:) )   &
+                       * PDIRCOSZW(:)                       &
+                       * 0.5 * (1. + PRHODJ(:,IKA) / PRHODJ(:,IKB))
     !$mnh_end_expand_array(JIJ=IIJB:IIJE) 
   ELSE
     !$mnh_expand_array(JIJ=IIJB:IIJE) 
-    ZF(IIJB:IIJE,IKB) = ( TURBN%XIMPL*PSFTHP(IIJB:IIJE) + PEXPL*PSFTHM(IIJB:IIJE) )   &
-                       / PDIRCOSZW(IIJB:IIJE)                       &
-                       * 0.5 * (1. + PRHODJ(IIJB:IIJE,IKA) / PRHODJ(IIJB:IIJE,IKB))
+    ZF(:,IKB) = ( TURBN%XIMPL*PSFTHP(:) + PEXPL*PSFTHM(:) )   &
+                       / PDIRCOSZW(:)                       &
+                       * 0.5 * (1. + PRHODJ(:,IKA) / PRHODJ(:,IKB))
     !$mnh_end_expand_array(JIJ=IIJB:IIJE) 
   END IF
 !
     ! atmos top
 #ifdef REPRO48
 #else
-      ZF(IIJB:IIJE,IKE+1)=0.
+      ZF(:,IKE+1)=0.
 #endif
 END IF
 !
@@ -604,62 +604,62 @@ CALL TRIDIAG_THERMO(D,PTHLM,ZF,ZDFDDTDZ,PTSTEP,TURBN%XIMPL,PDZZ,&
 ! Compute the equivalent tendency for the conservative potential temperature
 !
 !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)    
-ZRWTHL(IIJB:IIJE,1:IKT)= PRHODJ(IIJB:IIJE,1:IKT)*(PTHLP(IIJB:IIJE,1:IKT)-PTHLM(IIJB:IIJE,1:IKT))& 
+ZRWTHL(:,:)= PRHODJ(:,:)*(PTHLP(:,:)-PTHLM(:,:))& 
                                  /PTSTEP
 !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)    
 ! replace the flux by the Leonard terms above ZALT and ZCLD_THOLD
 IF (TURBN%LLEONARD) THEN
  DO JK=1,IKT
    !$mnh_expand_array(JIJ=IIJB:IIJE)
-   ZALT(IIJB:IIJE,JK) = PZZ(IIJB:IIJE,JK)-PZS(IIJB:IIJE) 
+   ZALT(:,JK) = PZZ(:,JK)-PZS(:) 
    !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
  END DO
  CALL MZM_PHY(D,PRHODJ,ZWORK1)
  !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
- ZWORK2(IIJB:IIJE,1:IKT) = ZWORK1(IIJB:IIJE,1:IKT)*ZF_LEONARD(IIJB:IIJE,1:IKT)
+ ZWORK2(:,:) = ZWORK1(:,:)*ZF_LEONARD(:,:)
  !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
  CALL GZ_W_M_PHY(D,ZWORK2,PDZZ,ZWORK3)
  !$mnh_expand_where(JIJ=IIJB:IIJE,JK=1:IKT)
- WHERE ( (ZCLD_THOLD(IIJB:IIJE,1:IKT) >= TURBN%XCLDTHOLD) .AND. ( ZALT(IIJB:IIJE,1:IKT) >= TURBN%XALTHGRAD) )
-  ZRWTHL(IIJB:IIJE,1:IKT) = -ZWORK3(IIJB:IIJE,1:IKT)
-  PTHLP(IIJB:IIJE,1:IKT)=PTHLM(IIJB:IIJE,1:IKT)+PTSTEP*ZRWTHL(IIJB:IIJE,1:IKT)/PRHODJ(IIJB:IIJE,1:IKT)
+ WHERE ( (ZCLD_THOLD(:,:) >= TURBN%XCLDTHOLD) .AND. ( ZALT(:,:) >= TURBN%XALTHGRAD) )
+  ZRWTHL(:,:) = -ZWORK3(:,:)
+  PTHLP(:,:)=PTHLM(:,:)+PTSTEP*ZRWTHL(:,:)/PRHODJ(:,:)
  END WHERE
  !$mnh_end_expand_where(JIJ=IIJB:IIJE,JK=1:IKT)
 END IF
 !
 !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-ZWORK1(IIJB:IIJE,1:IKT) = PTHLP(IIJB:IIJE,1:IKT) - PTHLM(IIJB:IIJE,1:IKT)
+ZWORK1(:,:) = PTHLP(:,:) - PTHLM(:,:)
 !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 CALL DZM_PHY(D,ZWORK1,ZWORK2)
 !
 !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-PRTHLS(IIJB:IIJE,1:IKT)= PRTHLS(IIJB:IIJE,1:IKT)  + ZRWTHL(IIJB:IIJE,1:IKT)
+PRTHLS(:,:)= PRTHLS(:,:)  + ZRWTHL(:,:)
 !
 !*       2.2  Partial Thermal Production
 !
 !  Conservative potential temperature flux :
 !
 !
-ZFLXZ(IIJB:IIJE,1:IKT)   = ZF(IIJB:IIJE,1:IKT) + TURBN%XIMPL * ZDFDDTDZ(IIJB:IIJE,1:IKT) * & 
-                                   ZWORK2(IIJB:IIJE,1:IKT)/ PDZZ(IIJB:IIJE,1:IKT)
+ZFLXZ(:,:)   = ZF(:,:) + TURBN%XIMPL * ZDFDDTDZ(:,:) * & 
+                                   ZWORK2(:,:)/ PDZZ(:,:)
 !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 !
 ! replace the flux by the Leonard terms
 IF (TURBN%LLEONARD) THEN
  !$mnh_expand_where(JIJ=IIJB:IIJE,JK=1:IKT)
- WHERE ( (ZCLD_THOLD(IIJB:IIJE,1:IKT) >= TURBN%XCLDTHOLD) .AND. ( ZALT(IIJB:IIJE,1:IKT) >= TURBN%XALTHGRAD) )
-  ZFLXZ(IIJB:IIJE,1:IKT) = ZF_LEONARD(IIJB:IIJE,1:IKT)
+ WHERE ( (ZCLD_THOLD(:,:) >= TURBN%XCLDTHOLD) .AND. ( ZALT(:,:) >= TURBN%XALTHGRAD) )
+  ZFLXZ(:,:) = ZF_LEONARD(:,:)
  END WHERE
  !$mnh_end_expand_where(JIJ=IIJB:IIJE,JK=1:IKT)
 END IF
 !
 IF (OOCEAN) THEN
   !$mnh_expand_array(JIJ=IIJB:IIJE)
-  ZFLXZ(IIJB:IIJE,IKE+1) = ZFLXZ(IIJB:IIJE,IKE)
+  ZFLXZ(:,IKE+1) = ZFLXZ(:,IKE)
   !$mnh_end_expand_array(JIJ=IIJB:IIJE)
 ELSE
   !$mnh_expand_array(JIJ=IIJB:IIJE)
-  ZFLXZ(IIJB:IIJE,IKA) = ZFLXZ(IIJB:IIJE,IKB)
+  ZFLXZ(:,IKA) = ZFLXZ(:,IKB)
   !$mnh_end_expand_array(JIJ=IIJB:IIJE)
 END IF
 !
@@ -669,25 +669,25 @@ IF ( OFLYER ) THEN
   !
   DO JK = IKTB + 1, IKTE - 1
     !$mnh_expand_array(JIJ=IIJB:IIJE)
-    PWTH(IIJB:IIJE,JK)=0.5*(ZFLXZ(IIJB:IIJE,JK)+ZFLXZ(IIJB:IIJE,JK+IKL))
+    PWTH(:,JK)=0.5*(ZFLXZ(:,JK)+ZFLXZ(:,JK+IKL))
     !$mnh_end_expand_array(JIJ=IIJB:IIJE)
   END DO
   !
   !$mnh_expand_array(JIJ=IIJB:IIJE)
-  PWTH(IIJB:IIJE,IKB)=0.5*(ZFLXZ(IIJB:IIJE,IKB)+ZFLXZ(IIJB:IIJE,IKB+IKL)) 
+  PWTH(:,IKB)=0.5*(ZFLXZ(:,IKB)+ZFLXZ(:,IKB+IKL)) 
   !$mnh_end_expand_array(JIJ=IIJB:IIJE)
   !
   IF (OOCEAN) THEN
     !$mnh_expand_array(JIJ=IIJB:IIJE)
-    PWTH(IIJB:IIJE,IKE)=0.5*(ZFLXZ(IIJB:IIJE,IKE)+ZFLXZ(IIJB:IIJE,IKE+IKL))
-    PWTH(IIJB:IIJE,IKA)=0.
-    PWTH(IIJB:IIJE,IKU)=PWTH(IIJB:IIJE,IKE)! not used
+    PWTH(:,IKE)=0.5*(ZFLXZ(:,IKE)+ZFLXZ(:,IKE+IKL))
+    PWTH(:,IKA)=0.
+    PWTH(:,IKU)=PWTH(:,IKE)! not used
     !$mnh_end_expand_array(JIJ=IIJB:IIJE)
   ELSE
     !$mnh_expand_array(JIJ=IIJB:IIJE)
-    PWTH(IIJB:IIJE,IKA)=0.5*(ZFLXZ(IIJB:IIJE,IKA)+ZFLXZ(IIJB:IIJE,IKA+IKL))
-    PWTH(IIJB:IIJE,IKE)=PWTH(IIJB:IIJE,IKE-IKL)
-    PWTH(IIJB:IIJE,IKU)=0.
+    PWTH(:,IKA)=0.5*(ZFLXZ(:,IKA)+ZFLXZ(:,IKA+IKL))
+    PWTH(:,IKE)=PWTH(:,IKE-IKL)
+    PWTH(:,IKU)=0.
     !$mnh_end_expand_array(JIJ=IIJB:IIJE)
   END IF
 END IF
@@ -712,25 +712,25 @@ END IF
 IF (OOCEAN) THEN
   CALL MZF_PHY(D,ZFLXZ,ZWORK1)
   !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-  PTP(IIJB:IIJE,1:IKT)= CST%XG*CST%XALPHAOC * ZWORK1(IIJB:IIJE,1:IKT)
+  PTP(:,:)= CST%XG*CST%XALPHAOC * ZWORK1(:,:)
   !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 ELSE
   IF (KRR /= 0) THEN
     CALL MZM_PHY(D,PETHETA,ZWORK1)
-    ZWORK1(IIJB:IIJE,1:IKT) = ZWORK1(IIJB:IIJE,1:IKT) * ZFLXZ(IIJB:IIJE,1:IKT)
+    ZWORK1(:,:) = ZWORK1(:,:) * ZFLXZ(:,:)
     CALL MZF_PHY(D,ZWORK1,ZWORK2)
     !ZWORK1 = MZF( MZM(PETHETA,IKA, IKU, IKL) * ZFLXZ,IKA, IKU, IKL )
     !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-    PTP(IIJB:IIJE,1:IKT)  =  PBETA(IIJB:IIJE,1:IKT) * ZWORK2(IIJB:IIJE,1:IKT)
+    PTP(:,:)  =  PBETA(:,:) * ZWORK2(:,:)
     !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
     !$mnh_expand_array(JIJ=IIJB:IIJE)
-    PTP(IIJB:IIJE,IKB)=  PBETA(IIJB:IIJE,IKB) * PETHETA(IIJB:IIJE,IKB) *   &
-                   0.5 * ( ZFLXZ(IIJB:IIJE,IKB) + ZFLXZ(IIJB:IIJE,IKB+IKL) )
+    PTP(:,IKB)=  PBETA(:,IKB) * PETHETA(:,IKB) *   &
+                   0.5 * ( ZFLXZ(:,IKB) + ZFLXZ(:,IKB+IKL) )
     !$mnh_end_expand_array(JIJ=IIJB:IIJE)
   ELSE
     CALL MZF_PHY(D,ZFLXZ,ZWORK1)
     !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-    PTP(IIJB:IIJE,1:IKT)=  PBETA(IIJB:IIJE,1:IKT) * ZWORK1(IIJB:IIJE,1:IKT)
+    PTP(:,:)=  PBETA(:,:) * ZWORK1(:,:)
     !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
   END IF
 END IF
@@ -739,16 +739,16 @@ END IF
 !
 CALL MZM_PHY(D,PETHETA,ZWORK1)
 !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-PWTHV(IIJB:IIJE,1:IKT) = ZWORK1(IIJB:IIJE,1:IKT) * ZFLXZ(IIJB:IIJE,1:IKT)
+PWTHV(:,:) = ZWORK1(:,:) * ZFLXZ(:,:)
 !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 !$mnh_expand_array(JIJ=IIJB:IIJE)
-PWTHV(IIJB:IIJE,IKB) = PETHETA(IIJB:IIJE,IKB) * ZFLXZ(IIJB:IIJE,IKB)
+PWTHV(:,IKB) = PETHETA(:,IKB) * ZFLXZ(:,IKB)
 !$mnh_end_expand_array(JIJ=IIJB:IIJE)
 !
 IF (OOCEAN) THEN
   ! temperature contribution to Buy flux
   !$mnh_expand_array(JIJ=IIJB:IIJE)
-  PWTHV(IIJB:IIJE,IKE) = PETHETA(IIJB:IIJE,IKE) * ZFLXZ(IIJB:IIJE,IKE)
+  PWTHV(:,IKE) = PETHETA(:,IKE) * ZFLXZ(:,IKE)
   !$mnh_end_expand_array(JIJ=IIJB:IIJE)
 END IF
 !*       2.3  Partial vertical divergence of the < Rc w > flux
@@ -756,23 +756,23 @@ END IF
 IF(HPROGRAM/='AROME  ') THEN
  IF ( KRRL >= 1 ) THEN
    !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-   ZWORK1(IIJB:IIJE,1:IKT) = ZFLXZ(IIJB:IIJE,1:IKT)/PDZZ(IIJB:IIJE,1:IKT)
+   ZWORK1(:,:) = ZFLXZ(:,:)/PDZZ(:,:)
    !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
    CALL DZF_PHY(D,ZWORK1,ZWORK2)
    IF ( KRRI >= 1 ) THEN
      !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-     PRRS(IIJB:IIJE,1:IKT,2) = PRRS(IIJB:IIJE,1:IKT,2) -                                        &
-                     PRHODJ(IIJB:IIJE,1:IKT)*PATHETA(IIJB:IIJE,1:IKT)*2.*PSRCM(IIJB:IIJE,1:IKT)& 
-                     *ZWORK2(IIJB:IIJE,1:IKT) *(1.0-PFRAC_ICE(IIJB:IIJE,1:IKT))
-     PRRS(IIJB:IIJE,1:IKT,4) = PRRS(IIJB:IIJE,1:IKT,4) -                                        &
-                     PRHODJ(IIJB:IIJE,1:IKT)*PATHETA(IIJB:IIJE,1:IKT)*2.*PSRCM(IIJB:IIJE,1:IKT)&
-                     * ZWORK2(IIJB:IIJE,1:IKT)*PFRAC_ICE(IIJB:IIJE,1:IKT)
+     PRRS(:,:,2) = PRRS(:,:,2) -                                        &
+                     PRHODJ(:,:)*PATHETA(:,:)*2.*PSRCM(:,:)& 
+                     *ZWORK2(:,:) *(1.0-PFRAC_ICE(:,:))
+     PRRS(:,:,4) = PRRS(:,:,4) -                                        &
+                     PRHODJ(:,:)*PATHETA(:,:)*2.*PSRCM(:,:)&
+                     * ZWORK2(:,:)*PFRAC_ICE(:,:)
      !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
    ELSE
      !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-     PRRS(IIJB:IIJE,1:IKT,2) = PRRS(IIJB:IIJE,1:IKT,2) -                                        &
-                     PRHODJ(IIJB:IIJE,1:IKT)*PATHETA(IIJB:IIJE,1:IKT)*2.*PSRCM(IIJB:IIJE,1:IKT)&
-                     *ZWORK2(IIJB:IIJE,1:IKT)
+     PRRS(:,:,2) = PRRS(:,:,2) -                                        &
+                     PRHODJ(:,:)*PATHETA(:,:)*2.*PSRCM(:,:)&
+                     *ZWORK2(:,:)
      !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
    END IF
  END IF
@@ -788,39 +788,39 @@ IF (TLES%LLES_CALL) THEN
   CALL LES_MEAN_SUBGRID_PHY(D,TLES,ZWORK1, TLES%X_LES_SUBGRID_WThl )
   !
   !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-  ZWORK2(IIJB:IIJE,1:IKT) = PWM(IIJB:IIJE,1:IKT)*ZFLXZ(IIJB:IIJE,1:IKT)
+  ZWORK2(:,:) = PWM(:,:)*ZFLXZ(:,:)
   !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
   CALL MZF_PHY(D,ZWORK2,ZWORK3)
   CALL LES_MEAN_SUBGRID_PHY(D,TLES,ZWORK3, TLES%X_LES_RES_W_SBG_WThl )
   !
   CALL GZ_W_M_PHY(D,PWM,PDZZ,ZWORK2)
   !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-  ZWORK3(IIJB:IIJE,1:IKT) = ZWORK2(IIJB:IIJE,1:IKT) * ZWORK1(IIJB:IIJE,1:IKT)
+  ZWORK3(:,:) = ZWORK2(:,:) * ZWORK1(:,:)
   !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
   CALL LES_MEAN_SUBGRID_PHY(D,TLES,ZWORK3, TLES%X_LES_RES_ddxa_W_SBG_UaThl )
   !
   !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-  ZWORK2(IIJB:IIJE,1:IKT) = PDTH_DZ(IIJB:IIJE,1:IKT)*ZFLXZ(IIJB:IIJE,1:IKT)
+  ZWORK2(:,:) = PDTH_DZ(:,:)*ZFLXZ(:,:)
   !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
   CALL MZF_PHY(D,ZWORK2,ZWORK3)
   CALL LES_MEAN_SUBGRID_PHY(D,TLES,ZWORK3, TLES%X_LES_RES_ddxa_Thl_SBG_UaThl )
   !
   CALL MZM_PHY(D,PETHETA,ZWORK2)
   !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-  ZWORK3(IIJB:IIJE,1:IKT) = ZWORK2(IIJB:IIJE,1:IKT) * ZFLXZ(IIJB:IIJE,1:IKT)
+  ZWORK3(:,:) = ZWORK2(:,:) * ZFLXZ(:,:)
   !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
   CALL MZF_PHY(D,ZWORK3,ZWORK4)
   CALL LES_MEAN_SUBGRID_PHY(D,TLES,ZWORK4, TLES%X_LES_SUBGRID_WThv , .TRUE. ) 
   !
   !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-  ZWORK2(IIJB:IIJE,1:IKT) = -CSTURB%XCTP*PSQRT_TKE(IIJB:IIJE,1:IKT)/PLM(IIJB:IIJE,1:IKT) &
-                                    *ZWORK1(IIJB:IIJE,1:IKT)
+  ZWORK2(:,:) = -CSTURB%XCTP*PSQRT_TKE(:,:)/PLM(:,:) &
+                                    *ZWORK1(:,:)
   !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
   CALL LES_MEAN_SUBGRID_PHY(D,TLES,ZWORK2, TLES%X_LES_SUBGRID_ThlPz ) 
   !
   IF (KRR>=1) THEN
     !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-    ZWORK2(IIJB:IIJE,1:IKT) = PDR_DZ(IIJB:IIJE,1:IKT)*ZFLXZ(IIJB:IIJE,1:IKT)
+    ZWORK2(:,:) = PDR_DZ(:,:)*ZFLXZ(:,:)
     !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
     CALL MZF_PHY(D,ZWORK2,ZWORK3)
     CALL LES_MEAN_SUBGRID_PHY(D,TLES,ZWORK3, TLES%X_LES_RES_ddxa_Rt_SBG_UaThl )
@@ -829,19 +829,19 @@ IF (TLES%LLES_CALL) THEN
   !* diagnostic of mixing coefficient for heat
   CALL DZM_PHY(D,PTHLP,ZA)
   !$mnh_expand_where(JIJ=IIJB:IIJE,JK=1:IKT)
-  WHERE (ZA(IIJB:IIJE,1:IKT)==0.) 
-    ZA(IIJB:IIJE,1:IKT)=1.E-6
+  WHERE (ZA(:,:)==0.) 
+    ZA(:,:)=1.E-6
   END WHERE
   !$mnh_end_expand_where(JIJ=IIJB:IIJE,JK=1:IKT)
   !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-  ZA(IIJB:IIJE,1:IKT) = - ZFLXZ(IIJB:IIJE,1:IKT) / ZA(IIJB:IIJE,1:IKT) * PDZZ(IIJB:IIJE,1:IKT)
+  ZA(:,:) = - ZFLXZ(:,:) / ZA(:,:) * PDZZ(:,:)
   !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
   !$mnh_expand_array(JIJ=IIJB:IIJE)
-  ZA(IIJB:IIJE,IKB) = CSTURB%XCSHF*PPHI3(IIJB:IIJE,IKB)*ZKEFF(IIJB:IIJE,IKB)
+  ZA(:,IKB) = CSTURB%XCSHF*PPHI3(:,IKB)*ZKEFF(:,IKB)
   !$mnh_end_expand_array(JIJ=IIJB:IIJE)
   CALL MZF_PHY(D,ZA,ZA)
   !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-  ZA(IIJB:IIJE,1:IKT) = MIN(MAX(ZA(IIJB:IIJE,1:IKT),-1000.),1000.)
+  ZA(:,:) = MIN(MAX(ZA(:,:),-1000.),1000.)
   !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
   CALL LES_MEAN_SUBGRID_PHY(D,TLES,ZA, TLES%X_LES_SUBGRID_Kh )
   !
@@ -869,15 +869,15 @@ IF (KRR /= 0) THEN
   CALL DZM_PHY(D,PRM(:,:,1),ZWORK1)
  IF (TURBN%LHARAT) THEN
   !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)    
-  ZF(IIJB:IIJE,1:IKT) = -ZKEFF(IIJB:IIJE,1:IKT)*ZWORK1(IIJB:IIJE,1:IKT)/PDZZ(IIJB:IIJE,1:IKT)
-  ZDFDDRDZ(IIJB:IIJE,1:IKT) = -ZKEFF(IIJB:IIJE,1:IKT)
+  ZF(:,:) = -ZKEFF(:,:)*ZWORK1(:,:)/PDZZ(:,:)
+  ZDFDDRDZ(:,:) = -ZKEFF(:,:)
   !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)    
  ELSE
   CALL D_PSI3DRDZ_O_DDRDZ(D,CSTURB,PPSI3,PREDR1,PREDTH1,PRED2R3,PRED2THR3,TURBN%CTURBDIM,GUSERV,ZWORK2)
   !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)    
-  ZF(IIJB:IIJE,1:IKT) = -CSTURB%XCSHF*PPSI3(IIJB:IIJE,1:IKT)*ZKEFF(IIJB:IIJE,1:IKT)& 
-                                *ZWORK1(IIJB:IIJE,1:IKT)/PDZZ(IIJB:IIJE,1:IKT)
-  ZDFDDRDZ(IIJB:IIJE,1:IKT) = -CSTURB%XCSHF*ZKEFF(IIJB:IIJE,1:IKT)*ZWORK2(IIJB:IIJE,1:IKT)
+  ZF(:,:) = -CSTURB%XCSHF*PPSI3(:,:)*ZKEFF(:,:)& 
+                                *ZWORK1(:,:)/PDZZ(:,:)
+  ZDFDDRDZ(:,:) = -CSTURB%XCSHF*ZKEFF(:,:)*ZWORK2(:,:)
   !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)    
  ENDIF
   !
@@ -888,9 +888,9 @@ IF (KRR /= 0) THEN
   CALL MYF_PHY(D,PHGRAD(:,:,2),ZWORK3) ! GY_W_VW(PWM)
   CALL MZM_PHY(D,PHGRAD(:,:,6),ZWORK4) ! GY_M_M(PRM)
   !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)  
-  ZF_LEONARD(IIJB:IIJE,1:IKT)= TURBN%XCOEFHGRADTHL*PDXX(IIJB:IIJE,1:IKT)*PDYY(IIJB:IIJE,1:IKT)/12.0*( &
-                     ZWORK1(IIJB:IIJE,1:IKT)*ZWORK2(IIJB:IIJE,1:IKT) &
-                   + ZWORK3(IIJB:IIJE,1:IKT)*ZWORK4(IIJB:IIJE,1:IKT))
+  ZF_LEONARD(:,:)= TURBN%XCOEFHGRADTHL*PDXX(:,:)*PDYY(:,:)/12.0*( &
+                     ZWORK1(:,:)*ZWORK2(:,:) &
+                   + ZWORK3(:,:)*ZWORK4(:,:))
   !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
  END IF
   !
@@ -903,9 +903,9 @@ IF (KRR /= 0) THEN
      & PBLL_O_E,PEMOIST,ZKEFF,PTKEM,ZWORK1)
   !
     !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-    ZF(IIJB:IIJE,1:IKT)= ZF(IIJB:IIJE,1:IKT) + Z3RDMOMENT(IIJB:IIJE,1:IKT) * PFWR(IIJB:IIJE,1:IKT)
-    ZDFDDRDZ(IIJB:IIJE,1:IKT) = ZDFDDRDZ(IIJB:IIJE,1:IKT) + ZWORK1(IIJB:IIJE,1:IKT) &
-                                        * PFWR(IIJB:IIJE,1:IKT)
+    ZF(:,:)= ZF(:,:) + Z3RDMOMENT(:,:) * PFWR(:,:)
+    ZDFDDRDZ(:,:) = ZDFDDRDZ(:,:) + ZWORK1(:,:) &
+                                        * PFWR(:,:)
     !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
   END IF
   !
@@ -917,10 +917,10 @@ IF (KRR /= 0) THEN
      & PREDTH1,PD,PBLL_O_E,PEMOIST,ZWORK2)
   !
     !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-    ZF(IIJB:IIJE,1:IKT) = ZF(IIJB:IIJE,1:IKT) + Z3RDMOMENT(IIJB:IIJE,1:IKT) &
-                                  * ZWORK1(IIJB:IIJE,1:IKT)
-    ZDFDDRDZ(IIJB:IIJE,1:IKT) = ZDFDDRDZ(IIJB:IIJE,1:IKT) + ZWORK2(IIJB:IIJE,1:IKT) &
-                                        * ZWORK1(IIJB:IIJE,1:IKT)
+    ZF(:,:) = ZF(:,:) + Z3RDMOMENT(:,:) &
+                                  * ZWORK1(:,:)
+    ZDFDDRDZ(:,:) = ZDFDDRDZ(:,:) + ZWORK2(:,:) &
+                                        * ZWORK1(:,:)
     !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
   END IF
   !
@@ -932,9 +932,9 @@ IF (KRR /= 0) THEN
      & PD,ZKEFF,PTKEM,PBLL_O_E,PETHETA,ZWORK2)
   !
     !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-    ZF(IIJB:IIJE,1:IKT) = ZF(IIJB:IIJE,1:IKT) + ZWORK1(IIJB:IIJE,1:IKT) * PFWTH(IIJB:IIJE,1:IKT)
-    ZDFDDRDZ(IIJB:IIJE,1:IKT) = ZDFDDRDZ(IIJB:IIJE,1:IKT) + ZWORK2(IIJB:IIJE,1:IKT) &
-                                        * PFWTH(IIJB:IIJE,1:IKT)
+    ZF(:,:) = ZF(:,:) + ZWORK1(:,:) * PFWTH(:,:)
+    ZDFDDRDZ(:,:) = ZDFDDRDZ(:,:) + ZWORK2(:,:) &
+                                        * PFWTH(:,:)
     !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
   END IF
   !
@@ -947,9 +947,9 @@ IF (KRR /= 0) THEN
      &ZKEFF,PTKEM,PSQRT_TKE,PBLL_O_E,PBETA,PLEPS,PETHETA,ZWORK3)
     !
     !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-    ZF(IIJB:IIJE,1:IKT) = ZF(IIJB:IIJE,1:IKT) + ZWORK2(IIJB:IIJE,1:IKT) * ZWORK1(IIJB:IIJE,1:IKT)
-    ZDFDDRDZ(IIJB:IIJE,1:IKT) = ZDFDDRDZ(IIJB:IIJE,1:IKT) + ZWORK3(IIJB:IIJE,1:IKT) &
-                                        * ZWORK1(IIJB:IIJE,1:IKT)
+    ZF(:,:) = ZF(:,:) + ZWORK2(:,:) * ZWORK1(:,:)
+    ZDFDDRDZ(:,:) = ZDFDDRDZ(:,:) + ZWORK3(:,:) &
+                                        * ZWORK1(:,:)
     !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
   END IF
   !
@@ -962,10 +962,10 @@ IF (KRR /= 0) THEN
      & PREDTH1,PD,PBLL_O_E,PEMOIST,ZWORK2)
   !
     !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-    ZF(IIJB:IIJE,1:IKT) = ZF(IIJB:IIJE,1:IKT) + Z3RDMOMENT(IIJB:IIJE,1:IKT) &
-                                  * ZWORK1(IIJB:IIJE,1:IKT)
-    ZDFDDRDZ(IIJB:IIJE,1:IKT) = ZDFDDRDZ(IIJB:IIJE,1:IKT) + ZWORK2(IIJB:IIJE,1:IKT) &
-                                        * ZWORK1(IIJB:IIJE,1:IKT)
+    ZF(:,:) = ZF(:,:) + Z3RDMOMENT(:,:) &
+                                  * ZWORK1(:,:)
+    ZDFDDRDZ(:,:) = ZDFDDRDZ(:,:) + ZWORK2(:,:) &
+                                        * ZWORK1(:,:)
     !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
   END IF
   !
@@ -973,7 +973,7 @@ IF (KRR /= 0) THEN
     IF (OOCEAN) THEN
       ! General ocean case
       ! salinity/evap effect to be added later !!!!!
-      ZF(IIJB:IIJE,IKE) = 0.
+      ZF(:,IKE) = 0.
     ELSE ! atmosp case 
     ! atmosp bottom
     !* in 3DIM case, a part of the flux goes vertically, and another goes horizontally
@@ -983,21 +983,21 @@ IF (KRR /= 0) THEN
     !
     IF (TURBN%CTURBDIM=='3DIM') THEN
       !$mnh_expand_array(JIJ=IIJB:IIJE) 
-      ZF(IIJB:IIJE,IKB) = ( TURBN%XIMPL*PSFRP(IIJB:IIJE) + PEXPL*PSFRM(IIJB:IIJE) )       &
-                           * PDIRCOSZW(IIJB:IIJE)                       &
-                         * 0.5 * (1. + PRHODJ(IIJB:IIJE,IKA) / PRHODJ(IIJB:IIJE,IKB))
+      ZF(:,IKB) = ( TURBN%XIMPL*PSFRP(:) + PEXPL*PSFRM(:) )       &
+                           * PDIRCOSZW(:)                       &
+                         * 0.5 * (1. + PRHODJ(:,IKA) / PRHODJ(:,IKB))
       !$mnh_end_expand_array(JIJ=IIJB:IIJE) 
     ELSE
       !$mnh_expand_array(JIJ=IIJB:IIJE) 
-      ZF(IIJB:IIJE,IKB) = ( TURBN%XIMPL*PSFRP(IIJB:IIJE) + PEXPL*PSFRM(IIJB:IIJE) )     &
-                         / PDIRCOSZW(IIJB:IIJE)                       &
-                         * 0.5 * (1. + PRHODJ(IIJB:IIJE,IKA) / PRHODJ(IIJB:IIJE,IKB))
+      ZF(:,IKB) = ( TURBN%XIMPL*PSFRP(:) + PEXPL*PSFRM(:) )     &
+                         / PDIRCOSZW(:)                       &
+                         * 0.5 * (1. + PRHODJ(:,IKA) / PRHODJ(:,IKB))
       !$mnh_end_expand_array(JIJ=IIJB:IIJE) 
     END IF
       ! atmos top
 #ifdef REPRO48
 #else
-      ZF(IIJB:IIJE,IKE+1)=0.
+      ZF(:,IKE+1)=0.
 #endif
     END IF
   ! Compute the split conservative potential temperature at t+deltat
@@ -1007,7 +1007,7 @@ IF (KRR /= 0) THEN
   ! Compute the equivalent tendency for the conservative mixing ratio
   !
   !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)    
-  ZRWRNP(IIJB:IIJE,1:IKT) = PRHODJ(IIJB:IIJE,1:IKT)*(PRP(IIJB:IIJE,1:IKT)-PRM(IIJB:IIJE,1:IKT,1))& 
+  ZRWRNP(:,:) = PRHODJ(:,:)*(PRP(:,:)-PRM(:,:,1))& 
                                    /PTSTEP
   !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)    
   !
@@ -1015,70 +1015,70 @@ IF (KRR /= 0) THEN
   IF (TURBN%LLEONARD) THEN
    CALL MZM_PHY(D,PRHODJ,ZWORK1)
    !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-   ZWORK2(IIJB:IIJE,1:IKT) = ZWORK1(IIJB:IIJE,1:IKT)*ZF_LEONARD(IIJB:IIJE,1:IKT)
+   ZWORK2(:,:) = ZWORK1(:,:)*ZF_LEONARD(:,:)
    !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
    CALL GZ_W_M_PHY(D,ZWORK2,PDZZ,ZWORK3)
    !$mnh_expand_where(JIJ=IIJB:IIJE,JK=1:IKT)
-   WHERE ( (ZCLD_THOLD(IIJB:IIJE,1:IKT) >= TURBN%XCLDTHOLD ) .AND. ( ZALT(IIJB:IIJE,1:IKT) >= TURBN%XALTHGRAD ) )
-    ZRWRNP(IIJB:IIJE,1:IKT) =  -ZWORK3(IIJB:IIJE,1:IKT)
-    PRP(IIJB:IIJE,1:IKT)=PRM(IIJB:IIJE,1:IKT,1)+PTSTEP*ZRWTHL(IIJB:IIJE,1:IKT)/PRHODJ(IIJB:IIJE,1:IKT)
+   WHERE ( (ZCLD_THOLD(:,:) >= TURBN%XCLDTHOLD ) .AND. ( ZALT(:,:) >= TURBN%XALTHGRAD ) )
+    ZRWRNP(:,:) =  -ZWORK3(:,:)
+    PRP(:,:)=PRM(:,:,1)+PTSTEP*ZRWTHL(:,:)/PRHODJ(:,:)
    END WHERE
    !$mnh_end_expand_where(JIJ=IIJB:IIJE,JK=1:IKT)
   END IF
   !
   !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-  ZWORK1(IIJB:IIJE,1:IKT) = PRP(IIJB:IIJE,1:IKT) - PRM(IIJB:IIJE,1:IKT,1)
+  ZWORK1(:,:) = PRP(:,:) - PRM(:,:,1)
   !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
   CALL DZM_PHY(D,ZWORK1,ZWORK2)
   !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-  PRRS(IIJB:IIJE,1:IKT,1) = PRRS(IIJB:IIJE,1:IKT,1) + ZRWRNP(IIJB:IIJE,1:IKT)
+  PRRS(:,:,1) = PRRS(:,:,1) + ZRWRNP(:,:)
   !
   !*       3.2  Complete thermal production
   !
   ! cons. mixing ratio flux :
   !
-  ZFLXZ(IIJB:IIJE,1:IKT)   = ZF(IIJB:IIJE,1:IKT)                                                &
-                 + TURBN%XIMPL * ZDFDDRDZ(IIJB:IIJE,1:IKT) * ZWORK2(IIJB:IIJE,1:IKT) / PDZZ(IIJB:IIJE,1:IKT)
+  ZFLXZ(:,:)   = ZF(:,:)                                                &
+                 + TURBN%XIMPL * ZDFDDRDZ(:,:) * ZWORK2(:,:) / PDZZ(:,:)
   !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
   !
   ! replace the flux by the Leonard terms above ZALT and ZCLD_THOLD
   IF (TURBN%LLEONARD) THEN
    !$mnh_expand_where(JIJ=IIJB:IIJE,JK=1:IKT)
-   WHERE ( (ZCLD_THOLD(IIJB:IIJE,1:IKT) >= TURBN%XCLDTHOLD ) .AND. ( ZALT(IIJB:IIJE,1:IKT) >= TURBN%XALTHGRAD ) )
-    ZFLXZ(IIJB:IIJE,1:IKT) = ZF_LEONARD(IIJB:IIJE,1:IKT)
+   WHERE ( (ZCLD_THOLD(:,:) >= TURBN%XCLDTHOLD ) .AND. ( ZALT(:,:) >= TURBN%XALTHGRAD ) )
+    ZFLXZ(:,:) = ZF_LEONARD(:,:)
    END WHERE
    !$mnh_end_expand_where(JIJ=IIJB:IIJE,JK=1:IKT)
   END IF
   !
   !$mnh_expand_array(JIJ=IIJB:IIJE)
-  ZFLXZ(IIJB:IIJE,IKA) = ZFLXZ(IIJB:IIJE,IKB)
+  ZFLXZ(:,IKA) = ZFLXZ(:,IKB)
   !$mnh_end_expand_array(JIJ=IIJB:IIJE)
   !
   IF (OOCEAN) THEN
-    ZFLXZ(IIJB:IIJE,IKU) = ZFLXZ(IIJB:IIJE,IKE)
+    ZFLXZ(:,IKU) = ZFLXZ(:,IKE)
   END IF
   !
   IF ( OFLYER ) THEN
     DO JK=IKTB+1,IKTE-1
       !$mnh_expand_array(JIJ=IIJB:IIJE)
-      PWRC(IIJB:IIJE,JK)=0.5*(ZFLXZ(IIJB:IIJE,JK)+ZFLXZ(IIJB:IIJE,JK+IKL))
+      PWRC(:,JK)=0.5*(ZFLXZ(:,JK)+ZFLXZ(:,JK+IKL))
       !$mnh_end_expand_array(JIJ=IIJB:IIJE)
     END DO
     !$mnh_expand_array(JIJ=IIJB:IIJE)
-    PWRC(IIJB:IIJE,IKB)=0.5*(ZFLXZ(IIJB:IIJE,IKB)+ZFLXZ(IIJB:IIJE,IKB+IKL))
+    PWRC(:,IKB)=0.5*(ZFLXZ(:,IKB)+ZFLXZ(:,IKB+IKL))
     !$mnh_end_expand_array(JIJ=IIJB:IIJE)
     !
     IF (OOCEAN) THEN
       !$mnh_expand_array(JIJ=IIJB:IIJE)          
-      PWRC(IIJB:IIJE,IKE)=0.5*(ZFLXZ(IIJB:IIJE,IKE)+ZFLXZ(IIJB:IIJE,IKE+IKL))
-      PWRC(IIJB:IIJE,IKA)=0.
-      PWRC(IIJB:IIJE,IKE+1)=ZFLXZ(IIJB:IIJE,IKE+1)
+      PWRC(:,IKE)=0.5*(ZFLXZ(:,IKE)+ZFLXZ(:,IKE+IKL))
+      PWRC(:,IKA)=0.
+      PWRC(:,IKE+1)=ZFLXZ(:,IKE+1)
       !$mnh_end_expand_array(JIJ=IIJB:IIJE)    
     ELSE
       !$mnh_expand_array(JIJ=IIJB:IIJE)
-      PWRC(IIJB:IIJE,IKA)=0.5*(ZFLXZ(IIJB:IIJE,IKA)+ZFLXZ(IIJB:IIJE,IKA+IKL))
-      PWRC(IIJB:IIJE,IKE)=PWRC(IIJB:IIJE,IKE-IKL)
-      PWRC(IIJB:IIJE,IKU)=0.
+      PWRC(:,IKA)=0.5*(ZFLXZ(:,IKA)+ZFLXZ(:,IKA+IKL))
+      PWRC(:,IKE)=PWRC(:,IKE-IKL)
+      PWRC(:,IKU)=0.
       !$mnh_end_expand_array(JIJ=IIJB:IIJE)    
     END IF
   END IF
@@ -1103,24 +1103,24 @@ IF (KRR /= 0) THEN
   IF (OOCEAN) THEN
      CALL MZF_PHY(D,ZFLXZ,ZWORK1)
      !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-     ZA(IIJB:IIJE,1:IKT)=  -CST%XG*CST%XBETAOC  * ZWORK1(IIJB:IIJE,1:IKT)
+     ZA(:,:)=  -CST%XG*CST%XBETAOC  * ZWORK1(:,:)
      !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
   ELSE
     CALL MZM_PHY(D,PEMOIST,ZWORK1)
     !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-    ZWORK1(IIJB:IIJE,1:IKT) = ZWORK1(IIJB:IIJE,1:IKT) * ZFLXZ(IIJB:IIJE,1:IKT)
+    ZWORK1(:,:) = ZWORK1(:,:) * ZFLXZ(:,:)
     !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
     CALL MZF_PHY(D,ZWORK1,ZWORK2)
     !
     !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-    ZA(IIJB:IIJE,1:IKT)   =  PBETA(IIJB:IIJE,1:IKT) * ZWORK2(IIJB:IIJE,1:IKT)
+    ZA(:,:)   =  PBETA(:,:) * ZWORK2(:,:)
     !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
     !$mnh_expand_array(JIJ=IIJB:IIJE)
-    ZA(IIJB:IIJE,IKB) =  PBETA(IIJB:IIJE,IKB) * PEMOIST(IIJB:IIJE,IKB) *   &
-                   0.5 * ( ZFLXZ(IIJB:IIJE,IKB) + ZFLXZ(IIJB:IIJE,IKB+IKL) )
+    ZA(:,IKB) =  PBETA(:,IKB) * PEMOIST(:,IKB) *   &
+                   0.5 * ( ZFLXZ(:,IKB) + ZFLXZ(:,IKB+IKL) )
     !$mnh_end_expand_array(JIJ=IIJB:IIJE)
     !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-    PTP(IIJB:IIJE,1:IKT) = PTP(IIJB:IIJE,1:IKT) + ZA(IIJB:IIJE,1:IKT)
+    PTP(:,:) = PTP(:,:) + ZA(:,:)
     !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
   END IF
   !
@@ -1128,14 +1128,14 @@ IF (KRR /= 0) THEN
   !
   CALL MZM_PHY(D,PEMOIST,ZWORK1)
   !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-  PWTHV(IIJB:IIJE,1:IKT)=PWTHV(IIJB:IIJE,1:IKT) + ZWORK1(IIJB:IIJE,1:IKT) * ZFLXZ(IIJB:IIJE,1:IKT)
+  PWTHV(:,:)=PWTHV(:,:) + ZWORK1(:,:) * ZFLXZ(:,:)
   !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
   !$mnh_expand_array(JIJ=IIJB:IIJE)
-  PWTHV(IIJB:IIJE,IKB) = PWTHV(IIJB:IIJE,IKB) + PEMOIST(IIJB:IIJE,IKB) * ZFLXZ(IIJB:IIJE,IKB)
+  PWTHV(:,IKB) = PWTHV(:,IKB) + PEMOIST(:,IKB) * ZFLXZ(:,IKB)
   !$mnh_end_expand_array(JIJ=IIJB:IIJE)
   IF (OOCEAN) THEN
     !$mnh_expand_array(JIJ=IIJB:IIJE)
-    PWTHV(IIJB:IIJE,IKE) = PWTHV(IIJB:IIJE,IKE) + PEMOIST(IIJB:IIJE,IKE)* ZFLXZ(IIJB:IIJE,IKE)
+    PWTHV(:,IKE) = PWTHV(:,IKE) + PEMOIST(:,IKE)* ZFLXZ(:,IKE)
     !$mnh_end_expand_array(JIJ=IIJB:IIJE)
   END IF
 !
@@ -1144,25 +1144,25 @@ IF (KRR /= 0) THEN
 IF(HPROGRAM/='AROME  ') THEN
    IF ( KRRL >= 1 ) THEN
        !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-       ZWORK2(IIJB:IIJE,1:IKT) = ZFLXZ(IIJB:IIJE,1:IKT) / &
-       PDZZ(IIJB:IIJE,1:IKT)
+       ZWORK2(:,:) = ZFLXZ(:,:) / &
+       PDZZ(:,:)
        !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
        CALL DZF_PHY(D,ZWORK2,ZWORK1)
        !
      IF ( KRRI >= 1 ) THEN
        !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-       PRRS(IIJB:IIJE,1:IKT,2) = PRRS(IIJB:IIJE,1:IKT,2) -                                        &
-                       PRHODJ(IIJB:IIJE,1:IKT)*PAMOIST(IIJB:IIJE,1:IKT)*2.*PSRCM(IIJB:IIJE,1:IKT)& 
-                       *ZWORK1(IIJB:IIJE,1:IKT) *(1.0-PFRAC_ICE(IIJB:IIJE,1:IKT))
-       PRRS(IIJB:IIJE,1:IKT,4) = PRRS(IIJB:IIJE,1:IKT,4) -                                        &
-                       PRHODJ(IIJB:IIJE,1:IKT)*PAMOIST(IIJB:IIJE,1:IKT)*2.*PSRCM(IIJB:IIJE,1:IKT)&
-                       *ZWORK1(IIJB:IIJE,1:IKT) *PFRAC_ICE(IIJB:IIJE,1:IKT)
+       PRRS(:,:,2) = PRRS(:,:,2) -                                        &
+                       PRHODJ(:,:)*PAMOIST(:,:)*2.*PSRCM(:,:)& 
+                       *ZWORK1(:,:) *(1.0-PFRAC_ICE(:,:))
+       PRRS(:,:,4) = PRRS(:,:,4) -                                        &
+                       PRHODJ(:,:)*PAMOIST(:,:)*2.*PSRCM(:,:)&
+                       *ZWORK1(:,:) *PFRAC_ICE(:,:)
        !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
      ELSE
        !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-       PRRS(IIJB:IIJE,1:IKT,2) = PRRS(IIJB:IIJE,1:IKT,2) -                                        &
-                       PRHODJ(IIJB:IIJE,1:IKT)*PAMOIST(IIJB:IIJE,1:IKT)*2.*PSRCM(IIJB:IIJE,1:IKT)&
-                       *ZWORK1(IIJB:IIJE,1:IKT)
+       PRRS(:,:,2) = PRRS(:,:,2) -                                        &
+                       PRHODJ(:,:)*PAMOIST(:,:)*2.*PSRCM(:,:)&
+                       *ZWORK1(:,:)
        !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
      END IF
    END IF
@@ -1178,39 +1178,39 @@ END IF
     CALL LES_MEAN_SUBGRID_PHY(D,TLES,ZWORK1, TLES%X_LES_SUBGRID_WRt )
     !
     !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-    ZWORK2(IIJB:IIJE,1:IKT) = PWM(IIJB:IIJE,1:IKT)*ZFLXZ(IIJB:IIJE,1:IKT)
+    ZWORK2(:,:) = PWM(:,:)*ZFLXZ(:,:)
     !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
     CALL MZF_PHY(D,ZWORK2,ZWORK3)
     CALL LES_MEAN_SUBGRID_PHY(D,TLES,ZWORK3, TLES%X_LES_RES_W_SBG_WRt )
     !
     CALL GZ_W_M_PHY(D,PWM,PDZZ,ZWORK2)
     !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-    ZWORK3(IIJB:IIJE,1:IKT) = ZWORK2(IIJB:IIJE,1:IKT) * ZWORK1(IIJB:IIJE,1:IKT)
+    ZWORK3(:,:) = ZWORK2(:,:) * ZWORK1(:,:)
     !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
     CALL LES_MEAN_SUBGRID_PHY(D,TLES,ZWORK3, TLES%X_LES_RES_ddxa_W_SBG_UaRt )
     !
     !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-    ZWORK2(IIJB:IIJE,1:IKT) = PDTH_DZ(IIJB:IIJE,1:IKT)*ZFLXZ(IIJB:IIJE,1:IKT)
+    ZWORK2(:,:) = PDTH_DZ(:,:)*ZFLXZ(:,:)
     !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
     CALL MZF_PHY(D,ZWORK2,ZWORK3)
     CALL LES_MEAN_SUBGRID_PHY(D,TLES,ZWORK3, TLES%X_LES_RES_ddxa_Thl_SBG_UaRt )
     !
     !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-    ZWORK2(IIJB:IIJE,1:IKT) = PDR_DZ(IIJB:IIJE,1:IKT)*ZFLXZ(IIJB:IIJE,1:IKT)
+    ZWORK2(:,:) = PDR_DZ(:,:)*ZFLXZ(:,:)
     !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
     CALL MZF_PHY(D,ZWORK2,ZWORK3)
     CALL LES_MEAN_SUBGRID_PHY(D,TLES,ZWORK3, TLES%X_LES_RES_ddxa_Rt_SBG_UaRt )
     !
     CALL MZM_PHY(D,PEMOIST,ZWORK2)
     !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-    ZWORK3(IIJB:IIJE,1:IKT) = ZWORK2(IIJB:IIJE,1:IKT) * ZFLXZ(IIJB:IIJE,1:IKT)
+    ZWORK3(:,:) = ZWORK2(:,:) * ZFLXZ(:,:)
     !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
     CALL MZF_PHY(D,ZWORK3,ZWORK4)
     CALL LES_MEAN_SUBGRID_PHY(D,TLES,ZWORK4, TLES%X_LES_SUBGRID_WThv , .TRUE. )
     !
     !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-    ZWORK2(IIJB:IIJE,1:IKT) = -CSTURB%XCTP*PSQRT_TKE(IIJB:IIJE,1:IKT)/PLM(IIJB:IIJE,1:IKT) &
-                                      *ZWORK1(IIJB:IIJE,1:IKT)
+    ZWORK2(:,:) = -CSTURB%XCTP*PSQRT_TKE(:,:)/PLM(:,:) &
+                                      *ZWORK1(:,:)
     !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
     CALL LES_MEAN_SUBGRID_PHY(D,TLES,ZWORK2, TLES%X_LES_SUBGRID_RtPz )
     CALL SECOND_MNH(ZTIME2)
@@ -1234,41 +1234,41 @@ IF ( ((TURBN%LTURB_FLX .AND. TPFILE%LOPENED) .OR. TLES%LLES_CALL) .AND. (KRRL >
 ! With TURBN%LHARAT is true tke and length scales at half levels
 ! yet modify to use length scale and tke at half levels from vdfexcuhl
  !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
- ZWORK1(IIJB:IIJE,1:IKT) = TURBN%XIMPL * PTHLP(IIJB:IIJE,1:IKT) + PEXPL * PTHLM(IIJB:IIJE,1:IKT)
+ ZWORK1(:,:) = TURBN%XIMPL * PTHLP(:,:) + PEXPL * PTHLM(:,:)
  !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
  CALL DZM_PHY(D,ZWORK1,ZWORK2)
  IF (TURBN%LHARAT) THEN
   !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-  ZA(IIJB:IIJE,1:IKT)   = ZWORK2(IIJB:IIJE,1:IKT)/ PDZZ(IIJB:IIJE,1:IKT) * &
-                                 (-PLM(IIJB:IIJE,1:IKT)*PSQRT_TKE(IIJB:IIJE,1:IKT))
+  ZA(:,:)   = ZWORK2(:,:)/ PDZZ(:,:) * &
+                                 (-PLM(:,:)*PSQRT_TKE(:,:))
   !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
  ELSE
   !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-  ZWORK1(IIJB:IIJE,1:IKT) = PLM(IIJB:IIJE,1:IKT)*PSQRT_TKE(IIJB:IIJE,1:IKT)
+  ZWORK1(:,:) = PLM(:,:)*PSQRT_TKE(:,:)
   !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
   CALL MZM_PHY(D,ZWORK1,ZWORK3)
   !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-  ZA(IIJB:IIJE,1:IKT)   = ZWORK2(IIJB:IIJE,1:IKT)/ PDZZ(IIJB:IIJE,1:IKT) * &
-                                  (-PPHI3(IIJB:IIJE,1:IKT)*ZWORK3(IIJB:IIJE,1:IKT)) * CSTURB%XCSHF 
+  ZA(:,:)   = ZWORK2(:,:)/ PDZZ(:,:) * &
+                                  (-PPHI3(:,:)*ZWORK3(:,:)) * CSTURB%XCSHF 
   !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
  ENDIF
   !$mnh_expand_array(JIJ=IIJB:IIJE)
-  ZA(IIJB:IIJE,IKB) = (TURBN%XIMPL*PSFTHP(IIJB:IIJE) + PEXPL*PSFTHM(IIJB:IIJE)) * PDIRCOSZW(IIJB:IIJE)
+  ZA(:,IKB) = (TURBN%XIMPL*PSFTHP(:) + PEXPL*PSFTHM(:)) * PDIRCOSZW(:)
   !$mnh_end_expand_array(JIJ=IIJB:IIJE)
   !  
   ! compute <w Rc>
   !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-  ZWORK1(IIJB:IIJE,1:IKT) = PAMOIST(IIJB:IIJE,1:IKT) * 2.* PSRCM(IIJB:IIJE,1:IKT)
-  ZWORK2(IIJB:IIJE,1:IKT) = PATHETA(IIJB:IIJE,1:IKT) * 2.* PSRCM(IIJB:IIJE,1:IKT)
+  ZWORK1(:,:) = PAMOIST(:,:) * 2.* PSRCM(:,:)
+  ZWORK2(:,:) = PATHETA(:,:) * 2.* PSRCM(:,:)
   !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
   CALL MZM_PHY(D,ZWORK1,ZWORK3)
   CALL MZM_PHY(D,ZWORK2,ZWORK4)
   !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-  ZFLXZ(IIJB:IIJE,1:IKT) = ZWORK3(IIJB:IIJE,1:IKT)* ZFLXZ(IIJB:IIJE,1:IKT) &
-                                 + ZWORK4(IIJB:IIJE,1:IKT)* ZA(IIJB:IIJE,1:IKT)
+  ZFLXZ(:,:) = ZWORK3(:,:)* ZFLXZ(:,:) &
+                                 + ZWORK4(:,:)* ZA(:,:)
   !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
   !$mnh_expand_array(JIJ=IIJB:IIJE)
-  ZFLXZ(IIJB:IIJE,IKA) = ZFLXZ(IIJB:IIJE,IKB)
+  ZFLXZ(:,IKA) = ZFLXZ(:,IKB)
   !$mnh_end_expand_array(JIJ=IIJB:IIJE)
   !
   ! store the liquid water mixing ratio vertical flux
diff --git a/src/PHYEX/turb/mode_update_iiju_phy.f90 b/src/PHYEX/turb/mode_update_iiju_phy.f90
index c67545befe1ec9fba984d2ea008431bb8692963c..92686e36ba21604116206a7fd8ba72108deb1fd0 100644
--- a/src/PHYEX/turb/mode_update_iiju_phy.f90
+++ b/src/PHYEX/turb/mode_update_iiju_phy.f90
@@ -64,8 +64,8 @@ IIU=D%NIT
 IJU=D%NJT
 IKT=D%NKT
 !
-PVAR(IIU,IJB:IJE,1:IKT) = PVAR(IIU-1,IJB:IJE,1:IKT)
-PVAR(IIB:IIE,IJU,1:IKT) = PVAR(IIB:IIE,IJU-1,1:IKT)
+PVAR(IIU,IJB:IJE,:) = PVAR(IIU-1,IJB:IJE,:)
+PVAR(IIB:IIE,IJU,:) = PVAR(IIB:IIE,IJU-1,:)
 !
 IF (LHOOK) CALL DR_HOOK('UPDATE_IIJU_PHY',1,ZHOOK_HANDLE)
 END SUBROUTINE UPDATE_IIJU_PHY
diff --git a/src/PHYEX/turb/shallow_mf.f90 b/src/PHYEX/turb/shallow_mf.f90
index 0eaa8b4056af502c876fde0cc385a7c7f277c8ec..85c85e6fcedb012268c91cb1c6788cb91e49ec5e 100644
--- a/src/PHYEX/turb/shallow_mf.f90
+++ b/src/PHYEX/turb/shallow_mf.f90
@@ -213,13 +213,13 @@ ENDIF
 ZFRAC_ICE(:,:) = 0.
 IF (KRR.GE.4) THEN
   !$mnh_expand_where(JIJ=IIJB:IIJE,JK=1:IKT)
-  WHERE(PRM(IIJB:IIJE,1:IKT,2)+PRM(IIJB:IIJE,1:IKT,4) > 1.E-20)
-    ZFRAC_ICE(IIJB:IIJE,1:IKT) = PRM(IIJB:IIJE,1:IKT,4) / (PRM(IIJB:IIJE,1:IKT,2)+PRM(IIJB:IIJE,1:IKT,4))
+  WHERE(PRM(:,:,2)+PRM(:,:,4) > 1.E-20)
+    ZFRAC_ICE(:,:) = PRM(:,:,4) / (PRM(:,:,2)+PRM(:,:,4))
   ENDWHERE
   !$mnh_end_expand_where(JIJ=IIJB:IIJE,JK=1:IKT)
 ENDIF
 !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-ZWK(IIJB:IIJE,1:IKT)=PTHM(IIJB:IIJE,1:IKT)*PEXNM(IIJB:IIJE,1:IKT)
+ZWK(:,:)=PTHM(:,:)*PEXNM(:,:)
 !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 CALL COMPUTE_FRAC_ICE(HFRAC_ICE,NEB,ZFRAC_ICE(:,:),ZWK(:,:), IERR(:,:))
 
@@ -230,8 +230,8 @@ CALL THL_RT_FROM_TH_R_MF(D, CST, KRR,KRRL,KRRI,    &
 
 ! Virtual potential temperature at t-dt
 !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-ZTHVM(IIJB:IIJE,1:IKT) = PTHM(IIJB:IIJE,1:IKT)*&
-                             & ((1.+CST%XRV / CST%XRD *PRM(IIJB:IIJE,1:IKT,1))/(1.+ZRTM(IIJB:IIJE,1:IKT))) 
+ZTHVM(:,:) = PTHM(:,:)*&
+                             & ((1.+CST%XRV / CST%XRD *PRM(:,:,1))/(1.+ZRTM(:,:))) 
 !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 ! 
 !!! 2. Compute updraft
@@ -305,7 +305,7 @@ CALL COMPUTE_MF_CLOUD(D,CST,CSTURB,PARAMMF,TURBN%LSTATNW,&
 !!!    ------------------------------------------------------------------------
 !
 !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-ZEMF_O_RHODREF(IIJB:IIJE,1:IKT)=PEMF(IIJB:IIJE,1:IKT)/PRHODREF(IIJB:IIJE,1:IKT)
+ZEMF_O_RHODREF(:,:)=PEMF(:,:)/PRHODREF(:,:)
 !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 
 IF ( PIMPL_MF > 1.E-10 ) THEN  
@@ -342,7 +342,7 @@ ENDIF
 IF(PRESENT(BUCONF)) THEN
  IF( BUCONF%LBUDGET_U ) THEN
    !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-   ZWORK(IIJB:IIJE,1:IKT)=PRHODJ(IIJB:IIJE,1:IKT)*PDUDT_MF(IIJB:IIJE,1:IKT)
+   ZWORK(:,:)=PRHODJ(:,:)*PDUDT_MF(:,:)
    !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
    CALL MXM_PHY(D, ZWORK, ZWORK2)
    CALL BUDGET_STORE_ADD_PHY(D, TBUDGETS(NBUDGET_U ), 'MAFL', ZWORK2)
@@ -350,7 +350,7 @@ IF(PRESENT(BUCONF)) THEN
 !
  IF( BUCONF%LBUDGET_V ) THEN
    !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-   ZWORK(IIJB:IIJE,1:IKT)=PRHODJ(IIJB:IIJE,1:IKT)*PDVDT_MF(IIJB:IIJE,1:IKT)
+   ZWORK(:,:)=PRHODJ(:,:)*PDVDT_MF(:,:)
    !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT) 
    CALL MYM_PHY(D, ZWORK, ZWORK2)
    CALL BUDGET_STORE_ADD_PHY(D, TBUDGETS(NBUDGET_V ), 'MAFL', ZWORK2)
@@ -358,14 +358,14 @@ IF(PRESENT(BUCONF)) THEN
 ! 
  IF( BUCONF%LBUDGET_TH ) THEN 
    !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-   ZWORK(IIJB:IIJE,1:IKT)=PRHODJ(IIJB:IIJE,1:IKT)*PDTHLDT_MF(IIJB:IIJE,1:IKT)
+   ZWORK(:,:)=PRHODJ(:,:)*PDTHLDT_MF(:,:)
    !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
    CALL BUDGET_STORE_ADD_PHY(D, TBUDGETS(NBUDGET_TH), 'MAFL', ZWORK)
  END IF
 !
  IF( BUCONF%LBUDGET_RV ) THEN
    !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-   ZWORK(IIJB:IIJE,1:IKT)=PRHODJ(IIJB:IIJE,1:IKT)*PDRTDT_MF(IIJB:IIJE,1:IKT)
+   ZWORK(:,:)=PRHODJ(:,:)*PDRTDT_MF(:,:)
    !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
    CALL BUDGET_STORE_ADD_PHY(D, TBUDGETS(NBUDGET_RV), 'MAFL', ZWORK)
  END IF
@@ -374,13 +374,13 @@ IF(PRESENT(BUCONF)) THEN
    DO JSV=1,KSV
     IF (ONOMIXLG .AND. JSV >= KSV_LGBEG .AND. JSV<= KSV_LGEND) THEN
       !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-      ZWORK(IIJB:IIJE,1:IKT)=MAX(PRSVS(IIJB:IIJE,1:IKT,JSV) + PRHODJ(IIJB:IIJE,1:IKT)* &
-                             PDSVDT_MF(IIJB:IIJE,1:IKT,JSV),PSVMIN(JSV))
-      ZWORK(IIJB:IIJE,1:IKT)=PRSVS(IIJB:IIJE,1:IKT,JSV) - ZWORK(IIJB:IIJE,1:IKT)
+      ZWORK(:,:)=MAX(PRSVS(:,:,JSV) + PRHODJ(:,:)* &
+                             PDSVDT_MF(:,:,JSV),PSVMIN(JSV))
+      ZWORK(:,:)=PRSVS(:,:,JSV) - ZWORK(:,:)
       !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
     ELSE
       !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-      ZWORK(IIJB:IIJE,1:IKT)=PRHODJ(IIJB:IIJE,1:IKT)*PDSVDT_MF(IIJB:IIJE,1:IKT,JSV)
+      ZWORK(:,:)=PRHODJ(:,:)*PDSVDT_MF(:,:,JSV)
       !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
     END IF
     CALL BUDGET_STORE_ADD_PHY(D, TBUDGETS(NBUDGET_SV1 - 1 + JSV), 'MAFL', ZWORK )
diff --git a/src/PHYEX/turb/shuman_mf.f90 b/src/PHYEX/turb/shuman_mf.f90
index 2c6dabccddf3662dc7daa62f9ac64b73912600ad..1ec7bc1ae92a1447a5d833aadc36bc26d5e0f563 100644
--- a/src/PHYEX/turb/shuman_mf.f90
+++ b/src/PHYEX/turb/shuman_mf.f90
@@ -137,12 +137,12 @@ IKL=D%NKL
 !
 DO JK=2,IKT-1
   !$mnh_expand_array(JIJ=IIJB:IIJE)
-  PMZF(IIJB:IIJE,JK) = 0.5*( PA(IIJB:IIJE,JK)+PA(IIJB:IIJE,JK+IKL) )
+  PMZF(:,JK) = 0.5*( PA(:,JK)+PA(:,JK+IKL) )
   !$mnh_end_expand_array(JIJ=IIJB:IIJE)
 END DO
 !$mnh_expand_array(JIJ=IIJB:IIJE)
-PMZF(IIJB:IIJE,IKA) = 0.5*( PA(IIJB:IIJE,IKA)+PA(IIJB:IIJE,IKA+IKL) )
-PMZF(IIJB:IIJE,IKU) = PA(IIJB:IIJE,IKU)
+PMZF(:,IKA) = 0.5*( PA(:,IKA)+PA(:,IKA+IKL) )
+PMZF(:,IKU) = PA(:,IKU)
 !$mnh_end_expand_array(JIJ=IIJB:IIJE)
 !
 !-------------------------------------------------------------------------------
@@ -227,12 +227,12 @@ IKL=D%NKL
 !
 DO JK=2,IKT-1
   !$mnh_expand_array(JIJ=IIJB:IIJE)
-  PMZM(IIJB:IIJE,JK) = 0.5*( PA(IIJB:IIJE,JK)+PA(IIJB:IIJE,JK-IKL) )
+  PMZM(:,JK) = 0.5*( PA(:,JK)+PA(:,JK-IKL) )
   !$mnh_end_expand_array(JIJ=IIJB:IIJE)
 END DO
 !$mnh_expand_array(JIJ=IIJB:IIJE)
-PMZM(IIJB:IIJE,IKA) = PA(IIJB:IIJE,IKA)
-PMZM(IIJB:IIJE,IKU) = 0.5*( PA(IIJB:IIJE,IKU)+PA(IIJB:IIJE,IKU-IKL) )
+PMZM(:,IKA) = PA(:,IKA)
+PMZM(:,IKU) = 0.5*( PA(:,IKU)+PA(:,IKU-IKL) )
 !$mnh_end_expand_array(JIJ=IIJB:IIJE)
 !
 !-------------------------------------------------------------------------------
@@ -317,12 +317,12 @@ IKL=D%NKL
 !
 DO JK=2,IKT-1
   !$mnh_expand_array(JIJ=IIJB:IIJE)
-  PDZF(IIJB:IIJE,JK) = PA(IIJB:IIJE,JK+IKL) - PA(IIJB:IIJE,JK)
+  PDZF(:,JK) = PA(:,JK+IKL) - PA(:,JK)
   !$mnh_end_expand_array(JIJ=IIJB:IIJE)
 END DO
 !$mnh_expand_array(JIJ=IIJB:IIJE)
-PDZF(IIJB:IIJE,IKA) = PA(IIJB:IIJE,IKA+IKL) - PA(IIJB:IIJE,IKA)
-PDZF(IIJB:IIJE,IKU) = 0.
+PDZF(:,IKA) = PA(:,IKA+IKL) - PA(:,IKA)
+PDZF(:,IKU) = 0.
 !$mnh_end_expand_array(JIJ=IIJB:IIJE)
 !
 !-------------------------------------------------------------------------------
@@ -407,12 +407,12 @@ IKL=D%NKL
 !
 DO JK=2,IKT-1
   !$mnh_expand_array(JIJ=IIJB:IIJE)
-  PDZM(IIJB:IIJE,JK) = PA(IIJB:IIJE,JK) - PA(IIJB:IIJE,JK-IKL)
+  PDZM(:,JK) = PA(:,JK) - PA(:,JK-IKL)
   !$mnh_end_expand_array(JIJ=IIJB:IIJE)
 END DO
 !$mnh_expand_array(JIJ=IIJB:IIJE)
-PDZM(IIJB:IIJE,IKA) = 0.
-PDZM(IIJB:IIJE,IKU) = PA(IIJB:IIJE,IKU) - PA(IIJB:IIJE,IKU-IKL)
+PDZM(:,IKA) = 0.
+PDZM(:,IKU) = PA(:,IKU) - PA(:,IKU-IKL)
 !$mnh_end_expand_array(JIJ=IIJB:IIJE)
 !
 !-------------------------------------------------------------------------------
@@ -497,12 +497,12 @@ IKL=D%NKL
 !
 DO JK=2,IKT-1
   !$mnh_expand_array(JIJ=IIJB:IIJE)
-  PGZ_M_W(IIJB:IIJE,JK) = (PY(IIJB:IIJE,JK) - PY(IIJB:IIJE,JK-IKL)) / PDZZ(IIJB:IIJE,JK)
+  PGZ_M_W(:,JK) = (PY(:,JK) - PY(:,JK-IKL)) / PDZZ(:,JK)
   !$mnh_end_expand_array(JIJ=IIJB:IIJE)
 END DO
 !$mnh_expand_array(JIJ=IIJB:IIJE)
-PGZ_M_W(IIJB:IIJE,IKA) = 0.
-PGZ_M_W(IIJB:IIJE,IKU) = (PY(IIJB:IIJE,IKU) - PY(IIJB:IIJE,IKU-IKL)) / PDZZ(IIJB:IIJE,IKU)
+PGZ_M_W(:,IKA) = 0.
+PGZ_M_W(:,IKU) = (PY(:,IKU) - PY(:,IKU-IKL)) / PDZZ(:,IKU)
 !$mnh_end_expand_array(JIJ=IIJB:IIJE)
 !
 !-------------------------------------------------------------------------------
diff --git a/src/PHYEX/turb/turb.f90 b/src/PHYEX/turb/turb.f90
index 3cf7afa999a48d7087cbd67d7c483183f9ed3804..4723c74e45b891368032c3f29db7cd879668eea6 100644
--- a/src/PHYEX/turb/turb.f90
+++ b/src/PHYEX/turb/turb.f90
@@ -534,12 +534,12 @@ ZRVORD= CST%XRV / CST%XRD
 !
 !Copy data into ZTHLM and ZRM only if needed
 IF (TURBN%CTURBLEN=='BL89' .OR. TURBN%CTURBLEN=='RM17' .OR. TURBN%CTURBLEN=='HM21' .OR. TURBN%LRMC01) THEN
-  ZTHLM(IIJB:IIJE,1:IKT) = PTHLT(IIJB:IIJE,1:IKT)
-  ZRM(IIJB:IIJE,1:IKT,:) = PRT(IIJB:IIJE,1:IKT,:)
+  ZTHLM(:,:) = PTHLT(:,:)
+  ZRM(:,:,:) = PRT(:,:,:)
 END IF
 !
 !Save LIMA scalar variables sources
-ZRSVS(IIJB:IIJE,1:IKT,1:KSV)=PRSVS(IIJB:IIJE,1:IKT,1:KSV)
+ZRSVS(:,:,1:KSV)=PRSVS(:,:,1:KSV)
 !
 !
 !----------------------------------------------------------------------------
@@ -550,19 +550,19 @@ ZRSVS(IIJB:IIJE,1:IKT,1:KSV)=PRSVS(IIJB:IIJE,1:IKT,1:KSV)
 !*      2.1 Cph at t
 !
 !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-ZCP(IIJB:IIJE,1:IKT)=CST%XCPD
+ZCP(:,:)=CST%XCPD
 !
-IF (KRR > 0) ZCP(IIJB:IIJE,1:IKT) = ZCP(IIJB:IIJE,1:IKT) + CST%XCPV * PRT(IIJB:IIJE,1:IKT,1)
+IF (KRR > 0) ZCP(:,:) = ZCP(:,:) + CST%XCPV * PRT(:,:,1)
 !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 DO JRR = 2,1+KRRL                          ! loop on the liquid components
 !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)  
-  ZCP(IIJB:IIJE,1:IKT)  = ZCP(IIJB:IIJE,1:IKT) + CST%XCL * PRT(IIJB:IIJE,1:IKT,JRR)
+  ZCP(:,:)  = ZCP(:,:) + CST%XCL * PRT(:,:,JRR)
 !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 END DO
 !
 DO JRR = 2+KRRL,1+KRRL+KRRI                ! loop on the solid components   
 !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-  ZCP(IIJB:IIJE,1:IKT)  = ZCP(IIJB:IIJE,1:IKT)  + CST%XCI * PRT(IIJB:IIJE,1:IKT,JRR)
+  ZCP(:,:)  = ZCP(:,:)  + CST%XCI * PRT(:,:,JRR)
 !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 END DO
 !
@@ -570,31 +570,31 @@ END DO
 !
 IF (OOCEAN) THEN
 !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-  ZEXN(IIJB:IIJE,1:IKT) = 1.
+  ZEXN(:,:) = 1.
 !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 ELSE
 !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-  ZEXN(IIJB:IIJE,1:IKT) = (PPABST(IIJB:IIJE,1:IKT)/CST%XP00) ** (CST%XRD/CST%XCPD)
+  ZEXN(:,:) = (PPABST(:,:)/CST%XP00) ** (CST%XRD/CST%XCPD)
 !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 END IF
 !
 !*      2.3 dissipative heating coeff a t
 !
 !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-ZCOEF_DISS(IIJB:IIJE,1:IKT) = 1/(ZCP(IIJB:IIJE,1:IKT) * ZEXN(IIJB:IIJE,1:IKT))
+ZCOEF_DISS(:,:) = 1/(ZCP(:,:) * ZEXN(:,:))
 !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 !
 !
-ZFRAC_ICE(IIJB:IIJE,1:IKT) = 0.0
-ZATHETA(IIJB:IIJE,1:IKT) = 0.0
-ZAMOIST(IIJB:IIJE,1:IKT) = 0.0
+ZFRAC_ICE(:,:) = 0.0
+ZATHETA(:,:) = 0.0
+ZAMOIST(:,:) = 0.0
 !
 IF (KRRL >=1) THEN
 !
 !*      2.4 Temperature at t
 !
   !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-  ZT(IIJB:IIJE,1:IKT) =  PTHLT(IIJB:IIJE,1:IKT) * ZEXN(IIJB:IIJE,1:IKT)
+  ZT(:,:) =  PTHLT(:,:) * ZEXN(:,:)
   !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 !
 !*       2.5 Lv/Cph/Exn
@@ -614,19 +614,19 @@ IF (KRRL >=1) THEN
     ENDIF
 !
     !$mnh_expand_where(JIJ=IIJB:IIJE,JK=1:IKT)
-    WHERE(PRT(IIJB:IIJE,1:IKT,2)+PRT(IIJB:IIJE,1:IKT,4)>0.0)
-      ZFRAC_ICE(IIJB:IIJE,1:IKT) = PRT(IIJB:IIJE,1:IKT,4) / ( PRT(IIJB:IIJE,1:IKT,2) &
-                                          +PRT(IIJB:IIJE,1:IKT,4) )
+    WHERE(PRT(:,:,2)+PRT(:,:,4)>0.0)
+      ZFRAC_ICE(:,:) = PRT(:,:,4) / ( PRT(:,:,2) &
+                                          +PRT(:,:,4) )
     END WHERE
     !$mnh_end_expand_where(JIJ=IIJB:IIJE,JK=1:IKT)
 !
     !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-    ZLOCPEXNM(IIJB:IIJE,1:IKT) = (1.0-ZFRAC_ICE(IIJB:IIJE,1:IKT))*ZLVOCPEXNM(IIJB:IIJE,1:IKT) &
-                           +ZFRAC_ICE(IIJB:IIJE,1:IKT) *ZLSOCPEXNM(IIJB:IIJE,1:IKT)
-    ZAMOIST(IIJB:IIJE,1:IKT) = (1.0-ZFRAC_ICE(IIJB:IIJE,1:IKT))*ZAMOIST(IIJB:IIJE,1:IKT) &
-                         +ZFRAC_ICE(IIJB:IIJE,1:IKT) *ZAMOIST_ICE(IIJB:IIJE,1:IKT)
-    ZATHETA(IIJB:IIJE,1:IKT) = (1.0-ZFRAC_ICE(IIJB:IIJE,1:IKT))*ZATHETA(IIJB:IIJE,1:IKT) &
-                         +ZFRAC_ICE(IIJB:IIJE,1:IKT) *ZATHETA_ICE(IIJB:IIJE,1:IKT)
+    ZLOCPEXNM(:,:) = (1.0-ZFRAC_ICE(:,:))*ZLVOCPEXNM(:,:) &
+                           +ZFRAC_ICE(:,:) *ZLSOCPEXNM(:,:)
+    ZAMOIST(:,:) = (1.0-ZFRAC_ICE(:,:))*ZAMOIST(:,:) &
+                         +ZFRAC_ICE(:,:) *ZAMOIST_ICE(:,:)
+    ZATHETA(:,:) = (1.0-ZFRAC_ICE(:,:))*ZATHETA(:,:) &
+                         +ZFRAC_ICE(:,:) *ZATHETA_ICE(:,:)
     !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
   ELSE
     !wc call new stat functions or not
@@ -669,7 +669,7 @@ IF (KRRL >=1) THEN
   END IF
 !
 ELSE
-  ZLOCPEXNM(IIJB:IIJE,1:IKT)=0.
+  ZLOCPEXNM(:,:)=0.
 END IF              ! loop end on KRRL >= 1
 !
 ! computes conservative variables
@@ -678,28 +678,28 @@ IF ( KRRL >= 1 ) THEN
   IF ( KRRI >= 1 ) THEN
     !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
     ! Rnp at t
-    PRT(IIJB:IIJE,1:IKT,1)  = PRT(IIJB:IIJE,1:IKT,1)  + PRT(IIJB:IIJE,1:IKT,2)  & 
-                                    + PRT(IIJB:IIJE,1:IKT,4)
-    PRRS(IIJB:IIJE,1:IKT,1) = PRRS(IIJB:IIJE,1:IKT,1) + PRRS(IIJB:IIJE,1:IKT,2) & 
-                                    + PRRS(IIJB:IIJE,1:IKT,4)
+    PRT(:,:,1)  = PRT(:,:,1)  + PRT(:,:,2)  & 
+                                    + PRT(:,:,4)
+    PRRS(:,:,1) = PRRS(:,:,1) + PRRS(:,:,2) & 
+                                    + PRRS(:,:,4)
     ! Theta_l at t
-    PTHLT(IIJB:IIJE,1:IKT)  = PTHLT(IIJB:IIJE,1:IKT)  - ZLVOCPEXNM(IIJB:IIJE,1:IKT) &
-                                    * PRT(IIJB:IIJE,1:IKT,2) &
-                                  - ZLSOCPEXNM(IIJB:IIJE,1:IKT) * PRT(IIJB:IIJE,1:IKT,4)
-    PRTHLS(IIJB:IIJE,1:IKT) = PRTHLS(IIJB:IIJE,1:IKT) - ZLVOCPEXNM(IIJB:IIJE,1:IKT) &
-                                    * PRRS(IIJB:IIJE,1:IKT,2) &
-                                  - ZLSOCPEXNM(IIJB:IIJE,1:IKT) * PRRS(IIJB:IIJE,1:IKT,4)
+    PTHLT(:,:)  = PTHLT(:,:)  - ZLVOCPEXNM(:,:) &
+                                    * PRT(:,:,2) &
+                                  - ZLSOCPEXNM(:,:) * PRT(:,:,4)
+    PRTHLS(:,:) = PRTHLS(:,:) - ZLVOCPEXNM(:,:) &
+                                    * PRRS(:,:,2) &
+                                  - ZLSOCPEXNM(:,:) * PRRS(:,:,4)
     !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
   ELSE
     !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
     ! Rnp at t
-    PRT(IIJB:IIJE,1:IKT,1)  = PRT(IIJB:IIJE,1:IKT,1)  + PRT(IIJB:IIJE,1:IKT,2)
-    PRRS(IIJB:IIJE,1:IKT,1) = PRRS(IIJB:IIJE,1:IKT,1) + PRRS(IIJB:IIJE,1:IKT,2)
+    PRT(:,:,1)  = PRT(:,:,1)  + PRT(:,:,2)
+    PRRS(:,:,1) = PRRS(:,:,1) + PRRS(:,:,2)
     ! Theta_l at t
-    PTHLT(IIJB:IIJE,1:IKT)  = PTHLT(IIJB:IIJE,1:IKT)  - ZLOCPEXNM(IIJB:IIJE,1:IKT) &
-                                    * PRT(IIJB:IIJE,1:IKT,2)
-    PRTHLS(IIJB:IIJE,1:IKT) = PRTHLS(IIJB:IIJE,1:IKT) - ZLOCPEXNM(IIJB:IIJE,1:IKT) &
-                                    * PRRS(IIJB:IIJE,1:IKT,2)
+    PTHLT(:,:)  = PTHLT(:,:)  - ZLOCPEXNM(:,:) &
+                                    * PRT(:,:,2)
+    PRTHLS(:,:) = PRTHLS(:,:) - ZLOCPEXNM(:,:) &
+                                    * PRRS(:,:,2)
     !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
   END IF
 END IF
@@ -742,8 +742,8 @@ SELECT CASE (TURBN%CTURBLEN)
     CALL MYF_PHY(D,ZWORK2,ZDVDZ)
     !
     !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-    ZSHEAR(IIJB:IIJE,1:IKT) = SQRT(ZDUDZ(IIJB:IIJE,1:IKT)*ZDUDZ(IIJB:IIJE,1:IKT) &
-                                    + ZDVDZ(IIJB:IIJE,1:IKT)*ZDVDZ(IIJB:IIJE,1:IKT))
+    ZSHEAR(:,:) = SQRT(ZDUDZ(:,:)*ZDUDZ(:,:) &
+                                    + ZDVDZ(:,:)*ZDVDZ(:,:))
     !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
     CALL BL89(D,CST,CSTURB,PZZ,PDZZ,PTHVREF,ZTHLM,KRR,ZRM,PTKET,ZSHEAR,ZLM,OOCEAN,HPROGRAM)
 !
@@ -760,8 +760,8 @@ SELECT CASE (TURBN%CTURBLEN)
     CALL MYF_PHY(D,ZWORK2,ZDVDZ)
     !
     !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-    ZSHEAR(IIJB:IIJE,1:IKT) = SQRT(ZDUDZ(IIJB:IIJE,1:IKT)*ZDUDZ(IIJB:IIJE,1:IKT) &
-                                    + ZDVDZ(IIJB:IIJE,1:IKT)*ZDVDZ(IIJB:IIJE,1:IKT))
+    ZSHEAR(:,:) = SQRT(ZDUDZ(:,:)*ZDUDZ(:,:) &
+                                    + ZDVDZ(:,:)*ZDVDZ(:,:))
     !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
     CALL BL89(D,CST,CSTURB,PZZ,PDZZ,PTHVREF,ZTHLM,KRR,ZRM,PTKET,ZSHEAR,ZLM,OOCEAN,HPROGRAM)
 
@@ -773,7 +773,7 @@ SELECT CASE (TURBN%CTURBLEN)
     ! For grid meshes in the grey zone, then this is the smaller of the two.
     !
     !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-    ZLM(IIJB:IIJE,1:IKT) = MIN(ZLM(IIJB:IIJE,1:IKT),TURBN%XCADAP*ZLMW(IIJB:IIJE,1:IKT))
+    ZLM(:,:) = MIN(ZLM(:,:),TURBN%XCADAP*ZLMW(:,:))
     !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 !
 !*      3.4 Delta mixing length
@@ -794,22 +794,22 @@ SELECT CASE (TURBN%CTURBLEN)
   CASE ('BLKR')
    ZL0 = 100.
    !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-   ZLM(IIJB:IIJE,1:IKT) = ZL0
+   ZLM(:,:) = ZL0
    !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 
    ZALPHA=0.5**(-1.5)
    !
    DO JK=IKTB,IKTE
      !$mnh_expand_array(JIJ=IIJB:IIJE)
-     ZLM(IIJB:IIJE,JK) = ( 0.5*(PZZ(IIJB:IIJE,JK)+PZZ(IIJB:IIJE,JK+IKL)) - &
-     & PZZ(IIJB:IIJE,IKA+JPVEXT_TURB*IKL) ) * PDIRCOSZW(IIJB:IIJE)
-     ZLM(IIJB:IIJE,JK) = ZALPHA  * ZLM(IIJB:IIJE,JK) * ZL0 / ( ZL0 + ZALPHA*ZLM(IIJB:IIJE,JK) )
+     ZLM(:,JK) = ( 0.5*(PZZ(:,JK)+PZZ(:,JK+IKL)) - &
+     & PZZ(:,IKA+JPVEXT_TURB*IKL) ) * PDIRCOSZW(:)
+     ZLM(:,JK) = ZALPHA  * ZLM(:,JK) * ZL0 / ( ZL0 + ZALPHA*ZLM(:,JK) )
      !$mnh_end_expand_array(JIJ=IIJB:IIJE)
    END DO
 !
    !$mnh_expand_array(JIJ=IIJB:IIJE)
-   ZLM(IIJB:IIJE,IKTB-1) = ZLM(IIJB:IIJE,IKTB)
-   ZLM(IIJB:IIJE,IKTE+1) = ZLM(IIJB:IIJE,IKTE)
+   ZLM(:,IKTB-1) = ZLM(:,IKTB)
+   ZLM(:,IKTE+1) = ZLM(:,IKTE)
    !$mnh_end_expand_array(JIJ=IIJB:IIJE)
 !
 !
@@ -827,21 +827,21 @@ ENDIF  ! end LHARRAT
 
 IF (TURBN%LHARAT) THEN
   !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-  ZLEPS(IIJB:IIJE,1:IKT)=PLENGTHM(IIJB:IIJE,1:IKT)*(3.75**2.)
+  ZLEPS(:,:)=PLENGTHM(:,:)*(3.75**2.)
   !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 ELSE
-  ZLEPS(IIJB:IIJE,1:IKT)=ZLM(IIJB:IIJE,1:IKT)
+  ZLEPS(:,:)=ZLM(:,:)
 ENDIF
 !
 !*      3.7 Correction in the Surface Boundary Layer (Redelsperger 2001)
 !           ----------------------------------------
 !
 !$mnh_expand_array(JIJ=IIJB:IIJE)
-ZLMO(IIJB:IIJE)=XUNDEF
+ZLMO(:)=XUNDEF
 !$mnh_end_expand_array(JIJ=IIJB:IIJE)
 IF (TURBN%LRMC01) THEN
   !$mnh_expand_array(JIJ=IIJB:IIJE)
-  ZUSTAR(IIJB:IIJE)=(PSFU(IIJB:IIJE)**2+PSFV(IIJB:IIJE)**2)**(0.25)
+  ZUSTAR(:)=(PSFU(:)**2+PSFV(:)**2)**(0.25)
   !$mnh_end_expand_array(JIJ=IIJB:IIJE)
   IF (KRR>0) THEN
     CALL LMO(D,CST,ZUSTAR,ZTHLM(:,IKB),ZRM(:,IKB,1),PSFTH,PSFRV,ZLMO)
@@ -856,7 +856,7 @@ END IF
 !RMC01 is only applied on RM17 in HM21
 IF (TURBN%CTURBLEN=='HM21') THEN
   !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-  ZLEPS(IIJB:IIJE,1:IKT) = MIN(ZLEPS(IIJB:IIJE,1:IKT),ZLMW(IIJB:IIJE,1:IKT)*TURBN%XCADAP)
+  ZLEPS(:,:) = MIN(ZLEPS(:,:),ZLMW(:,:)*TURBN%XCADAP)
   !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 END IF
 !
@@ -892,42 +892,42 @@ IF (HPROGRAM/='AROME ') THEN
 !
   CALL UPDATE_ROTATE_WIND(D,ZUSLOPE,ZVSLOPE,HLBCX,HLBCY)
 ELSE
-  ZUSLOPE(IIJB:IIJE)=PUT(IIJB:IIJE,IKA)
-  ZVSLOPE(IIJB:IIJE)=PVT(IIJB:IIJE,IKA)
+  ZUSLOPE(:)=PUT(:,IKA)
+  ZVSLOPE(:)=PVT(:,IKA)
 END IF
 IF (OOCEAN) THEN
-  ZUSLOPE(IIJB:IIJE)=PUT(IIJB:IIJE,IKU-1)
-  ZVSLOPE(IIJB:IIJE)=PVT(IIJB:IIJE,IKU-1)
+  ZUSLOPE(:)=PUT(:,IKU-1)
+  ZVSLOPE(:)=PVT(:,IKU-1)
 END IF
 !
 !
 !*      4.2 compute the proportionality coefficient between wind and stress
 !
 !$mnh_expand_array(JIJ=IIJB:IIJE)
-ZCDUEFF(IIJB:IIJE) =-SQRT ( (PSFU(IIJB:IIJE)**2 + PSFV(IIJB:IIJE)**2) /               &
+ZCDUEFF(:) =-SQRT ( (PSFU(:)**2 + PSFV(:)**2) /               &
 #ifdef REPRO48
-                    (1.E-60 + ZUSLOPE(IIJB:IIJE)**2 + ZVSLOPE(IIJB:IIJE)**2 ) )
+                    (1.E-60 + ZUSLOPE(:)**2 + ZVSLOPE(:)**2 ) )
 #else
-                    (CST%XMNH_TINY + ZUSLOPE(IIJB:IIJE)**2 + ZVSLOPE(IIJB:IIJE)**2 ) )
+                    (CST%XMNH_TINY + ZUSLOPE(:)**2 + ZVSLOPE(:)**2 ) )
 #endif
 !$mnh_end_expand_array(JIJ=IIJB:IIJE)
 !
 !*       4.6 compute the surface tangential fluxes
 !
 IF (OOCEAN) THEN
-  ZTAU11M(IIJB:IIJE)=0.
+  ZTAU11M(:)=0.
 ELSE
   !$mnh_expand_array(JIJ=IIJB:IIJE)        
-  ZTAU11M(IIJB:IIJE) =2./3.*(  (1.+ (PZZ(IIJB:IIJE,IKB+IKL)-PZZ(IIJB:IIJE,IKB))  &
-                           /(PDZZ(IIJB:IIJE,IKB+IKL)+PDZZ(IIJB:IIJE,IKB))  &
-                       )   *PTKET(IIJB:IIJE,IKB)                   &
-                     -0.5  *PTKET(IIJB:IIJE,IKB+IKL)                 &
+  ZTAU11M(:) =2./3.*(  (1.+ (PZZ(:,IKB+IKL)-PZZ(:,IKB))  &
+                           /(PDZZ(:,IKB+IKL)+PDZZ(:,IKB))  &
+                       )   *PTKET(:,IKB)                   &
+                     -0.5  *PTKET(:,IKB+IKL)                 &
                     )
   !$mnh_end_expand_array(JIJ=IIJB:IIJE)
 END IF
-ZTAU12M(IIJB:IIJE) =0.0
-ZTAU22M(IIJB:IIJE) =ZTAU11M(IIJB:IIJE)
-ZTAU33M(IIJB:IIJE) =ZTAU11M(IIJB:IIJE)
+ZTAU12M(:) =0.0
+ZTAU22M(:) =ZTAU11M(:)
+ZTAU33M(:) =ZTAU11M(:)
 !
 !*       4.7 third order terms in temperature and water fluxes and correlations
 !            ------------------------------------------------------------------
@@ -945,8 +945,8 @@ IF (TURBN%CTOM=='TM06') THEN
    CALL GZ_M_W_PHY(D,ZMWTH,PDZZ,ZWORK1)    ! -d(w'2th' )/dz
    CALL GZ_W_M_PHY(D,ZMTH2,PDZZ,ZWORK2)    ! -d(w'th'2 )/dz
    !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-   ZFWTH(IIJB:IIJE,1:IKT) = -ZWORK1(IIJB:IIJE,1:IKT)
-   ZFTH2(IIJB:IIJE,1:IKT) = -ZWORK2(IIJB:IIJE,1:IKT)
+   ZFWTH(:,:) = -ZWORK1(:,:)
+   ZFTH2(:,:) = -ZWORK2(:,:)
    !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 !
   ZFWTH(:,IKTE:) = 0.
@@ -1180,13 +1180,13 @@ END IF
 !      cloud computation is not statistical
 CALL MZF_PHY(D,PFLXZTHVMF,ZWORK1)
 !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-PTP(IIJB:IIJE,1:IKT) = PTP(IIJB:IIJE,1:IKT) &
-                             + CST%XG / PTHVREF(IIJB:IIJE,1:IKT) * ZWORK1(IIJB:IIJE,1:IKT)
+PTP(:,:) = PTP(:,:) &
+                             + CST%XG / PTHVREF(:,:) * ZWORK1(:,:)
 !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 
 IF(PRESENT(PTPMF))  THEN
   !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-  PTPMF(IIJB:IIJE,1:IKT)=CST%XG / PTHVREF(IIJB:IIJE,1:IKT) * ZWORK1(IIJB:IIJE,1:IKT)
+  PTPMF(:,:)=CST%XG / PTHVREF(:,:) * ZWORK1(:,:)
   !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 END IF
 !  6.2 TKE evolution equation
@@ -1291,13 +1291,13 @@ END IF
 !* stores value of conservative variables & wind before turbulence tendency (AROME only)
 IF(PRESENT(PDRUS_TURB)) THEN
 !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-  PDRUS_TURB(IIJB:IIJE,1:IKT)   = PRUS(IIJB:IIJE,1:IKT) - PDRUS_TURB(IIJB:IIJE,1:IKT)
-  PDRVS_TURB(IIJB:IIJE,1:IKT)   = PRVS(IIJB:IIJE,1:IKT) - PDRVS_TURB(IIJB:IIJE,1:IKT)
-  PDRTHLS_TURB(IIJB:IIJE,1:IKT) = PRTHLS(IIJB:IIJE,1:IKT) - PDRTHLS_TURB(IIJB:IIJE,1:IKT)
-  PDRRTS_TURB(IIJB:IIJE,1:IKT)  = PRRS(IIJB:IIJE,1:IKT,1) - PDRRTS_TURB(IIJB:IIJE,1:IKT)
+  PDRUS_TURB(:,:)   = PRUS(:,:) - PDRUS_TURB(:,:)
+  PDRVS_TURB(:,:)   = PRVS(:,:) - PDRVS_TURB(:,:)
+  PDRTHLS_TURB(:,:) = PRTHLS(:,:) - PDRTHLS_TURB(:,:)
+  PDRRTS_TURB(:,:)  = PRRS(:,:,1) - PDRRTS_TURB(:,:)
   !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
   !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT,JSV=1:KSV)  
-  PDRSVS_TURB(IIJB:IIJE,1:IKT,:)  = PRSVS(IIJB:IIJE,1:IKT,:) - PDRSVS_TURB(IIJB:IIJE,1:IKT,:)
+  PDRSVS_TURB(:,:,:)  = PRSVS(:,:,:) - PDRSVS_TURB(:,:,:)
   !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT,JSV=1:KSV)
 END IF
 !----------------------------------------------------------------------------
@@ -1308,26 +1308,26 @@ END IF
 IF ( KRRL >= 1 ) THEN
   IF ( KRRI >= 1 ) THEN
     !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-    PRT(IIJB:IIJE,1:IKT,1)  = PRT(IIJB:IIJE,1:IKT,1)  - PRT(IIJB:IIJE,1:IKT,2)  &
-                                    - PRT(IIJB:IIJE,1:IKT,4)
-    PRRS(IIJB:IIJE,1:IKT,1) = PRRS(IIJB:IIJE,1:IKT,1) - PRRS(IIJB:IIJE,1:IKT,2) &
-                                    - PRRS(IIJB:IIJE,1:IKT,4)
-    PTHLT(IIJB:IIJE,1:IKT)  = PTHLT(IIJB:IIJE,1:IKT)  + ZLVOCPEXNM(IIJB:IIJE,1:IKT) &
-                                    * PRT(IIJB:IIJE,1:IKT,2) &
-                                    + ZLSOCPEXNM(IIJB:IIJE,1:IKT) * PRT(IIJB:IIJE,1:IKT,4)
-    PRTHLS(IIJB:IIJE,1:IKT) = PRTHLS(IIJB:IIJE,1:IKT) + ZLVOCPEXNM(IIJB:IIJE,1:IKT) &
-                                    * PRRS(IIJB:IIJE,1:IKT,2) &
-                                    + ZLSOCPEXNM(IIJB:IIJE,1:IKT) * PRRS(IIJB:IIJE,1:IKT,4)
+    PRT(:,:,1)  = PRT(:,:,1)  - PRT(:,:,2)  &
+                                    - PRT(:,:,4)
+    PRRS(:,:,1) = PRRS(:,:,1) - PRRS(:,:,2) &
+                                    - PRRS(:,:,4)
+    PTHLT(:,:)  = PTHLT(:,:)  + ZLVOCPEXNM(:,:) &
+                                    * PRT(:,:,2) &
+                                    + ZLSOCPEXNM(:,:) * PRT(:,:,4)
+    PRTHLS(:,:) = PRTHLS(:,:) + ZLVOCPEXNM(:,:) &
+                                    * PRRS(:,:,2) &
+                                    + ZLSOCPEXNM(:,:) * PRRS(:,:,4)
     !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 !
   ELSE
     !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-    PRT(IIJB:IIJE,1:IKT,1)  = PRT(IIJB:IIJE,1:IKT,1)  - PRT(IIJB:IIJE,1:IKT,2)
-    PRRS(IIJB:IIJE,1:IKT,1) = PRRS(IIJB:IIJE,1:IKT,1) - PRRS(IIJB:IIJE,1:IKT,2)
-    PTHLT(IIJB:IIJE,1:IKT)  = PTHLT(IIJB:IIJE,1:IKT)  + ZLOCPEXNM(IIJB:IIJE,1:IKT) &
-                                    * PRT(IIJB:IIJE,1:IKT,2)
-    PRTHLS(IIJB:IIJE,1:IKT) = PRTHLS(IIJB:IIJE,1:IKT) + ZLOCPEXNM(IIJB:IIJE,1:IKT) &
-                                    * PRRS(IIJB:IIJE,1:IKT,2)
+    PRT(:,:,1)  = PRT(:,:,1)  - PRT(:,:,2)
+    PRRS(:,:,1) = PRRS(:,:,1) - PRRS(:,:,2)
+    PTHLT(:,:)  = PTHLT(:,:)  + ZLOCPEXNM(:,:) &
+                                    * PRT(:,:,2)
+    PRTHLS(:,:) = PRTHLS(:,:) + ZLOCPEXNM(:,:) &
+                                    * PRRS(:,:,2)
     !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
   END IF
 END IF
@@ -1350,7 +1350,7 @@ IF (TLES%LLES_CALL) THEN
   CALL LES_MEAN_SUBGRID_PHY(D,TLES,PSFV,TLES%X_LES_VW0)
   !
   !$mnh_expand_array(JIJ=IIJB:IIJE)
-  ZWORK2D(IIJB:IIJE) = (PSFU(IIJB:IIJE)*PSFU(IIJB:IIJE)+PSFV(IIJB:IIJE)*PSFV(IIJB:IIJE))**0.25
+  ZWORK2D(:) = (PSFU(:)*PSFU(:)+PSFV(:)*PSFV(:))**0.25
   !$mnh_end_expand_array(JIJ=IIJB:IIJE)
   CALL LES_MEAN_SUBGRID_PHY(D,TLES,ZWORK2D,TLES%X_LES_USTAR)
 !----------------------------------------------------------------------------
@@ -1374,7 +1374,7 @@ IF (TLES%LLES_CALL) THEN
   IF (TURBN%CTURBDIM=="1DIM") THEN
     !
     !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-    ZWORK1(IIJB:IIJE,1:IKT) = 2./3.*PTKET(IIJB:IIJE,1:IKT)
+    ZWORK1(:,:) = 2./3.*PTKET(:,:)
     !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
     CALL LES_MEAN_SUBGRID_PHY(D,TLES,ZWORK1,TLES%X_LES_SUBGRID_U2)
     TLES%X_LES_SUBGRID_V2(:,:,:) = TLES%X_LES_SUBGRID_U2(:,:,:)
@@ -1383,7 +1383,7 @@ IF (TLES%LLES_CALL) THEN
     CALL GZ_M_W_PHY(D,PTHLT,PDZZ,ZWORK1)
     CALL MZF_PHY(D,ZWORK1,ZWORK2)
     !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-    ZWORK2(IIJB:IIJE,1:IKT)  = 2./3.*PTKET(IIJB:IIJE,1:IKT) *ZWORK2(IIJB:IIJE,1:IKT)
+    ZWORK2(:,:)  = 2./3.*PTKET(:,:) *ZWORK2(:,:)
     !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
     CALL LES_MEAN_SUBGRID_PHY(D,TLES,ZWORK2,TLES%X_LES_RES_ddz_Thl_SBG_W2)
     !
@@ -1391,7 +1391,7 @@ IF (TLES%LLES_CALL) THEN
       CALL GZ_M_W_PHY(D,PRT(:,:,1),PDZZ,ZWORK1)
       CALL MZF_PHY(D,ZWORK1,ZWORK2)
       !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-      ZWORK2(IIJB:IIJE,1:IKT)  = 2./3.*PTKET(IIJB:IIJE,1:IKT) *ZWORK2(IIJB:IIJE,1:IKT)
+      ZWORK2(:,:)  = 2./3.*PTKET(:,:) *ZWORK2(:,:)
       !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
       CALL LES_MEAN_SUBGRID_PHY(D,TLES,ZWORK2,TLES%X_LES_RES_ddz_Rt_SBG_W2)
     END IF
@@ -1399,7 +1399,7 @@ IF (TLES%LLES_CALL) THEN
       CALL GZ_M_W_PHY(D,PSVT(:,:,JSV),PDZZ,ZWORK1)
       CALL MZF_PHY(D,ZWORK1,ZWORK2)
       !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-      ZWORK2(IIJB:IIJE,1:IKT)  = 2./3.*PTKET(IIJB:IIJE,1:IKT) *ZWORK2(IIJB:IIJE,1:IKT)
+      ZWORK2(:,:)  = 2./3.*PTKET(:,:) *ZWORK2(:,:)
       !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
       CALL LES_MEAN_SUBGRID_PHY(D,TLES,ZWORK2, TLES%X_LES_RES_ddz_Sv_SBG_W2(:,:,:,JSV))
     END DO
@@ -1422,7 +1422,7 @@ IF (TLES%LLES_CALL) THEN
   TLES%XTIME_LES = TLES%XTIME_LES + ZTIME2 - ZTIME1
 END IF
 !
-IF(PRESENT(PLEM)) PLEM(IIJB:IIJE,IKTB:IKTE) = ZLM(IIJB:IIJE,IKTB:IKTE)
+IF(PRESENT(PLEM)) PLEM(:,:) = ZLM(:,:)
 !----------------------------------------------------------------------------
 !
 IF (LHOOK) CALL DR_HOOK('TURB',1,ZHOOK_HANDLE)
@@ -1467,44 +1467,44 @@ REAL, DIMENSION(D%NIJT,D%NKT), INTENT(OUT)   :: PAMOIST,PATHETA
 !*       1.1 Lv/Cph at  t
 !
   !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-  PLOCPEXN(IIJB:IIJE,1:IKT) = ( PLTT + (CST%XCPV-PC) *  (PT(IIJB:IIJE,1:IKT)-CST%XTT) ) &
-                                     / PCP(IIJB:IIJE,1:IKT)
+  PLOCPEXN(:,:) = ( PLTT + (CST%XCPV-PC) *  (PT(:,:)-CST%XTT) ) &
+                                     / PCP(:,:)
 !
 !*      1.2 Saturation vapor pressure at t
 !
-  ZRVSAT(IIJB:IIJE,1:IKT) =  EXP( PALP - PBETA/PT(IIJB:IIJE,1:IKT) - PGAM*ALOG( PT(IIJB:IIJE,1:IKT) ) )
+  ZRVSAT(:,:) =  EXP( PALP - PBETA/PT(:,:) - PGAM*ALOG( PT(:,:) ) )
 !
 !*      1.3 saturation  mixing ratio at t
 !
-  ZRVSAT(IIJB:IIJE,1:IKT) =  ZRVSAT(IIJB:IIJE,1:IKT) &
-                                    * ZEPS / ( PPABST(IIJB:IIJE,1:IKT) - ZRVSAT(IIJB:IIJE,1:IKT) )
+  ZRVSAT(:,:) =  ZRVSAT(:,:) &
+                                    * ZEPS / ( PPABST(:,:) - ZRVSAT(:,:) )
 !
 !*      1.4 compute the saturation mixing ratio derivative (rvs')
 !
-  ZDRVSATDT(IIJB:IIJE,1:IKT) = ( PBETA / PT(IIJB:IIJE,1:IKT)  - PGAM ) / PT(IIJB:IIJE,1:IKT)   &
-                 * ZRVSAT(IIJB:IIJE,1:IKT) * ( 1. + ZRVSAT(IIJB:IIJE,1:IKT) / ZEPS )
+  ZDRVSATDT(:,:) = ( PBETA / PT(:,:)  - PGAM ) / PT(:,:)   &
+                 * ZRVSAT(:,:) * ( 1. + ZRVSAT(:,:) / ZEPS )
 !
 !*      1.5 compute Amoist
 !
-  PAMOIST(IIJB:IIJE,1:IKT)=  0.5 / ( 1.0 + ZDRVSATDT(IIJB:IIJE,1:IKT) * PLOCPEXN(IIJB:IIJE,1:IKT) )
+  PAMOIST(:,:)=  0.5 / ( 1.0 + ZDRVSATDT(:,:) * PLOCPEXN(:,:) )
 !
 !*      1.6 compute Atheta
 !
-  PATHETA(IIJB:IIJE,1:IKT)= PAMOIST(IIJB:IIJE,1:IKT) * PEXN(IIJB:IIJE,1:IKT) *               &
-        ( ( ZRVSAT(IIJB:IIJE,1:IKT) - PRT(IIJB:IIJE,1:IKT,1) ) * PLOCPEXN(IIJB:IIJE,1:IKT) / &
-          ( 1. + ZDRVSATDT(IIJB:IIJE,1:IKT) * PLOCPEXN(IIJB:IIJE,1:IKT) )        *               &
+  PATHETA(:,:)= PAMOIST(:,:) * PEXN(:,:) *               &
+        ( ( ZRVSAT(:,:) - PRT(:,:,1) ) * PLOCPEXN(:,:) / &
+          ( 1. + ZDRVSATDT(:,:) * PLOCPEXN(:,:) )        *               &
           (                                                                  &
-           ZRVSAT(IIJB:IIJE,1:IKT) * (1. + ZRVSAT(IIJB:IIJE,1:IKT)/ZEPS)                         &
-                        * ( -2.*PBETA/PT(IIJB:IIJE,1:IKT) + PGAM ) / PT(IIJB:IIJE,1:IKT)**2      &
-          +ZDRVSATDT(IIJB:IIJE,1:IKT) * (1. + 2. * ZRVSAT(IIJB:IIJE,1:IKT)/ZEPS)                 &
-                        * ( PBETA/PT(IIJB:IIJE,1:IKT) - PGAM ) / PT(IIJB:IIJE,1:IKT)             &
+           ZRVSAT(:,:) * (1. + ZRVSAT(:,:)/ZEPS)                         &
+                        * ( -2.*PBETA/PT(:,:) + PGAM ) / PT(:,:)**2      &
+          +ZDRVSATDT(:,:) * (1. + 2. * ZRVSAT(:,:)/ZEPS)                 &
+                        * ( PBETA/PT(:,:) - PGAM ) / PT(:,:)             &
           )                                                                  &
-         - ZDRVSATDT(IIJB:IIJE,1:IKT)                                                  &
+         - ZDRVSATDT(:,:)                                                  &
         )
 !
 !*      1.7 Lv/Cph/Exner at t-1
 !
-  PLOCPEXN(IIJB:IIJE,1:IKT) = PLOCPEXN(IIJB:IIJE,1:IKT) / PEXN(IIJB:IIJE,1:IKT)
+  PLOCPEXN(:,:) = PLOCPEXN(:,:) / PEXN(:,:)
   !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 !
 IF (LHOOK) CALL DR_HOOK('TURB:COMPUTE_FUNCTION_THERMO',1,ZHOOK_HANDLE2)
@@ -1551,32 +1551,32 @@ REAL, DIMENSION(D%NIJT,D%NKT), INTENT(OUT)   :: PAMOIST,PATHETA
 !*       1.1 Lv/Cph at  t
 !
   !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-  PLOCPEXN(IIJB:IIJE,1:IKT) = ( PLTT + (CST%XCPV-PC) *  (PT(IIJB:IIJE,1:IKT)-CST%XTT) ) / PCP(IIJB:IIJE,1:IKT)
+  PLOCPEXN(:,:) = ( PLTT + (CST%XCPV-PC) *  (PT(:,:)-CST%XTT) ) / PCP(:,:)
 !
 !*      1.2 Saturation vapor pressure at t
 !
-  ZRVSAT(IIJB:IIJE,1:IKT) =  EXP( PALP - PBETA/PT(IIJB:IIJE,1:IKT) - PGAM*ALOG( PT(IIJB:IIJE,1:IKT) ) )
+  ZRVSAT(:,:) =  EXP( PALP - PBETA/PT(:,:) - PGAM*ALOG( PT(:,:) ) )
 !
 !*      1.3 saturation  mixing ratio at t
 !
-  ZRVSAT(IIJB:IIJE,1:IKT) =  ZRVSAT(IIJB:IIJE,1:IKT) * ZEPS / ( PPABST(IIJB:IIJE,1:IKT) - ZRVSAT(IIJB:IIJE,1:IKT) )
+  ZRVSAT(:,:) =  ZRVSAT(:,:) * ZEPS / ( PPABST(:,:) - ZRVSAT(:,:) )
 !
 !*      1.4 compute the saturation mixing ratio derivative (rvs')
 !
-  ZDRVSATDT(IIJB:IIJE,1:IKT) = ( PBETA / PT(IIJB:IIJE,1:IKT)  - PGAM ) / PT(IIJB:IIJE,1:IKT)   &
-                 * ZRVSAT(IIJB:IIJE,1:IKT) * ( 1. + ZRVSAT(IIJB:IIJE,1:IKT) / ZEPS )
+  ZDRVSATDT(:,:) = ( PBETA / PT(:,:)  - PGAM ) / PT(:,:)   &
+                 * ZRVSAT(:,:) * ( 1. + ZRVSAT(:,:) / ZEPS )
 !
 !*      1.5 compute Amoist
 !
-  PAMOIST(IIJB:IIJE,1:IKT)=  1.0 / ( 1.0 + ZDRVSATDT(IIJB:IIJE,1:IKT) * PLOCPEXN(IIJB:IIJE,1:IKT) )
+  PAMOIST(:,:)=  1.0 / ( 1.0 + ZDRVSATDT(:,:) * PLOCPEXN(:,:) )
 !
 !*      1.6 compute Atheta
 !
-  PATHETA(IIJB:IIJE,1:IKT)= PAMOIST(IIJB:IIJE,1:IKT) * PEXN(IIJB:IIJE,1:IKT) * ZDRVSATDT(IIJB:IIJE,1:IKT)
+  PATHETA(:,:)= PAMOIST(:,:) * PEXN(:,:) * ZDRVSATDT(:,:)
 !
 !*      1.7 Lv/Cph/Exner at t-1
 !
-  PLOCPEXN(IIJB:IIJE,1:IKT) = PLOCPEXN(IIJB:IIJE,1:IKT) / PEXN(IIJB:IIJE,1:IKT)
+  PLOCPEXN(:,:) = PLOCPEXN(:,:) / PEXN(:,:)
   !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 !
 IF (LHOOK) CALL DR_HOOK('TURB:COMPUTE_FUNCTION_THERMO_NEW_STAT',1,ZHOOK_HANDLE2)
@@ -1620,36 +1620,36 @@ IF (ODZ) THEN
   ! Dz is take into account in the computation
   DO JK = IKTB,IKTE ! 1D turbulence scheme
     !$mnh_expand_array(JIJ=IIJB:IIJE)
-    PLM(IIJB:IIJE,JK) = PZZ(IIJB:IIJE,JK+IKL) - PZZ(IIJB:IIJE,JK)
+    PLM(:,JK) = PZZ(:,JK+IKL) - PZZ(:,JK)
     !$mnh_end_expand_array(JIJ=IIJB:IIJE)
   END DO
   !$mnh_expand_array(JIJ=IIJB:IIJE)
-  PLM(IIJB:IIJE,IKU) = PLM(IIJB:IIJE,IKE)
-  PLM(IIJB:IIJE,IKA) = PZZ(IIJB:IIJE,IKB) - PZZ(IIJB:IIJE,IKA)
+  PLM(:,IKU) = PLM(:,IKE)
+  PLM(:,IKA) = PZZ(:,IKB) - PZZ(:,IKA)
   !$mnh_end_expand_array(JIJ=IIJB:IIJE)
   IF ( TURBN%CTURBDIM /= '1DIM' ) THEN  ! 3D turbulence scheme
     IF ( O2D) THEN
       !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-      PLM(IIJB:IIJE,1:IKT) = SQRT( PLM(IIJB:IIJE,1:IKT)*ZWORK1(IIJB:IIJE,1:IKT) )
+      PLM(:,:) = SQRT( PLM(:,:)*ZWORK1(:,:) )
       !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
     ELSE
       !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-      PLM(IIJB:IIJE,1:IKT) = (PLM(IIJB:IIJE,1:IKT)*ZWORK1(IIJB:IIJE,1:IKT) &
-                                   * ZWORK2(IIJB:IIJE,1:IKT) ) ** (1./3.)
+      PLM(:,:) = (PLM(:,:)*ZWORK1(:,:) &
+                                   * ZWORK2(:,:) ) ** (1./3.)
       !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
     END IF
   END IF
 ELSE
   ! Dz not taken into account in computation to assure invariability with vertical grid mesh
   !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-  PLM(IIJB:IIJE,1:IKT)=1.E10
+  PLM(:,:)=1.E10
   !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
   IF ( TURBN%CTURBDIM /= '1DIM' ) THEN  ! 3D turbulence scheme
     IF ( O2D) THEN
       PLM(:,:) = ZWORK1(:,:)
     ELSE
       !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-      PLM(IIJB:IIJE,1:IKT) = (ZWORK1(IIJB:IIJE,1:IKT)*ZWORK2(IIJB:IIJE,1:IKT) ) ** (1./2.)
+      PLM(:,:) = (ZWORK1(:,:)*ZWORK2(:,:) ) ** (1./2.)
       !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
     END IF
   END IF
@@ -1686,8 +1686,8 @@ IF (.NOT. TURBN%LRMC01) THEN
 END IF
 !
 !$mnh_expand_array(JIJ=IIJB:IIJE)
-PLM(IIJB:IIJE,IKA) = PLM(IIJB:IIJE,IKB)
-PLM(IIJB:IIJE,IKU) = PLM(IIJB:IIJE,IKE)
+PLM(:,IKA) = PLM(:,IKB)
+PLM(:,IKU) = PLM(:,IKE)
 !$mnh_end_expand_array(JIJ=IIJB:IIJE)
 !
 IF (LHOOK) CALL DR_HOOK('TURB:DELT',1,ZHOOK_HANDLE2)
@@ -1731,22 +1731,22 @@ IF ( TURBN%CTURBDIM /= '1DIM' ) THEN
 END IF
 ! 1D turbulence scheme
 !$mnh_expand_array(JIJ=IIJB:IIJE,JK=IKTB:IKTE)
-PLM(IIJB:IIJE,IKTB:IKTE) = PZZ(IIJB:IIJE,IKL+IKTB:IKTE+IKL) - PZZ(IIJB:IIJE,IKTB:IKTE)
+PLM(:,:) = PZZ(:,IKL+:+IKL) - PZZ(:,:)
 !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=IKTB:IKTE)
 !$mnh_expand_array(JIJ=IIJB:IIJE)
-PLM(IIJB:IIJE,IKU) = PLM(IIJB:IIJE,IKE)
-PLM(IIJB:IIJE,IKA) = PZZ(IIJB:IIJE,IKB) - PZZ(IIJB:IIJE,IKA)
+PLM(:,IKU) = PLM(:,IKE)
+PLM(:,IKA) = PZZ(:,IKB) - PZZ(:,IKA)
 !$mnh_end_expand_array(JIJ=IIJB:IIJE)
 !
 IF ( TURBN%CTURBDIM /= '1DIM' ) THEN  ! 3D turbulence scheme
   IF ( O2D) THEN
     !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-    PLM(IIJB:IIJE,1:IKT) = SQRT( PLM(IIJB:IIJE,1:IKT)*ZWORK1(IIJB:IIJE,1:IKT) )
+    PLM(:,:) = SQRT( PLM(:,:)*ZWORK1(:,:) )
     !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
   ELSE
     !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-    PLM(IIJB:IIJE,1:IKT) = (PLM(IIJB:IIJE,1:IKT)*ZWORK1(IIJB:IIJE,1:IKT) &
-                                 * ZWORK2(IIJB:IIJE,1:IKT) ) ** (1./3.)
+    PLM(:,:) = (PLM(:,:)*ZWORK1(:,:) &
+                                 * ZWORK2(:,:) ) ** (1./3.)
     !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
   END IF
 END IF
@@ -1795,12 +1795,12 @@ ELSE! For dry atmos or unsalted ocean runs
 END IF
 !  special case near the surface
 !$mnh_expand_array(JIJ=IIJB:IIJE)
-ZDTHLDZ(IIJB:IIJE,IKB)=(PTHLT(IIJB:IIJE,IKB+IKL)-PTHLT(IIJB:IIJE,IKB))/PDZZ(IIJB:IIJE,IKB+IKL)
+ZDTHLDZ(:,IKB)=(PTHLT(:,IKB+IKL)-PTHLT(:,IKB))/PDZZ(:,IKB+IKL)
 !$mnh_end_expand_array(JIJ=IIJB:IIJE)
 ! For dry simulations
 IF (KRR>0) THEN
   !$mnh_expand_array(JIJ=IIJB:IIJE)
-  ZDRTDZ(IIJB:IIJE,IKB)=(PRT(IIJB:IIJE,IKB+IKL,1)-PRT(IIJB:IIJE,IKB,1))/PDZZ(IIJB:IIJE,IKB+IKL)
+  ZDRTDZ(:,IKB)=(PRT(:,IKB+IKL,1)-PRT(:,IKB,1))/PDZZ(:,IKB+IKL)
   !$mnh_end_expand_array(JIJ=IIJB:IIJE)
 ELSE
   ZDRTDZ(:,IKB)=0
@@ -1808,18 +1808,18 @@ ENDIF
 !
 IF (OOCEAN) THEN
   !$mnh_expand_array(JIJ=IIJB:IIJE)
-  ZWORK2D(IIJB:IIJE)=CST%XG*(CST%XALPHAOC*ZDTHLDZ(IIJB:IIJE,IKB)-CST%XBETAOC*ZDRTDZ(IIJB:IIJE,IKB))
+  ZWORK2D(:)=CST%XG*(CST%XALPHAOC*ZDTHLDZ(:,IKB)-CST%XBETAOC*ZDRTDZ(:,IKB))
   !$mnh_end_expand_array(JIJ=IIJB:IIJE)
 ELSE
   !$mnh_expand_array(JIJ=IIJB:IIJE)
-  ZWORK2D(IIJB:IIJE)=CST%XG/PTHVREF(IIJB:IIJE,IKB)*                                           &
-              (ZETHETA(IIJB:IIJE,IKB)*ZDTHLDZ(IIJB:IIJE,IKB)+ZEMOIST(IIJB:IIJE,IKB)*ZDRTDZ(IIJB:IIJE,IKB))
+  ZWORK2D(:)=CST%XG/PTHVREF(:,IKB)*                                           &
+              (ZETHETA(:,IKB)*ZDTHLDZ(:,IKB)+ZEMOIST(:,IKB)*ZDRTDZ(:,IKB))
   !$mnh_end_expand_array(JIJ=IIJB:IIJE)
 END IF
 !$mnh_expand_where(JIJ=IIJB:IIJE)
-WHERE(ZWORK2D(IIJB:IIJE)>0.)
-  PLM(IIJB:IIJE,IKB)=MAX(CST%XMNH_EPSILON,MIN( PLM(IIJB:IIJE,IKB),                 &
-                    0.76* SQRT(PTKET(IIJB:IIJE,IKB)/ZWORK2D(IIJB:IIJE))))
+WHERE(ZWORK2D(:)>0.)
+  PLM(:,IKB)=MAX(CST%XMNH_EPSILON,MIN( PLM(:,IKB),                 &
+                    0.76* SQRT(PTKET(:,IKB)/ZWORK2D(:))))
 END WHERE
 !$mnh_end_expand_where(JIJ=IIJB:IIJE)
 !
@@ -1853,9 +1853,9 @@ IF (.NOT. TURBN%LRMC01) THEN
 END IF
 !
 !$mnh_expand_array(JIJ=IIJB:IIJE)
-PLM(IIJB:IIJE,IKA) = PLM(IIJB:IIJE,IKB)
-PLM(IIJB:IIJE,IKE) = PLM(IIJB:IIJE,IKE-IKL)
-PLM(IIJB:IIJE,IKU) = PLM(IIJB:IIJE,IKU-IKL)
+PLM(:,IKA) = PLM(:,IKB)
+PLM(:,IKE) = PLM(:,IKE-IKL)
+PLM(:,IKU) = PLM(:,IKU-IKL)
 !$mnh_end_expand_array(JIJ=IIJB:IIJE)
 !
 IF (LHOOK) CALL DR_HOOK('TURB:DEAR',1,ZHOOK_HANDLE2)
@@ -1922,7 +1922,7 @@ ZPENTE = ( PCOEF_AMPL_SAT - 1. ) / ( PCEI_MAX - PCEI_MIN )
 ZCOEF_AMPL_CEI_NUL = 1. - ZPENTE * PCEI_MIN
 !
 !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-ZCOEF_AMPL(IIJB:IIJE,1:IKT) = 1.
+ZCOEF_AMPL(:,:) = 1.
 !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
 !
 !*       2.    CALCULATION OF THE AMPLIFICATION COEFFICIENT
@@ -1931,8 +1931,8 @@ ZCOEF_AMPL(IIJB:IIJE,1:IKT) = 1.
 ! Saturation
 !
 !$mnh_expand_where(JIJ=IIJB:IIJE,JK=1:IKT)
-WHERE ( PCEI(IIJB:IIJE,1:IKT)>=PCEI_MAX ) 
-  ZCOEF_AMPL(IIJB:IIJE,1:IKT)=PCOEF_AMPL_SAT
+WHERE ( PCEI(:,:)>=PCEI_MAX ) 
+  ZCOEF_AMPL(:,:)=PCOEF_AMPL_SAT
 END WHERE
 !$mnh_end_expand_where(JIJ=IIJB:IIJE,JK=1:IKT)
 !
@@ -1940,8 +1940,8 @@ END WHERE
 ! amplification coefficient ZCOEF_AMPL as a function of CEI
 !
 !$mnh_expand_where(JIJ=IIJB:IIJE,JK=1:IKT)
-WHERE ( PCEI(IIJB:IIJE,1:IKT) <  PCEI_MAX .AND. PCEI(IIJB:IIJE,1:IKT) >  PCEI_MIN)
-  ZCOEF_AMPL(IIJB:IIJE,1:IKT) = ZPENTE * PCEI(IIJB:IIJE,1:IKT) + ZCOEF_AMPL_CEI_NUL
+WHERE ( PCEI(:,:) <  PCEI_MAX .AND. PCEI(:,:) >  PCEI_MIN)
+  ZCOEF_AMPL(:,:) = ZPENTE * PCEI(:,:) + ZCOEF_AMPL_CEI_NUL
 END WHERE
 !$mnh_end_expand_where(JIJ=IIJB:IIJE,JK=1:IKT)
 !
@@ -1995,16 +1995,16 @@ ENDIF
 ! Amplification of the mixing length when the criteria are verified
 !
 !$mnh_expand_where(JIJ=IIJB:IIJE,JK=1:IKT)
-WHERE (ZCOEF_AMPL(IIJB:IIJE,1:IKT) /= 1.) 
-  ZLM(IIJB:IIJE,1:IKT) = ZCOEF_AMPL(IIJB:IIJE,1:IKT)*ZLM_CLOUD(IIJB:IIJE,1:IKT)
+WHERE (ZCOEF_AMPL(:,:) /= 1.) 
+  ZLM(:,:) = ZCOEF_AMPL(:,:)*ZLM_CLOUD(:,:)
 END WHERE
 !$mnh_end_expand_where(JIJ=IIJB:IIJE,JK=1:IKT)
 !
 ! Cloud mixing length in the clouds at the points which do not verified the CEI
 !
 !$mnh_expand_where(JIJ=IIJB:IIJE,JK=1:IKT)
-WHERE (PCEI(IIJB:IIJE,1:IKT) == -1.)
-  ZLM(IIJB:IIJE,1:IKT) = ZLM_CLOUD(IIJB:IIJE,1:IKT)
+WHERE (PCEI(:,:) == -1.)
+  ZLM(:,:) = ZLM_CLOUD(:,:)
 END WHERE
 !$mnh_end_expand_where(JIJ=IIJB:IIJE,JK=1:IKT)
 !