From b95532025d5e13acfdb8fe6c74e0cc9d396d7d0f Mon Sep 17 00:00:00 2001
From: Quentin Rodier <quentin.rodier@meteo.fr>
Date: Fri, 24 Jun 2022 16:19:52 +0200
Subject: [PATCH] Quentin 24/06/2022: preparing NPROMA incomplete blocks by
 using NIJB and NIJE (next)

---
 src/arome/aux/mode_fill_dimphyexn.F90   |   2 +
 src/common/aux/modd_dimphyexn.F90       |   2 +
 src/common/turb/mode_bl89.F90           |  36 +++---
 src/common/turb/mode_rmc01.F90          | 162 ++++++++++++------------
 src/common/turb/mode_tridiag.F90        |  94 +++++++-------
 src/common/turb/mode_tridiag_thermo.F90 | 136 ++++++++++----------
 src/common/turb/mode_tridiag_tke.F90    |  96 +++++++-------
 src/common/turb/mode_tridiag_wind.F90   |  96 +++++++-------
 8 files changed, 314 insertions(+), 310 deletions(-)

diff --git a/src/arome/aux/mode_fill_dimphyexn.F90 b/src/arome/aux/mode_fill_dimphyexn.F90
index 4fd9eb5f0..713626623 100644
--- a/src/arome/aux/mode_fill_dimphyexn.F90
+++ b/src/arome/aux/mode_fill_dimphyexn.F90
@@ -65,6 +65,8 @@ YDDIMPHYEX%NJB=1
 YDDIMPHYEX%NJE=KJT
 !
 YDDIMPHYEX%NIJT=KIT*KJT
+YDDIMPHYEX%NIJB=1
+YDDIMPHYEX%NIJE=KIE
 !
 YDDIMPHYEX%NKL=-1
 YDDIMPHYEX%NKT=KKT
diff --git a/src/common/aux/modd_dimphyexn.F90 b/src/common/aux/modd_dimphyexn.F90
index b734113c7..b1a9ef2c9 100644
--- a/src/common/aux/modd_dimphyexn.F90
+++ b/src/common/aux/modd_dimphyexn.F90
@@ -71,6 +71,8 @@ TYPE DIMPHYEX_t
   INTEGER :: NIEC  ! except in turbulence where external HALO points must be
   INTEGER :: NJEC  ! included so NIBC=NJBC=1 and NIEC/NJEC=NIT/NJT
   INTEGER :: NIJT  ! NIT*NJT for horizontal packing
+  INTEGER :: NIJB  ! First horizontal inner mass point index
+  INTEGER :: NIJE  ! Last horizontal inner mass point index
 !
 END TYPE DIMPHYEX_t
 !
diff --git a/src/common/turb/mode_bl89.F90 b/src/common/turb/mode_bl89.F90
index a60377ec7..c110da535 100644
--- a/src/common/turb/mode_bl89.F90
+++ b/src/common/turb/mode_bl89.F90
@@ -144,9 +144,9 @@ ELSE !Atmosphere case
   END DO
 END IF
 !
-!$mnh_expand_array(JIJ=1:D%NIJT,JK=1:D%NKT)
-ZSQRT_TKE(1:D%NIJT,1:D%NKT) = SQRT(PTKEM(1:D%NIJT,1:D%NKT))
-!$mnh_end_expand_array(JIJ=1:D%NIJT,JK=1:D%NKT)
+!$mnh_expand_array(JIJ=D%NIJB:D%NIJE,JK=1:D%NKT)
+ZSQRT_TKE(D%NIJB:D%NIJE,1:D%NKT) = SQRT(PTKEM(D%NIJB:D%NIJE,1:D%NKT))
+!$mnh_end_expand_array(JIJ=D%NIJB:D%NIJE,JK=1:D%NKT)
 !
 !ZBL89EXP is defined here because (and not in ini_cturb) because CSTURB%XCED is defined in read_exseg (depending on BL89/RM17)
 ZBL89EXP = LOG(16.)/(4.*LOG(CST%XKARMAN)+LOG(CSTURB%XCED)-3.*LOG(CSTURB%XCMFS))
@@ -157,18 +157,18 @@ ZUSRBL89 = 1./ZBL89EXP
 !              -----------------------------------------------
 !
 IF(KRR /= 0) THEN
-  ZSUM(1:D%NIJT,1:D%NKT) = 0.
+  ZSUM(D%NIJB:D%NIJE,1:D%NKT) = 0.
   DO JRR=1,KRR
-    !$mnh_expand_array(JIJ=1:D%NIJT,JK=1:D%NKT)
-    ZSUM(1:D%NIJT,1:D%NKT) = ZSUM(1:D%NIJT,1:D%NKT)+PRM(1:D%NIJT,1:D%NKT,JRR)
-    !$mnh_end_expand_array(JIJ=1:D%NIJT,JK=1:D%NKT)
+    !$mnh_expand_array(JIJ=D%NIJB:D%NIJE,JK=1:D%NKT)
+    ZSUM(D%NIJB:D%NIJE,1:D%NKT) = ZSUM(D%NIJB:D%NIJE,1:D%NKT)+PRM(D%NIJB:D%NIJE,1:D%NKT,JRR)
+    !$mnh_end_expand_array(JIJ=D%NIJB:D%NIJE,JK=1:D%NKT)
   ENDDO
-  !$mnh_expand_array(JIJ=1:D%NIJT,JK=1:D%NKT)
-  ZVPT(1:D%NIJT,1:D%NKT)=PTHLM(1:D%NIJT,1:D%NKT) * ( 1. + ZRVORD*PRM(1:D%NIJT,1:D%NKT,1) )  &
-                           / ( 1. + ZSUM(1:D%NIJT,1:D%NKT) )
-  !$mnh_end_expand_array(JIJ=1:D%NIJT,JK=1:D%NKT)
+  !$mnh_expand_array(JIJ=D%NIJB:D%NIJE,JK=1:D%NKT)
+  ZVPT(D%NIJB:D%NIJE,1:D%NKT)=PTHLM(D%NIJB:D%NIJE,1:D%NKT) * ( 1. + ZRVORD*PRM(D%NIJB:D%NIJE,1:D%NKT,1) )  &
+                           / ( 1. + ZSUM(D%NIJB:D%NIJE,1:D%NKT) )
+  !$mnh_end_expand_array(JIJ=D%NIJB:D%NIJE,JK=1:D%NKT)
 ELSE
-  ZVPT(1:D%NIJT,1:D%NKT)=PTHLM(1:D%NIJT,1:D%NKT)
+  ZVPT(D%NIJB:D%NIJE,1:D%NKT)=PTHLM(D%NIJB:D%NIJE,1:D%NKT)
 END IF
 !
 !!!!!!!!!!!!
@@ -215,7 +215,7 @@ DO JK=D%NKTB,D%NKTE
 !
 !*       4.  mixing length for a downwards displacement
 !            ------------------------------------------
-  ZINTE(1:D%NIJT)=PTKEM(1:D%NIJT,JK)
+  ZINTE(D%NIJB:D%NIJE)=PTKEM(D%NIJB:D%NIJE,JK)
   ZLWORK=0.
   ZTESTM=1.
   DO JKK=JK,D%NKB,-D%NKL
@@ -264,8 +264,8 @@ DO JK=D%NKTB,D%NKTE
 !*       6.  mixing length for an upwards displacement
 !            -----------------------------------------
 !
-  ZINTE(1:D%NIJT)=PTKEM(1:D%NIJT,JK)
-  ZLWORK(1:D%NIJT)=0.
+  ZINTE(D%NIJB:D%NIJE)=PTKEM(D%NIJB:D%NIJE,JK)
+  ZLWORK(D%NIJB:D%NIJE)=0.
   ZTESTM=1.
 !
   DO JKK=JK+D%NKL,D%NKE,D%NKL
@@ -330,9 +330,9 @@ END DO
 !*       9.  boundaries
 !            ----------
 !
-PLM(1:D%NIJT,D%NKA)=PLM(1:D%NIJT,D%NKB)
-PLM(1:D%NIJT,D%NKE)=PLM(1:D%NIJT,D%NKE-D%NKL)
-PLM(1:D%NIJT,D%NKU)=PLM(1:D%NIJT,D%NKE-D%NKL)
+PLM(D%NIJB:D%NIJE,D%NKA)=PLM(D%NIJB:D%NIJE,D%NKB)
+PLM(D%NIJB:D%NIJE,D%NKE)=PLM(D%NIJB:D%NIJE,D%NKE-D%NKL)
+PLM(D%NIJB:D%NIJE,D%NKU)=PLM(D%NIJB:D%NIJE,D%NKE-D%NKL)
 !
 !-------------------------------------------------------------------------------
 !
diff --git a/src/common/turb/mode_rmc01.F90 b/src/common/turb/mode_rmc01.F90
index 709d5879a..f15d2d9a3 100644
--- a/src/common/turb/mode_rmc01.F90
+++ b/src/common/turb/mode_rmc01.F90
@@ -118,14 +118,14 @@ IJB=D%NJBC
 CALL MZF_PHY(D,PZZ,ZZZ)
 ! replace by height of mass points
 DO JK=1,D%NKT
-  !$mnh_expand_array(JIJ=1:D%NIJT)
-  ZZZ(1:D%NIJT,JK) = ZZZ(1:D%NIJT,JK) - PZZ(1:D%NIJT,IKB)
-  !$mnh_end_expand_array(JIJ=1:D%NIJT)
+  !$mnh_expand_array(JIJ=D%NIJB:D%NIJE)
+  ZZZ(D%NIJB:D%NIJE,JK) = ZZZ(D%NIJB:D%NIJE,JK) - PZZ(D%NIJB:D%NIJE,IKB)
+  !$mnh_end_expand_array(JIJ=D%NIJB:D%NIJE)
 END DO
 ! fill upper level with physical value
-!$mnh_expand_array(JIJ=1:D%NIJT)
-ZZZ(1:D%NIJT,D%NKU) = 2.*ZZZ(1:D%NIJT,D%NKU-D%NKL) - ZZZ(1:D%NIJT,D%NKU-2*D%NKL)
-!$mnh_end_expand_array(JIJ=1:D%NIJT)
+!$mnh_expand_array(JIJ=D%NIJB:D%NIJE)
+ZZZ(D%NIJB:D%NIJE,D%NKU) = 2.*ZZZ(D%NIJB:D%NIJE,D%NKU-D%NKL) - ZZZ(D%NIJB:D%NIJE,D%NKU-2*D%NKL)
+!$mnh_end_expand_array(JIJ=D%NIJB:D%NIJE)
 !
 !-------------------------------------------------------------------------------
 !
@@ -134,18 +134,18 @@ ZZZ(1:D%NIJT,D%NKU) = 2.*ZZZ(1:D%NIJT,D%NKU-D%NKL) - ZZZ(1:D%NIJT,D%NKU-2*D%NKL)
 !
 ! z/LMO
 DO JK=1,D%NKT
-  !$mnh_expand_where(JIJ=1:D%NIJT)
-  WHERE (PLMO(1:D%NIJT)==XUNDEF)
-    ZZ_O_LMO(1:D%NIJT,JK)=0.
+  !$mnh_expand_where(JIJ=D%NIJB:D%NIJE)
+  WHERE (PLMO(D%NIJB:D%NIJE)==XUNDEF)
+    ZZ_O_LMO(D%NIJB:D%NIJE,JK)=0.
   ELSEWHERE
-    ZZ_O_LMO(1:D%NIJT,JK)=ZZZ(1:D%NIJT,JK)*PDIRCOSZW(1:D%NIJT)/PLMO(1:D%NIJT)
+    ZZ_O_LMO(D%NIJB:D%NIJE,JK)=ZZZ(D%NIJB:D%NIJE,JK)*PDIRCOSZW(D%NIJB:D%NIJE)/PLMO(D%NIJB:D%NIJE)
   END WHERE
-  !$mnh_end_expand_where(JIJ=1:D%NIJT)
+  !$mnh_end_expand_where(JIJ=D%NIJB:D%NIJE)
 END DO
-!$mnh_expand_array(JIJ=1:D%NIJT,JK=1:D%NKT)
-ZZ_O_LMO(1:D%NIJT,1:D%NKT) = MAX(ZZ_O_LMO(1:D%NIJT,1:D%NKT),-10.)
-ZZ_O_LMO(1:D%NIJT,1:D%NKT) = MIN(ZZ_O_LMO(1:D%NIJT,1:D%NKT), 10.)
-!$mnh_end_expand_array(JIJ=1:D%NIJT,JK=1:D%NKT)
+!$mnh_expand_array(JIJ=D%NIJB:D%NIJE,JK=1:D%NKT)
+ZZ_O_LMO(D%NIJB:D%NIJE,1:D%NKT) = MAX(ZZ_O_LMO(D%NIJB:D%NIJE,1:D%NKT),-10.)
+ZZ_O_LMO(D%NIJB:D%NIJE,1:D%NKT) = MIN(ZZ_O_LMO(D%NIJB:D%NIJE,1:D%NKT), 10.)
+!$mnh_end_expand_array(JIJ=D%NIJB:D%NIJE,JK=1:D%NKT)
 !
 !
 ! MO function for stress
@@ -169,42 +169,42 @@ SELECT CASE (HTURBLEN)
   CASE ('DELT','DEAR')
     CALL MXF_PHY(D,PDXX,ZWORK1)
     CALL MYF_PHY(D,PDYY,ZWORK2)
-    !$mnh_expand_array(JIJ=1:D%NIJT,JK=1:D%NKT)
-    ZDH(1:D%NIJT,1:D%NKT) = SQRT(ZWORK1(1:D%NIJT,1:D%NKT)*ZWORK2(1:D%NIJT,1:D%NKT))
-    !$mnh_end_expand_array(JIJ=1:D%NIJT,JK=1:D%NKT)
+    !$mnh_expand_array(JIJ=D%NIJB:D%NIJE,JK=1:D%NKT)
+    ZDH(D%NIJB:D%NIJE,1:D%NKT) = SQRT(ZWORK1(D%NIJB:D%NIJE,1:D%NKT)*ZWORK2(D%NIJB:D%NIJE,1:D%NKT))
+    !$mnh_end_expand_array(JIJ=D%NIJB:D%NIJE,JK=1:D%NKT)
     ZDH(D%NIT*IJB:D%NIT*IJE:D%NIT,1:D%NKT) = ZDH(D%NIT*IJB-1:D%NIT*IJE-1:D%NIT,1:D%NKT)
     ZDH(D%NIJT-IIE+IIB:D%NIJT,1:D%NKT) = ZDH(D%NIJT-2*IIE+IIB:D%NIJT-IIE,1:D%NKT)
     DO JK=1,D%NKT
-      !$mnh_expand_array(JIJ=1:D%NIJT)
-      ZZC(1:D%NIJT,JK) = 2.*MIN(ZPHIM(1:D%NIJT,JK),1.)/CST%XKARMAN    &
-                     * MAX( PDZZ(1:D%NIJT,JK)*PDIRCOSZW(1:D%NIJT) , & 
-                     ZDH(1:D%NIJT,JK)/PDIRCOSZW(1:D%NIJT)/3. )
-      !$mnh_end_expand_array(JIJ=1:D%NIJT)
+      !$mnh_expand_array(JIJ=D%NIJB:D%NIJE)
+      ZZC(D%NIJB:D%NIJE,JK) = 2.*MIN(ZPHIM(D%NIJB:D%NIJE,JK),1.)/CST%XKARMAN    &
+                     * MAX( PDZZ(D%NIJB:D%NIJE,JK)*PDIRCOSZW(D%NIJB:D%NIJE) , & 
+                     ZDH(D%NIJB:D%NIJE,JK)/PDIRCOSZW(D%NIJB:D%NIJE)/3. )
+      !$mnh_end_expand_array(JIJ=D%NIJB:D%NIJE)
     END DO
 !
 !*     4. factor controling the transition between SBL and free isotropic turb. (3D case)
 !         --------------------------------------------------------------------
 !
-    ZGAM(1:D%NIJT,D%NKA) = 0.
+    ZGAM(D%NIJB:D%NIJE,D%NKA) = 0.
     DO JK=IKTB,IKTE
-      !$mnh_expand_array(JIJ=1:D%NIJT)
-      ZGAM(1:D%NIJT,JK) = 1.  - EXP( -3.*(ZZZ(1:D%NIJT,JK)-ZZZ(1:D%NIJT,IKB))/(ZZC(1:D%NIJT,JK)) )
-      !$mnh_end_expand_array(JIJ=1:D%NIJT)
-      !$mnh_expand_where(JIJ=1:D%NIJT)
-      WHERE (ZGAM(1:D%NIJT,JK-D%NKL)>ZGAM(1:D%NIJT,JK) .OR. ZGAM(1:D%NIJT,JK-D%NKL)>0.99 ) 
-        ZGAM(1:D%NIJT,JK) = 1.
+      !$mnh_expand_array(JIJ=D%NIJB:D%NIJE)
+      ZGAM(D%NIJB:D%NIJE,JK) = 1.  - EXP( -3.*(ZZZ(D%NIJB:D%NIJE,JK)-ZZZ(D%NIJB:D%NIJE,IKB))/(ZZC(D%NIJB:D%NIJE,JK)) )
+      !$mnh_end_expand_array(JIJ=D%NIJB:D%NIJE)
+      !$mnh_expand_where(JIJ=D%NIJB:D%NIJE)
+      WHERE (ZGAM(D%NIJB:D%NIJE,JK-D%NKL)>ZGAM(D%NIJB:D%NIJE,JK) .OR. ZGAM(D%NIJB:D%NIJE,JK-D%NKL)>0.99 ) 
+        ZGAM(D%NIJB:D%NIJE,JK) = 1.
       END WHERE
-     !$mnh_end_expand_where(JIJ=1:D%NIJT)
+     !$mnh_end_expand_where(JIJ=D%NIJB:D%NIJE)
     END DO
-    !$mnh_expand_array(JIJ=1:D%NIJT)
-    ZGAM(1:D%NIJT,D%NKU) = 1.  - EXP( -3.*(ZZZ(1:D%NIJT,D%NKU)-ZZZ(1:D%NIJT,IKB))& 
-                                   /(ZZC(1:D%NIJT,D%NKU)) )
-    !$mnh_end_expand_array(JIJ=1:D%NIJT)
-    !$mnh_expand_where(JIJ=1:D%NIJT)
-    WHERE (ZGAM(1:D%NIJT,D%NKU-D%NKL)>ZGAM(1:D%NIJT,D%NKU) .OR. ZGAM(1:D%NIJT,D%NKU-D%NKL)>0.99 ) 
-      ZGAM(1:D%NIJT,D%NKU) = 1.
+    !$mnh_expand_array(JIJ=D%NIJB:D%NIJE)
+    ZGAM(D%NIJB:D%NIJE,D%NKU) = 1.  - EXP( -3.*(ZZZ(D%NIJB:D%NIJE,D%NKU)-ZZZ(D%NIJB:D%NIJE,IKB))& 
+                                   /(ZZC(D%NIJB:D%NIJE,D%NKU)) )
+    !$mnh_end_expand_array(JIJ=D%NIJB:D%NIJE)
+    !$mnh_expand_where(JIJ=D%NIJB:D%NIJE)
+    WHERE (ZGAM(D%NIJB:D%NIJE,D%NKU-D%NKL)>ZGAM(D%NIJB:D%NIJE,D%NKU) .OR. ZGAM(D%NIJB:D%NIJE,D%NKU-D%NKL)>0.99 ) 
+      ZGAM(D%NIJB:D%NIJE,D%NKU) = 1.
     END WHERE
-    !$mnh_end_expand_where(JIJ=1:D%NIJT)
+    !$mnh_end_expand_where(JIJ=D%NIJB:D%NIJE)
 !   
 !
 !-------------------------------------------------------------------------------
@@ -214,30 +214,30 @@ SELECT CASE (HTURBLEN)
 !
   CASE DEFAULT
 !* SBL depth is used
-    ZGAM(1:D%NIJT,1:D%NKT) = 1.
-    ZGAM(1:D%NIJT,D%NKA) = 0.
+    ZGAM(D%NIJB:D%NIJE,1:D%NKT) = 1.
+    ZGAM(D%NIJB:D%NIJE,D%NKA) = 0.
     DO JK=IKTB,IKTE
-      !$mnh_expand_where(JIJ=1:D%NIJT)
-      WHERE(PSBL_DEPTH(1:D%NIJT)>0.)
-        ZGAM(1:D%NIJT,JK) = TANH( (ZZZ(1:D%NIJT,JK)-ZZZ(1:D%NIJT,IKB))/PSBL_DEPTH(1:D%NIJT) )
+      !$mnh_expand_where(JIJ=D%NIJB:D%NIJE)
+      WHERE(PSBL_DEPTH(D%NIJB:D%NIJE)>0.)
+        ZGAM(D%NIJB:D%NIJE,JK) = TANH( (ZZZ(D%NIJB:D%NIJE,JK)-ZZZ(D%NIJB:D%NIJE,IKB))/PSBL_DEPTH(D%NIJB:D%NIJE) )
       END WHERE
-      !$mnh_end_expand_where(JIJ=1:D%NIJT)
-      !$mnh_expand_where(JIJ=1:D%NIJT)
-      WHERE (ZGAM(1:D%NIJT,JK-D%NKL)>0.99 ) 
-        ZGAM(1:D%NIJT,JK) = 1.
+      !$mnh_end_expand_where(JIJ=D%NIJB:D%NIJE)
+      !$mnh_expand_where(JIJ=D%NIJB:D%NIJE)
+      WHERE (ZGAM(D%NIJB:D%NIJE,JK-D%NKL)>0.99 ) 
+        ZGAM(D%NIJB:D%NIJE,JK) = 1.
       END WHERE
-      !$mnh_end_expand_where(JIJ=1:D%NIJT)
+      !$mnh_end_expand_where(JIJ=D%NIJB:D%NIJE)
     END DO
-    !$mnh_expand_where(JIJ=1:D%NIJT)
-    WHERE(PSBL_DEPTH(1:D%NIJT)>0.)
-      ZGAM(1:D%NIJT,D%NKU) = TANH( (ZZZ(1:D%NIJT,D%NKU)-ZZZ(1:D%NIJT,IKB))/PSBL_DEPTH(1:D%NIJT) )
+    !$mnh_expand_where(JIJ=D%NIJB:D%NIJE)
+    WHERE(PSBL_DEPTH(D%NIJB:D%NIJE)>0.)
+      ZGAM(D%NIJB:D%NIJE,D%NKU) = TANH( (ZZZ(D%NIJB:D%NIJE,D%NKU)-ZZZ(D%NIJB:D%NIJE,IKB))/PSBL_DEPTH(D%NIJB:D%NIJE) )
     END WHERE
-   !$mnh_end_expand_where(JIJ=1:D%NIJT)
-   !$mnh_expand_where(JIJ=1:D%NIJT)
-    WHERE (ZGAM(1:D%NIJT,D%NKU-D%NKL)>0.99 ) 
-      ZGAM(1:D%NIJT,JK) = 1.
+   !$mnh_end_expand_where(JIJ=D%NIJB:D%NIJE)
+   !$mnh_expand_where(JIJ=D%NIJB:D%NIJE)
+    WHERE (ZGAM(D%NIJB:D%NIJE,D%NKU-D%NKL)>0.99 ) 
+      ZGAM(D%NIJB:D%NIJE,JK) = 1.
     END WHERE
-    !$mnh_end_expand_where(JIJ=1:D%NIJT)
+    !$mnh_end_expand_where(JIJ=D%NIJB:D%NIJE)
 !
 !-------------------------------------------------------------------------------
 END SELECT
@@ -247,44 +247,44 @@ END SELECT
 !         ---------------------------------
 !
 DO JK=1,D%NKT
-!$mnh_expand_array(JIJ=1:D%NIJT)
-  ZL(1:D%NIJT,JK) =  CST%XKARMAN/SQRT(CSTURB%XALPSBL)/CSTURB%XCMFS                                      &
-              * ZZZ(1:D%NIJT,JK)*PDIRCOSZW(1:D%NIJT)/(ZPHIM(1:D%NIJT,JK)**2*SQRT(ZPHIE(1:D%NIJT,JK)))
-!$mnh_end_expand_array(JIJ=1:D%NIJT)
+!$mnh_expand_array(JIJ=D%NIJB:D%NIJE)
+  ZL(D%NIJB:D%NIJE,JK) =  CST%XKARMAN/SQRT(CSTURB%XALPSBL)/CSTURB%XCMFS                                      &
+              * ZZZ(D%NIJB:D%NIJE,JK)*PDIRCOSZW(D%NIJB:D%NIJE)/(ZPHIM(D%NIJB:D%NIJE,JK)**2*SQRT(ZPHIE(D%NIJB:D%NIJE,JK)))
+!$mnh_end_expand_array(JIJ=D%NIJB:D%NIJE)
 END DO
 !
-!$mnh_expand_array(JIJ=1:D%NIJT,JK=1:D%NKT)
-PLK(1:D%NIJT,1:D%NKT)=(1.-ZGAM(1:D%NIJT,1:D%NKT))*ZL(1:D%NIJT,1:D%NKT) &
-                             +ZGAM(1:D%NIJT,1:D%NKT)*PLK(1:D%NIJT,1:D%NKT)
-!$mnh_end_expand_array(JIJ=1:D%NIJT,JK=1:D%NKT)
+!$mnh_expand_array(JIJ=D%NIJB:D%NIJE,JK=1:D%NKT)
+PLK(D%NIJB:D%NIJE,1:D%NKT)=(1.-ZGAM(D%NIJB:D%NIJE,1:D%NKT))*ZL(D%NIJB:D%NIJE,1:D%NKT) &
+                             +ZGAM(D%NIJB:D%NIJE,1:D%NKT)*PLK(D%NIJB:D%NIJE,1:D%NKT)
+!$mnh_end_expand_array(JIJ=D%NIJB:D%NIJE,JK=1:D%NKT)
 !
-PLK(1:D%NIJT,D%NKA) = PLK(1:D%NIJT,IKB)
-PLK(1:D%NIJT,D%NKU) = PLK(1:D%NIJT,IKE)
+PLK(D%NIJB:D%NIJE,D%NKA) = PLK(D%NIJB:D%NIJE,IKB)
+PLK(D%NIJB:D%NIJE,D%NKU) = PLK(D%NIJB:D%NIJE,IKE)
 !-------------------------------------------------------------------------------
 !
 !*     7. Modification of the dissipative length
 !         --------------------------------------
 !
-!$mnh_expand_array(JIJ=1:D%NIJT,JK=1:D%NKT)
-ZL(1:D%NIJT,1:D%NKT) = ZL(1:D%NIJT,1:D%NKT) * (CSTURB%XALPSBL**(3./2.)*CST%XKARMAN*CSTURB%XCED) &
+!$mnh_expand_array(JIJ=D%NIJB:D%NIJE,JK=1:D%NKT)
+ZL(D%NIJB:D%NIJE,1:D%NKT) = ZL(D%NIJB:D%NIJE,1:D%NKT) * (CSTURB%XALPSBL**(3./2.)*CST%XKARMAN*CSTURB%XCED) &
         / (CST%XKARMAN/SQRT(CSTURB%XALPSBL)/CSTURB%XCMFS)
-!$mnh_end_expand_array(JIJ=1:D%NIJT,JK=1:D%NKT)
+!$mnh_end_expand_array(JIJ=D%NIJB:D%NIJE,JK=1:D%NKT)
 !
-!$mnh_expand_where(JIJ=1:D%NIJT,JK=1:D%NKT)
-WHERE (ZZ_O_LMO(1:D%NIJT,1:D%NKT)<0.)
-  ZL(1:D%NIJT,1:D%NKT) = ZL(1:D%NIJT,1:D%NKT)/(1.-1.9*ZZ_O_LMO(1:D%NIJT,1:D%NKT))
+!$mnh_expand_where(JIJ=D%NIJB:D%NIJE,JK=1:D%NKT)
+WHERE (ZZ_O_LMO(D%NIJB:D%NIJE,1:D%NKT)<0.)
+  ZL(D%NIJB:D%NIJE,1:D%NKT) = ZL(D%NIJB:D%NIJE,1:D%NKT)/(1.-1.9*ZZ_O_LMO(D%NIJB:D%NIJE,1:D%NKT))
 ELSEWHERE
-  ZL(1:D%NIJT,1:D%NKT) = ZL(1:D%NIJT,1:D%NKT)/(1.-0.3*SQRT(ZZ_O_LMO(1:D%NIJT,1:D%NKT)))
+  ZL(D%NIJB:D%NIJE,1:D%NKT) = ZL(D%NIJB:D%NIJE,1:D%NKT)/(1.-0.3*SQRT(ZZ_O_LMO(D%NIJB:D%NIJE,1:D%NKT)))
 END WHERE
-!$mnh_end_expand_where(JIJ=1:D%NIJT,JK=1:D%NKT)
+!$mnh_end_expand_where(JIJ=D%NIJB:D%NIJE,JK=1:D%NKT)
 !
-!$mnh_expand_array(JIJ=1:D%NIJT,JK=1:D%NKT)
-PLEPS(1:D%NIJT,1:D%NKT)=(1.-ZGAM(1:D%NIJT,1:D%NKT))*ZL(1:D%NIJT,1:D%NKT) &
-                               +ZGAM(1:D%NIJT,1:D%NKT)*PLEPS(1:D%NIJT,1:D%NKT)
-!$mnh_end_expand_array(JIJ=1:D%NIJT,JK=1:D%NKT)
+!$mnh_expand_array(JIJ=D%NIJB:D%NIJE,JK=1:D%NKT)
+PLEPS(D%NIJB:D%NIJE,1:D%NKT)=(1.-ZGAM(D%NIJB:D%NIJE,1:D%NKT))*ZL(D%NIJB:D%NIJE,1:D%NKT) &
+                               +ZGAM(D%NIJB:D%NIJE,1:D%NKT)*PLEPS(D%NIJB:D%NIJE,1:D%NKT)
+!$mnh_end_expand_array(JIJ=D%NIJB:D%NIJE,JK=1:D%NKT)
 !
-PLEPS(1:D%NIJT,D%NKA) = PLEPS(1:D%NIJT,IKB)
-PLEPS(1:D%NIJT,D%NKU) = PLEPS(1:D%NIJT,IKE)
+PLEPS(D%NIJB:D%NIJE,D%NKA) = PLEPS(D%NIJB:D%NIJE,IKB)
+PLEPS(D%NIJB:D%NIJE,D%NKU) = PLEPS(D%NIJB:D%NIJE,IKE)
 !-------------------------------------------------------------------------------
 !
 IF (LHOOK) CALL DR_HOOK('RMC01',1,ZHOOK_HANDLE)
diff --git a/src/common/turb/mode_tridiag.F90 b/src/common/turb/mode_tridiag.F90
index 046a0dcc8..78a23b2cf 100644
--- a/src/common/turb/mode_tridiag.F90
+++ b/src/common/turb/mode_tridiag.F90
@@ -158,27 +158,27 @@ IKTE=D%NKTE
 IKB=D%NKB
 IKE=D%NKE
 !
-!$mnh_expand_array(JIJ=1:D%NIJT)
-ZY(1:D%NIJT,IKB) = PVARM(1:D%NIJT,IKB)  + PTSTEP*PSOURCE(1:D%NIJT,IKB) -   &
-  PEXPL / PRHODJ(1:D%NIJT,IKB) * PA(1:D%NIJT,IKB+D%NKL) * &
-  (PVARM(1:D%NIJT,IKB+D%NKL) - PVARM(1:D%NIJT,IKB))
-!$mnh_end_expand_array(JIJ=1:D%NIJT)
+!$mnh_expand_array(JIJ=D%NIJB:D%NIJE)
+ZY(D%NIJB:D%NIJE,IKB) = PVARM(D%NIJB:D%NIJE,IKB)  + PTSTEP*PSOURCE(D%NIJB:D%NIJE,IKB) -   &
+  PEXPL / PRHODJ(D%NIJB:D%NIJE,IKB) * PA(D%NIJB:D%NIJE,IKB+D%NKL) * &
+  (PVARM(D%NIJB:D%NIJE,IKB+D%NKL) - PVARM(D%NIJB:D%NIJE,IKB))
+!$mnh_end_expand_array(JIJ=D%NIJB:D%NIJE)
 !
 DO JK=IKTB+1,IKTE-1
-  !$mnh_expand_array(JIJ=1:D%NIJT)
-  ZY(1:D%NIJT,JK)= PVARM(1:D%NIJT,JK)  + PTSTEP*PSOURCE(1:D%NIJT,JK) -               &
-      PEXPL / PRHODJ(1:D%NIJT,JK) *                                           &
-                             ( PVARM(1:D%NIJT,JK-D%NKL)*PA(1:D%NIJT,JK)                &
-                              -PVARM(1:D%NIJT,JK)*(PA(1:D%NIJT,JK)+PA(1:D%NIJT,JK+D%NKL))   &
-                              +PVARM(1:D%NIJT,JK+D%NKL)*PA(1:D%NIJT,JK+D%NKL)              &
+  !$mnh_expand_array(JIJ=D%NIJB:D%NIJE)
+  ZY(D%NIJB:D%NIJE,JK)= PVARM(D%NIJB:D%NIJE,JK)  + PTSTEP*PSOURCE(D%NIJB:D%NIJE,JK) -               &
+      PEXPL / PRHODJ(D%NIJB:D%NIJE,JK) *                                           &
+                             ( PVARM(D%NIJB:D%NIJE,JK-D%NKL)*PA(D%NIJB:D%NIJE,JK)                &
+                              -PVARM(D%NIJB:D%NIJE,JK)*(PA(D%NIJB:D%NIJE,JK)+PA(D%NIJB:D%NIJE,JK+D%NKL))   &
+                              +PVARM(D%NIJB:D%NIJE,JK+D%NKL)*PA(D%NIJB:D%NIJE,JK+D%NKL)              &
                              ) 
-  !$mnh_end_expand_array(JIJ=1:D%NIJT)
+  !$mnh_end_expand_array(JIJ=D%NIJB:D%NIJE)
 END DO
 ! 
-!$mnh_expand_array(JIJ=1:D%NIJT)
-ZY(1:D%NIJT,IKE)= PVARM(1:D%NIJT,IKE) + PTSTEP*PSOURCE(1:D%NIJT,IKE) +               &
-  PEXPL / PRHODJ(1:D%NIJT,IKE) * PA(1:D%NIJT,IKE) * (PVARM(1:D%NIJT,IKE)-PVARM(1:D%NIJT,IKE-D%NKL))
-!$mnh_end_expand_array(JIJ=1:D%NIJT)
+!$mnh_expand_array(JIJ=D%NIJB:D%NIJE)
+ZY(D%NIJB:D%NIJE,IKE)= PVARM(D%NIJB:D%NIJE,IKE) + PTSTEP*PSOURCE(D%NIJB:D%NIJE,IKE) +               &
+  PEXPL / PRHODJ(D%NIJB:D%NIJE,IKE) * PA(D%NIJB:D%NIJE,IKE) * (PVARM(D%NIJB:D%NIJE,IKE)-PVARM(D%NIJB:D%NIJE,IKE-D%NKL))
+!$mnh_end_expand_array(JIJ=D%NIJB:D%NIJE)
 !
 !
 !*       2.  INVERSION OF THE TRIDIAGONAL SYSTEM
@@ -189,52 +189,52 @@ IF ( PIMPL > 1.E-10 ) THEN
   !
   !  going up
   !
-  !$mnh_expand_array(JIJ=1:D%NIJT)
-  ZBET(1:D%NIJT) = 1. - PIMPL * PA(1:D%NIJT,IKB+D%NKL) / PRHODJ(1:D%NIJT,IKB)  ! bet = b(ikb)
-  PVARP(1:D%NIJT,IKB) = ZY(1:D%NIJT,IKB) / ZBET(1:D%NIJT)
-  !$mnh_end_expand_array(JIJ=1:D%NIJT)               
+  !$mnh_expand_array(JIJ=D%NIJB:D%NIJE)
+  ZBET(D%NIJB:D%NIJE) = 1. - PIMPL * PA(D%NIJB:D%NIJE,IKB+D%NKL) / PRHODJ(D%NIJB:D%NIJE,IKB)  ! bet = b(ikb)
+  PVARP(D%NIJB:D%NIJE,IKB) = ZY(D%NIJB:D%NIJE,IKB) / ZBET(D%NIJB:D%NIJE)
+  !$mnh_end_expand_array(JIJ=D%NIJB:D%NIJE)               
   !
   DO JK = IKB+D%NKL,IKE-D%NKL,D%NKL
-    !$mnh_expand_array(JIJ=1:D%NIJT)
-    ZGAM(1:D%NIJT,JK) = PIMPL * PA(1:D%NIJT,JK) / PRHODJ(1:D%NIJT,JK-D%NKL) / ZBET(1:D%NIJT)  
+    !$mnh_expand_array(JIJ=D%NIJB:D%NIJE)
+    ZGAM(D%NIJB:D%NIJE,JK) = PIMPL * PA(D%NIJB:D%NIJE,JK) / PRHODJ(D%NIJB:D%NIJE,JK-D%NKL) / ZBET(D%NIJB:D%NIJE)  
                                                     ! gam(k) = c(k-1) / bet
-    ZBET(1:D%NIJT)    = 1. - PIMPL * (  PA(1:D%NIJT,JK) * (1. + ZGAM(1:D%NIJT,JK))  &
-                                 + PA(1:D%NIJT,JK+D%NKL)                      &
-                                ) / PRHODJ(1:D%NIJT,JK)  
+    ZBET(D%NIJB:D%NIJE)    = 1. - PIMPL * (  PA(D%NIJB:D%NIJE,JK) * (1. + ZGAM(D%NIJB:D%NIJE,JK))  &
+                                 + PA(D%NIJB:D%NIJE,JK+D%NKL)                      &
+                                ) / PRHODJ(D%NIJB:D%NIJE,JK)  
                                                     ! bet = b(k) - a(k)* gam(k)  
-    PVARP(1:D%NIJT,JK)= ( ZY(1:D%NIJT,JK) - PIMPL * PA(1:D%NIJT,JK) / PRHODJ(1:D%NIJT,JK) &
-                    * PVARP(1:D%NIJT,JK-D%NKL)                                 &
-                   ) / ZBET(1:D%NIJT)
+    PVARP(D%NIJB:D%NIJE,JK)= ( ZY(D%NIJB:D%NIJE,JK) - PIMPL * PA(D%NIJB:D%NIJE,JK) / PRHODJ(D%NIJB:D%NIJE,JK) &
+                    * PVARP(D%NIJB:D%NIJE,JK-D%NKL)                                 &
+                   ) / ZBET(D%NIJB:D%NIJE)
                                         ! res(k) = (y(k) -a(k)*res(k-1))/ bet 
-    !$mnh_end_expand_array(JIJ=1:D%NIJT)
+    !$mnh_end_expand_array(JIJ=D%NIJB:D%NIJE)
   END DO
-  !$mnh_expand_array(JIJ=1:D%NIJT)
+  !$mnh_expand_array(JIJ=D%NIJB:D%NIJE)
   ! special treatment for the last level
-  ZGAM(1:D%NIJT,IKE) = PIMPL * PA(1:D%NIJT,IKE) / PRHODJ(1:D%NIJT,IKE-D%NKL) / ZBET(1:D%NIJT) 
+  ZGAM(D%NIJB:D%NIJE,IKE) = PIMPL * PA(D%NIJB:D%NIJE,IKE) / PRHODJ(D%NIJB:D%NIJE,IKE-D%NKL) / ZBET(D%NIJB:D%NIJE) 
                                                     ! gam(k) = c(k-1) / bet
-  ZBET(1:D%NIJT)    = 1. - PIMPL * (  PA(1:D%NIJT,IKE) * (1. + ZGAM(1:D%NIJT,IKE))  &
-                              ) / PRHODJ(1:D%NIJT,IKE)  
+  ZBET(D%NIJB:D%NIJE)    = 1. - PIMPL * (  PA(D%NIJB:D%NIJE,IKE) * (1. + ZGAM(D%NIJB:D%NIJE,IKE))  &
+                              ) / PRHODJ(D%NIJB:D%NIJE,IKE)  
                                                     ! bet = b(k) - a(k)* gam(k)  
-  PVARP(1:D%NIJT,IKE)= ( ZY(1:D%NIJT,IKE) - PIMPL * PA(1:D%NIJT,IKE) / PRHODJ(1:D%NIJT,IKE) &
-                                * PVARP(1:D%NIJT,IKE-D%NKL)                      &
-                 ) / ZBET(1:D%NIJT)
+  PVARP(D%NIJB:D%NIJE,IKE)= ( ZY(D%NIJB:D%NIJE,IKE) - PIMPL * PA(D%NIJB:D%NIJE,IKE) / PRHODJ(D%NIJB:D%NIJE,IKE) &
+                                * PVARP(D%NIJB:D%NIJE,IKE-D%NKL)                      &
+                 ) / ZBET(D%NIJB:D%NIJE)
                                        ! res(k) = (y(k) -a(k)*res(k-1))/ bet 
   !
   !  going down
   !
-  !$mnh_end_expand_array(JIJ=1:D%NIJT)
+  !$mnh_end_expand_array(JIJ=D%NIJB:D%NIJE)
   DO JK = IKE-D%NKL,IKB,-1*D%NKL
-  !$mnh_expand_array(JIJ=1:D%NIJT)
-    PVARP(1:D%NIJT,JK) = PVARP(1:D%NIJT,JK) - ZGAM(1:D%NIJT,JK+D%NKL) * PVARP(1:D%NIJT,JK+D%NKL) 
-  !$mnh_end_expand_array(JIJ=1:D%NIJT)
+  !$mnh_expand_array(JIJ=D%NIJB:D%NIJE)
+    PVARP(D%NIJB:D%NIJE,JK) = PVARP(D%NIJB:D%NIJE,JK) - ZGAM(D%NIJB:D%NIJE,JK+D%NKL) * PVARP(D%NIJB:D%NIJE,JK+D%NKL) 
+  !$mnh_end_expand_array(JIJ=D%NIJB:D%NIJE)
   END DO
 !
 ELSE
 ! 
   DO JK=IKTB,IKTE
-    !$mnh_expand_array(JIJ=1:D%NIJT)
-    PVARP(1:D%NIJT,JK) = ZY(1:D%NIJT,JK)
-    !$mnh_end_expand_array(JIJ=1:D%NIJT)
+    !$mnh_expand_array(JIJ=D%NIJB:D%NIJE)
+    PVARP(D%NIJB:D%NIJE,JK) = ZY(D%NIJB:D%NIJE,JK)
+    !$mnh_end_expand_array(JIJ=D%NIJB:D%NIJE)
   END DO
 !
 END IF 
@@ -243,10 +243,10 @@ END IF
 !*       3.  FILL THE UPPER AND LOWER EXTERNAL VALUES
 !            ----------------------------------------
 !
-!$mnh_expand_array(JIJ=1:D%NIJT)
-PVARP(1:D%NIJT,D%NKA)=PVARP(1:D%NIJT,IKB)
-PVARP(1:D%NIJT,D%NKU)=PVARP(1:D%NIJT,IKE)
-!$mnh_end_expand_array(JIJ=1:D%NIJT)
+!$mnh_expand_array(JIJ=D%NIJB:D%NIJE)
+PVARP(D%NIJB:D%NIJE,D%NKA)=PVARP(D%NIJB:D%NIJE,IKB)
+PVARP(D%NIJB:D%NIJE,D%NKU)=PVARP(D%NIJB:D%NIJE,IKE)
+!$mnh_end_expand_array(JIJ=D%NIJB:D%NIJE)
 !
 !-------------------------------------------------------------------------------
 !
diff --git a/src/common/turb/mode_tridiag_thermo.F90 b/src/common/turb/mode_tridiag_thermo.F90
index 14c21040c..2d10fbc7a 100644
--- a/src/common/turb/mode_tridiag_thermo.F90
+++ b/src/common/turb/mode_tridiag_thermo.F90
@@ -169,10 +169,10 @@ IKB=D%NKB
 IKE=D%NKE
 !
 CALL MZM_PHY(D,PRHODJ,ZMZM_RHODJ)
-!$mnh_expand_array(JIJ=1:D%NIJT,JK=1:D%NKT)
-ZRHODJ_DFDDTDZ_O_DZ2(1:D%NIJT,1:D%NKT) = ZMZM_RHODJ(1:D%NIJT,1:D%NKT)*PDFDDTDZ(1:D%NIJT,1:D%NKT) &
-                                                /PDZZ(1:D%NIJT,1:D%NKT)**2
-!$mnh_end_expand_array(JIJ=1:D%NIJT,JK=1:D%NKT)
+!$mnh_expand_array(JIJ=D%NIJB:D%NIJE,JK=1:D%NKT)
+ZRHODJ_DFDDTDZ_O_DZ2(D%NIJB:D%NIJE,1:D%NKT) = ZMZM_RHODJ(D%NIJB:D%NIJE,1:D%NKT)*PDFDDTDZ(D%NIJB:D%NIJE,1:D%NKT) &
+                                                /PDZZ(D%NIJB:D%NIJE,1:D%NKT)**2
+!$mnh_end_expand_array(JIJ=D%NIJB:D%NIJE,JK=1:D%NKT)
 !
 ZA=0.
 ZB=0.
@@ -183,33 +183,33 @@ ZY=0.
 !*      2.  COMPUTE THE RIGHT HAND SIDE
 !           ---------------------------
 !
-!$mnh_expand_array(JIJ=1:D%NIJT)
-ZY(1:D%NIJT,IKB) = PRHODJ(1:D%NIJT,IKB)*PVARM(1:D%NIJT,IKB)/PTSTEP                  &
-    - ZMZM_RHODJ(1:D%NIJT,IKB+D%NKL) * PF(1:D%NIJT,IKB+D%NKL)/PDZZ(1:D%NIJT,IKB+D%NKL)    &
-    + ZMZM_RHODJ(1:D%NIJT,IKB  ) * PF(1:D%NIJT,IKB  )/PDZZ(1:D%NIJT,IKB  )          &
-    + ZRHODJ_DFDDTDZ_O_DZ2(1:D%NIJT,IKB+D%NKL) * PIMPL * PVARM(1:D%NIJT,IKB+D%NKL) &
-    - ZRHODJ_DFDDTDZ_O_DZ2(1:D%NIJT,IKB+D%NKL) * PIMPL * PVARM(1:D%NIJT,IKB  )
-!$mnh_end_expand_array(JIJ=1:D%NIJT)
+!$mnh_expand_array(JIJ=D%NIJB:D%NIJE)
+ZY(D%NIJB:D%NIJE,IKB) = PRHODJ(D%NIJB:D%NIJE,IKB)*PVARM(D%NIJB:D%NIJE,IKB)/PTSTEP                  &
+    - ZMZM_RHODJ(D%NIJB:D%NIJE,IKB+D%NKL) * PF(D%NIJB:D%NIJE,IKB+D%NKL)/PDZZ(D%NIJB:D%NIJE,IKB+D%NKL)    &
+    + ZMZM_RHODJ(D%NIJB:D%NIJE,IKB  ) * PF(D%NIJB:D%NIJE,IKB  )/PDZZ(D%NIJB:D%NIJE,IKB  )          &
+    + ZRHODJ_DFDDTDZ_O_DZ2(D%NIJB:D%NIJE,IKB+D%NKL) * PIMPL * PVARM(D%NIJB:D%NIJE,IKB+D%NKL) &
+    - ZRHODJ_DFDDTDZ_O_DZ2(D%NIJB:D%NIJE,IKB+D%NKL) * PIMPL * PVARM(D%NIJB:D%NIJE,IKB  )
+!$mnh_end_expand_array(JIJ=D%NIJB:D%NIJE)
 !
 DO JK=IKTB+1,IKTE-1
-  !$mnh_expand_array(JIJ=1:D%NIJT)
-  ZY(1:D%NIJT,JK) = PRHODJ(1:D%NIJT,JK)*PVARM(1:D%NIJT,JK)/PTSTEP                 &
-    - ZMZM_RHODJ(1:D%NIJT,JK+D%NKL) * PF(1:D%NIJT,JK+D%NKL)/PDZZ(1:D%NIJT,JK+D%NKL)     &
-    + ZMZM_RHODJ(1:D%NIJT,JK  ) * PF(1:D%NIJT,JK  )/PDZZ(1:D%NIJT,JK  )           &
-    + ZRHODJ_DFDDTDZ_O_DZ2(1:D%NIJT,JK+D%NKL) * PIMPL * PVARM(1:D%NIJT,JK+D%NKL) &
-    - ZRHODJ_DFDDTDZ_O_DZ2(1:D%NIJT,JK+D%NKL) * PIMPL * PVARM(1:D%NIJT,JK  )   &
-    - ZRHODJ_DFDDTDZ_O_DZ2(1:D%NIJT,JK    ) * PIMPL * PVARM(1:D%NIJT,JK  )   &
-    + ZRHODJ_DFDDTDZ_O_DZ2(1:D%NIJT,JK    ) * PIMPL * PVARM(1:D%NIJT,JK-D%NKL)
-  !$mnh_end_expand_array(JIJ=1:D%NIJT)
+  !$mnh_expand_array(JIJ=D%NIJB:D%NIJE)
+  ZY(D%NIJB:D%NIJE,JK) = PRHODJ(D%NIJB:D%NIJE,JK)*PVARM(D%NIJB:D%NIJE,JK)/PTSTEP                 &
+    - ZMZM_RHODJ(D%NIJB:D%NIJE,JK+D%NKL) * PF(D%NIJB:D%NIJE,JK+D%NKL)/PDZZ(D%NIJB:D%NIJE,JK+D%NKL)     &
+    + ZMZM_RHODJ(D%NIJB:D%NIJE,JK  ) * PF(D%NIJB:D%NIJE,JK  )/PDZZ(D%NIJB:D%NIJE,JK  )           &
+    + ZRHODJ_DFDDTDZ_O_DZ2(D%NIJB:D%NIJE,JK+D%NKL) * PIMPL * PVARM(D%NIJB:D%NIJE,JK+D%NKL) &
+    - ZRHODJ_DFDDTDZ_O_DZ2(D%NIJB:D%NIJE,JK+D%NKL) * PIMPL * PVARM(D%NIJB:D%NIJE,JK  )   &
+    - ZRHODJ_DFDDTDZ_O_DZ2(D%NIJB:D%NIJE,JK    ) * PIMPL * PVARM(D%NIJB:D%NIJE,JK  )   &
+    + ZRHODJ_DFDDTDZ_O_DZ2(D%NIJB:D%NIJE,JK    ) * PIMPL * PVARM(D%NIJB:D%NIJE,JK-D%NKL)
+  !$mnh_end_expand_array(JIJ=D%NIJB:D%NIJE)
 END DO
 ! 
-!$mnh_expand_array(JIJ=1:D%NIJT)
-ZY(1:D%NIJT,IKE) = PRHODJ(1:D%NIJT,IKE)*PVARM(1:D%NIJT,IKE)/PTSTEP               &
-    - ZMZM_RHODJ(1:D%NIJT,IKE+D%NKL) * PF(1:D%NIJT,IKE+D%NKL)/PDZZ(1:D%NIJT,IKE+D%NKL) &
-    + ZMZM_RHODJ(1:D%NIJT,IKE  ) * PF(1:D%NIJT,IKE  )/PDZZ(1:D%NIJT,IKE  )       &
-    - ZRHODJ_DFDDTDZ_O_DZ2(1:D%NIJT,IKE ) * PIMPL * PVARM(1:D%NIJT,IKE  )   &
-    + ZRHODJ_DFDDTDZ_O_DZ2(1:D%NIJT,IKE ) * PIMPL * PVARM(1:D%NIJT,IKE-D%NKL)
-!$mnh_end_expand_array(JIJ=1:D%NIJT)
+!$mnh_expand_array(JIJ=D%NIJB:D%NIJE)
+ZY(D%NIJB:D%NIJE,IKE) = PRHODJ(D%NIJB:D%NIJE,IKE)*PVARM(D%NIJB:D%NIJE,IKE)/PTSTEP               &
+    - ZMZM_RHODJ(D%NIJB:D%NIJE,IKE+D%NKL) * PF(D%NIJB:D%NIJE,IKE+D%NKL)/PDZZ(D%NIJB:D%NIJE,IKE+D%NKL) &
+    + ZMZM_RHODJ(D%NIJB:D%NIJE,IKE  ) * PF(D%NIJB:D%NIJE,IKE  )/PDZZ(D%NIJB:D%NIJE,IKE  )       &
+    - ZRHODJ_DFDDTDZ_O_DZ2(D%NIJB:D%NIJE,IKE ) * PIMPL * PVARM(D%NIJB:D%NIJE,IKE  )   &
+    + ZRHODJ_DFDDTDZ_O_DZ2(D%NIJB:D%NIJE,IKE ) * PIMPL * PVARM(D%NIJB:D%NIJE,IKE-D%NKL)
+!$mnh_end_expand_array(JIJ=D%NIJB:D%NIJE)
 !
 !
 !*       3.  INVERSION OF THE TRIDIAGONAL SYSTEM
@@ -220,72 +220,72 @@ IF ( PIMPL > 1.E-10 ) THEN
 !*       3.1 arrays A, B, C
 !            --------------
 !
-  !$mnh_expand_array(JIJ=1:D%NIJT)
-  ZB(1:D%NIJT,IKB) =   PRHODJ(1:D%NIJT,IKB)/PTSTEP                   &
-                - ZRHODJ_DFDDTDZ_O_DZ2(1:D%NIJT,IKB+D%NKL) * PIMPL
-  ZC(1:D%NIJT,IKB) =   ZRHODJ_DFDDTDZ_O_DZ2(1:D%NIJT,IKB+D%NKL) * PIMPL
-  !$mnh_end_expand_array(JIJ=1:D%NIJT)
+  !$mnh_expand_array(JIJ=D%NIJB:D%NIJE)
+  ZB(D%NIJB:D%NIJE,IKB) =   PRHODJ(D%NIJB:D%NIJE,IKB)/PTSTEP                   &
+                - ZRHODJ_DFDDTDZ_O_DZ2(D%NIJB:D%NIJE,IKB+D%NKL) * PIMPL
+  ZC(D%NIJB:D%NIJE,IKB) =   ZRHODJ_DFDDTDZ_O_DZ2(D%NIJB:D%NIJE,IKB+D%NKL) * PIMPL
+  !$mnh_end_expand_array(JIJ=D%NIJB:D%NIJE)
 !
   DO JK=IKTB+1,IKTE-1
-    !$mnh_expand_array(JIJ=1:D%NIJT)
-    ZA(1:D%NIJT,JK) =   ZRHODJ_DFDDTDZ_O_DZ2(1:D%NIJT,JK) * PIMPL
-    ZB(1:D%NIJT,JK) =   PRHODJ(1:D%NIJT,JK)/PTSTEP                        &
-                            - ZRHODJ_DFDDTDZ_O_DZ2(1:D%NIJT,JK+D%NKL) * PIMPL &
-                            - ZRHODJ_DFDDTDZ_O_DZ2(1:D%NIJT,JK) * PIMPL
-    ZC(1:D%NIJT,JK) =   ZRHODJ_DFDDTDZ_O_DZ2(1:D%NIJT,JK+D%NKL) * PIMPL
-    !$mnh_end_expand_array(JIJ=1:D%NIJT)
+    !$mnh_expand_array(JIJ=D%NIJB:D%NIJE)
+    ZA(D%NIJB:D%NIJE,JK) =   ZRHODJ_DFDDTDZ_O_DZ2(D%NIJB:D%NIJE,JK) * PIMPL
+    ZB(D%NIJB:D%NIJE,JK) =   PRHODJ(D%NIJB:D%NIJE,JK)/PTSTEP                        &
+                            - ZRHODJ_DFDDTDZ_O_DZ2(D%NIJB:D%NIJE,JK+D%NKL) * PIMPL &
+                            - ZRHODJ_DFDDTDZ_O_DZ2(D%NIJB:D%NIJE,JK) * PIMPL
+    ZC(D%NIJB:D%NIJE,JK) =   ZRHODJ_DFDDTDZ_O_DZ2(D%NIJB:D%NIJE,JK+D%NKL) * PIMPL
+    !$mnh_end_expand_array(JIJ=D%NIJB:D%NIJE)
   END DO
 !
-  !$mnh_expand_array(JIJ=1:D%NIJT)
-  ZA(1:D%NIJT,IKE) =   ZRHODJ_DFDDTDZ_O_DZ2(1:D%NIJT,IKE  ) * PIMPL
-  ZB(1:D%NIJT,IKE) =   PRHODJ(1:D%NIJT,IKE)/PTSTEP                   &
-                - ZRHODJ_DFDDTDZ_O_DZ2(1:D%NIJT,IKE  ) * PIMPL
+  !$mnh_expand_array(JIJ=D%NIJB:D%NIJE)
+  ZA(D%NIJB:D%NIJE,IKE) =   ZRHODJ_DFDDTDZ_O_DZ2(D%NIJB:D%NIJE,IKE  ) * PIMPL
+  ZB(D%NIJB:D%NIJE,IKE) =   PRHODJ(D%NIJB:D%NIJE,IKE)/PTSTEP                   &
+                - ZRHODJ_DFDDTDZ_O_DZ2(D%NIJB:D%NIJE,IKE  ) * PIMPL
 !
 !*       3.2 going up
 !            --------
 !
-  ZBET(1:D%NIJT) = ZB(1:D%NIJT,IKB)  ! bet = b(ikb)
-  PVARP(1:D%NIJT,IKB) = ZY(1:D%NIJT,IKB) / ZBET(1:D%NIJT)
-  !$mnh_end_expand_array(JIJ=1:D%NIJT)
+  ZBET(D%NIJB:D%NIJE) = ZB(D%NIJB:D%NIJE,IKB)  ! bet = b(ikb)
+  PVARP(D%NIJB:D%NIJE,IKB) = ZY(D%NIJB:D%NIJE,IKB) / ZBET(D%NIJB:D%NIJE)
+  !$mnh_end_expand_array(JIJ=D%NIJB:D%NIJE)
 
   !
   DO JK = IKB+D%NKL,IKE-D%NKL,D%NKL
-    !$mnh_expand_array(JIJ=1:D%NIJT)
-    ZGAM(1:D%NIJT,JK) = ZC(1:D%NIJT,JK-D%NKL) / ZBET(1:D%NIJT)  
+    !$mnh_expand_array(JIJ=D%NIJB:D%NIJE)
+    ZGAM(D%NIJB:D%NIJE,JK) = ZC(D%NIJB:D%NIJE,JK-D%NKL) / ZBET(D%NIJB:D%NIJE)  
                                                     ! gam(k) = c(k-1) / bet
-    ZBET(1:D%NIJT)    = ZB(1:D%NIJT,JK) - ZA(1:D%NIJT,JK) * ZGAM(1:D%NIJT,JK)
+    ZBET(D%NIJB:D%NIJE)    = ZB(D%NIJB:D%NIJE,JK) - ZA(D%NIJB:D%NIJE,JK) * ZGAM(D%NIJB:D%NIJE,JK)
                                                     ! bet = b(k) - a(k)* gam(k)  
-    PVARP(1:D%NIJT,JK)= ( ZY(1:D%NIJT,JK) - ZA(1:D%NIJT,JK) * PVARP(1:D%NIJT,JK-D%NKL) ) &
-                               / ZBET(1:D%NIJT)
+    PVARP(D%NIJB:D%NIJE,JK)= ( ZY(D%NIJB:D%NIJE,JK) - ZA(D%NIJB:D%NIJE,JK) * PVARP(D%NIJB:D%NIJE,JK-D%NKL) ) &
+                               / ZBET(D%NIJB:D%NIJE)
                                         ! res(k) = (y(k) -a(k)*res(k-1))/ bet 
-    !$mnh_end_expand_array(JIJ=1:D%NIJT)
+    !$mnh_end_expand_array(JIJ=D%NIJB:D%NIJE)
   END DO 
   ! special treatment for the last level
-  !$mnh_expand_array(JIJ=1:D%NIJT)
-  ZGAM(1:D%NIJT,IKE) = ZC(1:D%NIJT,IKE-D%NKL) / ZBET(1:D%NIJT) 
+  !$mnh_expand_array(JIJ=D%NIJB:D%NIJE)
+  ZGAM(D%NIJB:D%NIJE,IKE) = ZC(D%NIJB:D%NIJE,IKE-D%NKL) / ZBET(D%NIJB:D%NIJE) 
                                                     ! gam(k) = c(k-1) / bet
-  ZBET(1:D%NIJT)     = ZB(1:D%NIJT,IKE) - ZA(1:D%NIJT,IKE) * ZGAM(1:D%NIJT,IKE)
+  ZBET(D%NIJB:D%NIJE)     = ZB(D%NIJB:D%NIJE,IKE) - ZA(D%NIJB:D%NIJE,IKE) * ZGAM(D%NIJB:D%NIJE,IKE)
                                                     ! bet = b(k) - a(k)* gam(k)  
-  PVARP(1:D%NIJT,IKE)= ( ZY(1:D%NIJT,IKE) - ZA(1:D%NIJT,IKE) * PVARP(1:D%NIJT,IKE-D%NKL) ) &
-                              / ZBET(1:D%NIJT)
+  PVARP(D%NIJB:D%NIJE,IKE)= ( ZY(D%NIJB:D%NIJE,IKE) - ZA(D%NIJB:D%NIJE,IKE) * PVARP(D%NIJB:D%NIJE,IKE-D%NKL) ) &
+                              / ZBET(D%NIJB:D%NIJE)
                                        ! res(k) = (y(k) -a(k)*res(k-1))/ bet 
-  !$mnh_end_expand_array(JIJ=1:D%NIJT)
+  !$mnh_end_expand_array(JIJ=D%NIJB:D%NIJE)
 !
 !*       3.3 going down
 !            ----------
 !
   DO JK = IKE-D%NKL,IKB,-1*D%NKL
-    !$mnh_expand_array(JIJ=1:D%NIJT)
-    PVARP(1:D%NIJT,JK) = PVARP(1:D%NIJT,JK) - ZGAM(1:D%NIJT,JK+D%NKL) * PVARP(1:D%NIJT,JK+D%NKL)
-    !$mnh_end_expand_array(JIJ=1:D%NIJT)
+    !$mnh_expand_array(JIJ=D%NIJB:D%NIJE)
+    PVARP(D%NIJB:D%NIJE,JK) = PVARP(D%NIJB:D%NIJE,JK) - ZGAM(D%NIJB:D%NIJE,JK+D%NKL) * PVARP(D%NIJB:D%NIJE,JK+D%NKL)
+    !$mnh_end_expand_array(JIJ=D%NIJB:D%NIJE)
   END DO
 !
 ELSE
 ! 
   DO JK=IKTB,IKTE
-    !$mnh_expand_array(JIJ=1:D%NIJT)
-    PVARP(1:D%NIJT,JK) = ZY(1:D%NIJT,JK) * PTSTEP / PRHODJ(1:D%NIJT,JK)
-    !$mnh_end_expand_array(JIJ=1:D%NIJT)
+    !$mnh_expand_array(JIJ=D%NIJB:D%NIJE)
+    PVARP(D%NIJB:D%NIJE,JK) = ZY(D%NIJB:D%NIJE,JK) * PTSTEP / PRHODJ(D%NIJB:D%NIJE,JK)
+    !$mnh_end_expand_array(JIJ=D%NIJB:D%NIJE)
   END DO
 !
 END IF 
@@ -294,10 +294,10 @@ END IF
 !*       4.  FILL THE UPPER AND LOWER EXTERNAL VALUES
 !            ----------------------------------------
 !
-!$mnh_expand_array(JIJ=1:D%NIJT)
-PVARP(1:D%NIJT,D%NKA)=PVARP(1:D%NIJT,IKB)
-PVARP(1:D%NIJT,D%NKU)=PVARP(1:D%NIJT,IKE)
-!$mnh_end_expand_array(JIJ=1:D%NIJT)
+!$mnh_expand_array(JIJ=D%NIJB:D%NIJE)
+PVARP(D%NIJB:D%NIJE,D%NKA)=PVARP(D%NIJB:D%NIJE,IKB)
+PVARP(D%NIJB:D%NIJE,D%NKU)=PVARP(D%NIJB:D%NIJE,IKE)
+!$mnh_end_expand_array(JIJ=D%NIJB:D%NIJE)
 !
 !-------------------------------------------------------------------------------
 !
diff --git a/src/common/turb/mode_tridiag_tke.F90 b/src/common/turb/mode_tridiag_tke.F90
index b1d6d3379..2b3f97af2 100644
--- a/src/common/turb/mode_tridiag_tke.F90
+++ b/src/common/turb/mode_tridiag_tke.F90
@@ -157,27 +157,27 @@ IKTE=D%NKTE
 IKB=D%NKB
 IKE=D%NKE
 !
-!$mnh_expand_array(JIJ=1:D%NIJT)
-ZY(1:D%NIJT,IKB) = PVARM(1:D%NIJT,IKB)  + PTSTEP*PSOURCE(1:D%NIJT,IKB) -   &
-  PEXPL / PRHODJ(1:D%NIJT,IKB) * PA(1:D%NIJT,IKB+D%NKL) *  & 
-  (PVARM(1:D%NIJT,IKB+D%NKL) - PVARM(1:D%NIJT,IKB))
-!$mnh_end_expand_array(JIJ=1:D%NIJT)
+!$mnh_expand_array(JIJ=D%NIJB:D%NIJE)
+ZY(D%NIJB:D%NIJE,IKB) = PVARM(D%NIJB:D%NIJE,IKB)  + PTSTEP*PSOURCE(D%NIJB:D%NIJE,IKB) -   &
+  PEXPL / PRHODJ(D%NIJB:D%NIJE,IKB) * PA(D%NIJB:D%NIJE,IKB+D%NKL) *  & 
+  (PVARM(D%NIJB:D%NIJE,IKB+D%NKL) - PVARM(D%NIJB:D%NIJE,IKB))
+!$mnh_end_expand_array(JIJ=D%NIJB:D%NIJE)
 !
 DO JK=IKTB+1,IKTE-1
-  !$mnh_expand_array(JIJ=1:D%NIJT)
-  ZY(1:D%NIJT,JK)= PVARM(1:D%NIJT,JK)  + PTSTEP*PSOURCE(1:D%NIJT,JK) -               &
-      PEXPL / PRHODJ(1:D%NIJT,JK) *                                           &
-                             ( PVARM(1:D%NIJT,JK-D%NKL)*PA(1:D%NIJT,JK)                &
-                              -PVARM(1:D%NIJT,JK)*(PA(1:D%NIJT,JK)+PA(1:D%NIJT,JK+D%NKL))   &
-                              +PVARM(1:D%NIJT,JK+D%NKL)*PA(1:D%NIJT,JK+D%NKL)              &
+  !$mnh_expand_array(JIJ=D%NIJB:D%NIJE)
+  ZY(D%NIJB:D%NIJE,JK)= PVARM(D%NIJB:D%NIJE,JK)  + PTSTEP*PSOURCE(D%NIJB:D%NIJE,JK) -               &
+      PEXPL / PRHODJ(D%NIJB:D%NIJE,JK) *                                           &
+                             ( PVARM(D%NIJB:D%NIJE,JK-D%NKL)*PA(D%NIJB:D%NIJE,JK)                &
+                              -PVARM(D%NIJB:D%NIJE,JK)*(PA(D%NIJB:D%NIJE,JK)+PA(D%NIJB:D%NIJE,JK+D%NKL))   &
+                              +PVARM(D%NIJB:D%NIJE,JK+D%NKL)*PA(D%NIJB:D%NIJE,JK+D%NKL)              &
                              ) 
-  !$mnh_end_expand_array(JIJ=1:D%NIJT)
+  !$mnh_end_expand_array(JIJ=D%NIJB:D%NIJE)
 END DO
 ! 
-!$mnh_expand_array(JIJ=1:D%NIJT)
-ZY(1:D%NIJT,IKE)= PVARM(1:D%NIJT,IKE) + PTSTEP*PSOURCE(1:D%NIJT,IKE) +               &
-  PEXPL / PRHODJ(1:D%NIJT,IKE) * PA(1:D%NIJT,IKE) * (PVARM(1:D%NIJT,IKE)-PVARM(1:D%NIJT,IKE-D%NKL))
-!$mnh_end_expand_array(JIJ=1:D%NIJT)
+!$mnh_expand_array(JIJ=D%NIJB:D%NIJE)
+ZY(D%NIJB:D%NIJE,IKE)= PVARM(D%NIJB:D%NIJE,IKE) + PTSTEP*PSOURCE(D%NIJB:D%NIJE,IKE) +               &
+  PEXPL / PRHODJ(D%NIJB:D%NIJE,IKE) * PA(D%NIJB:D%NIJE,IKE) * (PVARM(D%NIJB:D%NIJE,IKE)-PVARM(D%NIJB:D%NIJE,IKE-D%NKL))
+!$mnh_end_expand_array(JIJ=D%NIJB:D%NIJE)
 !
 !
 !*       2.  INVERSION OF THE TRIDIAGONAL SYSTEM
@@ -188,55 +188,55 @@ IF ( PIMPL > 1.E-10 ) THEN
   !
   !  going up
   !
-  !$mnh_expand_array(JIJ=1:D%NIJT)
-  ZBET(1:D%NIJT) = 1. + PIMPL * (PDIAG(1:D%NIJT,IKB)-PA(1:D%NIJT,IKB+D%NKL) / PRHODJ(1:D%NIJT,IKB))
+  !$mnh_expand_array(JIJ=D%NIJB:D%NIJE)
+  ZBET(D%NIJB:D%NIJE) = 1. + PIMPL * (PDIAG(D%NIJB:D%NIJE,IKB)-PA(D%NIJB:D%NIJE,IKB+D%NKL) / PRHODJ(D%NIJB:D%NIJE,IKB))
                                                     ! bet = b(ikb)
-  PVARP(1:D%NIJT,IKB) = ZY(1:D%NIJT,IKB) / ZBET(1:D%NIJT)                
-  !$mnh_end_expand_array(JIJ=1:D%NIJT)               
+  PVARP(D%NIJB:D%NIJE,IKB) = ZY(D%NIJB:D%NIJE,IKB) / ZBET(D%NIJB:D%NIJE)                
+  !$mnh_end_expand_array(JIJ=D%NIJB:D%NIJE)               
   !
   DO JK = IKB+D%NKL,IKE-D%NKL,D%NKL
-    !$mnh_expand_array(JIJ=1:D%NIJT)
-    ZGAM(1:D%NIJT,JK) = PIMPL * PA(1:D%NIJT,JK) / PRHODJ(1:D%NIJT,JK-D%NKL) / ZBET(1:D%NIJT)  
+    !$mnh_expand_array(JIJ=D%NIJB:D%NIJE)
+    ZGAM(D%NIJB:D%NIJE,JK) = PIMPL * PA(D%NIJB:D%NIJE,JK) / PRHODJ(D%NIJB:D%NIJE,JK-D%NKL) / ZBET(D%NIJB:D%NIJE)  
                                                     ! gam(k) = c(k-1) / bet
-    ZBET(1:D%NIJT)    = 1. + PIMPL * ( PDIAG(1:D%NIJT,JK) -                     &
-                                 (  PA(1:D%NIJT,JK) * (1. + ZGAM(1:D%NIJT,JK))  &
-                                  + PA(1:D%NIJT,JK+D%NKL)                      &
-                                 ) / PRHODJ(1:D%NIJT,JK)                   &
+    ZBET(D%NIJB:D%NIJE)    = 1. + PIMPL * ( PDIAG(D%NIJB:D%NIJE,JK) -                     &
+                                 (  PA(D%NIJB:D%NIJE,JK) * (1. + ZGAM(D%NIJB:D%NIJE,JK))  &
+                                  + PA(D%NIJB:D%NIJE,JK+D%NKL)                      &
+                                 ) / PRHODJ(D%NIJB:D%NIJE,JK)                   &
                                 )                   ! bet = b(k) - a(k)* gam(k)  
-    PVARP(1:D%NIJT,JK)= ( ZY(1:D%NIJT,JK) - PIMPL * PA(1:D%NIJT,JK) / PRHODJ(1:D%NIJT,JK) &
-                    * PVARP(1:D%NIJT,JK-D%NKL)                                 &
-                   ) / ZBET(1:D%NIJT)
+    PVARP(D%NIJB:D%NIJE,JK)= ( ZY(D%NIJB:D%NIJE,JK) - PIMPL * PA(D%NIJB:D%NIJE,JK) / PRHODJ(D%NIJB:D%NIJE,JK) &
+                    * PVARP(D%NIJB:D%NIJE,JK-D%NKL)                                 &
+                   ) / ZBET(D%NIJB:D%NIJE)
                                         ! res(k) = (y(k) -a(k)*res(k-1))/ bet 
-    !$mnh_end_expand_array(JIJ=1:D%NIJT)
+    !$mnh_end_expand_array(JIJ=D%NIJB:D%NIJE)
   END DO
-  !$mnh_expand_array(JIJ=1:D%NIJT)
+  !$mnh_expand_array(JIJ=D%NIJB:D%NIJE)
   ! special treatment for the last level
-  ZGAM(1:D%NIJT,IKE) = PIMPL * PA(1:D%NIJT,IKE) / PRHODJ(1:D%NIJT,IKE-D%NKL) / ZBET(1:D%NIJT) 
+  ZGAM(D%NIJB:D%NIJE,IKE) = PIMPL * PA(D%NIJB:D%NIJE,IKE) / PRHODJ(D%NIJB:D%NIJE,IKE-D%NKL) / ZBET(D%NIJB:D%NIJE) 
                                                     ! gam(k) = c(k-1) / bet
-  ZBET(1:D%NIJT)    = 1. + PIMPL * ( PDIAG(1:D%NIJT,IKE) -                   &
-         (  PA(1:D%NIJT,IKE) * (1. + ZGAM(1:D%NIJT,IKE)) ) / PRHODJ(1:D%NIJT,IKE) &
+  ZBET(D%NIJB:D%NIJE)    = 1. + PIMPL * ( PDIAG(D%NIJB:D%NIJE,IKE) -                   &
+         (  PA(D%NIJB:D%NIJE,IKE) * (1. + ZGAM(D%NIJB:D%NIJE,IKE)) ) / PRHODJ(D%NIJB:D%NIJE,IKE) &
                               )  
                                                     ! bet = b(k) - a(k)* gam(k)  
-  PVARP(1:D%NIJT,IKE)= ( ZY(1:D%NIJT,IKE) - PIMPL * PA(1:D%NIJT,IKE) / PRHODJ(1:D%NIJT,IKE) &
-                                * PVARP(1:D%NIJT,IKE-D%NKL)                      &
-                 ) / ZBET(1:D%NIJT)
+  PVARP(D%NIJB:D%NIJE,IKE)= ( ZY(D%NIJB:D%NIJE,IKE) - PIMPL * PA(D%NIJB:D%NIJE,IKE) / PRHODJ(D%NIJB:D%NIJE,IKE) &
+                                * PVARP(D%NIJB:D%NIJE,IKE-D%NKL)                      &
+                 ) / ZBET(D%NIJB:D%NIJE)
                                        ! res(k) = (y(k) -a(k)*res(k-1))/ bet 
   !
   !  going down
   !
-  !$mnh_end_expand_array(JIJ=1:D%NIJT)
+  !$mnh_end_expand_array(JIJ=D%NIJB:D%NIJE)
   DO JK = IKE-D%NKL,IKB,-1*D%NKL
-  !$mnh_expand_array(JIJ=1:D%NIJT)
-    PVARP(1:D%NIJT,JK) = PVARP(1:D%NIJT,JK) - ZGAM(1:D%NIJT,JK+D%NKL) * PVARP(1:D%NIJT,JK+D%NKL) 
-  !$mnh_end_expand_array(JIJ=1:D%NIJT)
+  !$mnh_expand_array(JIJ=D%NIJB:D%NIJE)
+    PVARP(D%NIJB:D%NIJE,JK) = PVARP(D%NIJB:D%NIJE,JK) - ZGAM(D%NIJB:D%NIJE,JK+D%NKL) * PVARP(D%NIJB:D%NIJE,JK+D%NKL) 
+  !$mnh_end_expand_array(JIJ=D%NIJB:D%NIJE)
   END DO
 !
 ELSE
 ! 
   DO JK=IKTB,IKTE
-    !$mnh_expand_array(JIJ=1:D%NIJT)
-    PVARP(1:D%NIJT,JK) = ZY(1:D%NIJT,JK)
-    !$mnh_end_expand_array(JIJ=1:D%NIJT)
+    !$mnh_expand_array(JIJ=D%NIJB:D%NIJE)
+    PVARP(D%NIJB:D%NIJE,JK) = ZY(D%NIJB:D%NIJE,JK)
+    !$mnh_end_expand_array(JIJ=D%NIJB:D%NIJE)
   END DO
 !
 END IF 
@@ -245,10 +245,10 @@ END IF
 !*       3.  FILL THE UPPER AND LOWER EXTERNAL VALUES
 !            ----------------------------------------
 !
-!$mnh_expand_array(JIJ=1:D%NIJT)
-PVARP(1:D%NIJT,D%NKA)=PVARP(1:D%NIJT,IKB)
-PVARP(1:D%NIJT,D%NKU)=PVARP(1:D%NIJT,IKE)
-!$mnh_end_expand_array(JIJ=1:D%NIJT)
+!$mnh_expand_array(JIJ=D%NIJB:D%NIJE)
+PVARP(D%NIJB:D%NIJE,D%NKA)=PVARP(D%NIJB:D%NIJE,IKB)
+PVARP(D%NIJB:D%NIJE,D%NKU)=PVARP(D%NIJB:D%NIJE,IKE)
+!$mnh_end_expand_array(JIJ=D%NIJB:D%NIJE)
 !
 !-------------------------------------------------------------------------------
 !
diff --git a/src/common/turb/mode_tridiag_wind.F90 b/src/common/turb/mode_tridiag_wind.F90
index a2052df7b..ef323530a 100644
--- a/src/common/turb/mode_tridiag_wind.F90
+++ b/src/common/turb/mode_tridiag_wind.F90
@@ -162,27 +162,27 @@ IKTE=D%NKTE
 IKB=D%NKB
 IKE=D%NKE
 !
-!$mnh_expand_array(JIJ=1:D%NIJT)
-ZY(1:D%NIJT,IKB) = PVARM(1:D%NIJT,IKB)  + PTSTEP*PSOURCE(1:D%NIJT,IKB) -   &
-  PEXPL / PRHODJA(1:D%NIJT,IKB) * PA(1:D%NIJT,IKB+D%NKL) * &
-  (PVARM(1:D%NIJT,IKB+D%NKL) - PVARM(1:D%NIJT,IKB))
-!$mnh_end_expand_array(JIJ=1:D%NIJT)
+!$mnh_expand_array(JIJ=D%NIJB:D%NIJE)
+ZY(D%NIJB:D%NIJE,IKB) = PVARM(D%NIJB:D%NIJE,IKB)  + PTSTEP*PSOURCE(D%NIJB:D%NIJE,IKB) -   &
+  PEXPL / PRHODJA(D%NIJB:D%NIJE,IKB) * PA(D%NIJB:D%NIJE,IKB+D%NKL) * &
+  (PVARM(D%NIJB:D%NIJE,IKB+D%NKL) - PVARM(D%NIJB:D%NIJE,IKB))
+!$mnh_end_expand_array(JIJ=D%NIJB:D%NIJE)
 !
 DO JK=IKTB+1,IKTE-1
-  !$mnh_expand_array(JIJ=1:D%NIJT)
-  ZY(1:D%NIJT,JK)= PVARM(1:D%NIJT,JK)  + PTSTEP*PSOURCE(1:D%NIJT,JK) -               &
-      PEXPL / PRHODJA(1:D%NIJT,JK) *                                          &
-                             ( PVARM(1:D%NIJT,JK-D%NKL)*PA(1:D%NIJT,JK)                &
-                              -PVARM(1:D%NIJT,JK)*(PA(1:D%NIJT,JK)+PA(1:D%NIJT,JK+D%NKL))   &
-                              +PVARM(1:D%NIJT,JK+D%NKL)*PA(1:D%NIJT,JK+D%NKL)              &
+  !$mnh_expand_array(JIJ=D%NIJB:D%NIJE)
+  ZY(D%NIJB:D%NIJE,JK)= PVARM(D%NIJB:D%NIJE,JK)  + PTSTEP*PSOURCE(D%NIJB:D%NIJE,JK) -               &
+      PEXPL / PRHODJA(D%NIJB:D%NIJE,JK) *                                          &
+                             ( PVARM(D%NIJB:D%NIJE,JK-D%NKL)*PA(D%NIJB:D%NIJE,JK)                &
+                              -PVARM(D%NIJB:D%NIJE,JK)*(PA(D%NIJB:D%NIJE,JK)+PA(D%NIJB:D%NIJE,JK+D%NKL))   &
+                              +PVARM(D%NIJB:D%NIJE,JK+D%NKL)*PA(D%NIJB:D%NIJE,JK+D%NKL)              &
                              ) 
-  !$mnh_end_expand_array(JIJ=1:D%NIJT)
+  !$mnh_end_expand_array(JIJ=D%NIJB:D%NIJE)
 END DO
 ! 
-!$mnh_expand_array(JIJ=1:D%NIJT)
-ZY(1:D%NIJT,IKE)= PVARM(1:D%NIJT,IKE) + PTSTEP*PSOURCE(1:D%NIJT,IKE) +               &
-  PEXPL / PRHODJA(1:D%NIJT,IKE) * PA(1:D%NIJT,IKE) * (PVARM(1:D%NIJT,IKE)-PVARM(1:D%NIJT,IKE-D%NKL))
-!$mnh_end_expand_array(JIJ=1:D%NIJT)
+!$mnh_expand_array(JIJ=D%NIJB:D%NIJE)
+ZY(D%NIJB:D%NIJE,IKE)= PVARM(D%NIJB:D%NIJE,IKE) + PTSTEP*PSOURCE(D%NIJB:D%NIJE,IKE) +               &
+  PEXPL / PRHODJA(D%NIJB:D%NIJE,IKE) * PA(D%NIJB:D%NIJE,IKE) * (PVARM(D%NIJB:D%NIJE,IKE)-PVARM(D%NIJB:D%NIJE,IKE-D%NKL))
+!$mnh_end_expand_array(JIJ=D%NIJB:D%NIJE)
 !
 !
 !*       2.  INVERSION OF THE TRIDIAGONAL SYSTEM
@@ -193,53 +193,53 @@ IF ( PIMPL > 1.E-10 ) THEN
   !
   !  going up
   !
-  !$mnh_expand_array(JIJ=1:D%NIJT)
-  ZBET(1:D%NIJT) = 1. - PIMPL * (  PA(1:D%NIJT,IKB+D%NKL) / PRHODJA(1:D%NIJT,IKB) &  
-                            + PCOEFS(1:D%NIJT) *  PTSTEP        )   ! bet = b(ikb)
-  PVARP(1:D%NIJT,IKB) = ZY(1:D%NIJT,IKB) / ZBET(1:D%NIJT)
-  !$mnh_end_expand_array(JIJ=1:D%NIJT)               
+  !$mnh_expand_array(JIJ=D%NIJB:D%NIJE)
+  ZBET(D%NIJB:D%NIJE) = 1. - PIMPL * (  PA(D%NIJB:D%NIJE,IKB+D%NKL) / PRHODJA(D%NIJB:D%NIJE,IKB) &  
+                            + PCOEFS(D%NIJB:D%NIJE) *  PTSTEP        )   ! bet = b(ikb)
+  PVARP(D%NIJB:D%NIJE,IKB) = ZY(D%NIJB:D%NIJE,IKB) / ZBET(D%NIJB:D%NIJE)
+  !$mnh_end_expand_array(JIJ=D%NIJB:D%NIJE)               
   !
   DO JK = IKB+D%NKL,IKE-D%NKL,D%NKL
-    !$mnh_expand_array(JIJ=1:D%NIJT)
-    ZGAM(1:D%NIJT,JK) = PIMPL * PA(1:D%NIJT,JK) / PRHODJA(1:D%NIJT,JK-D%NKL) / ZBET(1:D%NIJT)  
+    !$mnh_expand_array(JIJ=D%NIJB:D%NIJE)
+    ZGAM(D%NIJB:D%NIJE,JK) = PIMPL * PA(D%NIJB:D%NIJE,JK) / PRHODJA(D%NIJB:D%NIJE,JK-D%NKL) / ZBET(D%NIJB:D%NIJE)  
                                                     ! gam(k) = c(k-1) / bet
-    ZBET(1:D%NIJT)    = 1. - PIMPL * (  PA(1:D%NIJT,JK) * (1. + ZGAM(1:D%NIJT,JK))  &
-                                 + PA(1:D%NIJT,JK+D%NKL)                      &
-                                ) / PRHODJA(1:D%NIJT,JK)  
+    ZBET(D%NIJB:D%NIJE)    = 1. - PIMPL * (  PA(D%NIJB:D%NIJE,JK) * (1. + ZGAM(D%NIJB:D%NIJE,JK))  &
+                                 + PA(D%NIJB:D%NIJE,JK+D%NKL)                      &
+                                ) / PRHODJA(D%NIJB:D%NIJE,JK)  
                                                     ! bet = b(k) - a(k)* gam(k)  
-    PVARP(1:D%NIJT,JK)= ( ZY(1:D%NIJT,JK) - PIMPL * PA(1:D%NIJT,JK) / PRHODJA(1:D%NIJT,JK) &
-                    * PVARP(1:D%NIJT,JK-D%NKL)                                 &
-                   ) / ZBET(1:D%NIJT)
+    PVARP(D%NIJB:D%NIJE,JK)= ( ZY(D%NIJB:D%NIJE,JK) - PIMPL * PA(D%NIJB:D%NIJE,JK) / PRHODJA(D%NIJB:D%NIJE,JK) &
+                    * PVARP(D%NIJB:D%NIJE,JK-D%NKL)                                 &
+                   ) / ZBET(D%NIJB:D%NIJE)
                                         ! res(k) = (y(k) -a(k)*res(k-1))/ bet 
-    !$mnh_end_expand_array(JIJ=1:D%NIJT)
+    !$mnh_end_expand_array(JIJ=D%NIJB:D%NIJE)
   END DO
-  !$mnh_expand_array(JIJ=1:D%NIJT)
+  !$mnh_expand_array(JIJ=D%NIJB:D%NIJE)
   ! special treatment for the last level
-  ZGAM(1:D%NIJT,IKE) = PIMPL * PA(1:D%NIJT,IKE) / PRHODJA(1:D%NIJT,IKE-D%NKL) / ZBET(1:D%NIJT) 
+  ZGAM(D%NIJB:D%NIJE,IKE) = PIMPL * PA(D%NIJB:D%NIJE,IKE) / PRHODJA(D%NIJB:D%NIJE,IKE-D%NKL) / ZBET(D%NIJB:D%NIJE) 
                                                     ! gam(k) = c(k-1) / bet
-  ZBET(1:D%NIJT)    = 1. - PIMPL * (  PA(1:D%NIJT,IKE) * (1. + ZGAM(1:D%NIJT,IKE))  &
-                              ) / PRHODJA(1:D%NIJT,IKE)  
+  ZBET(D%NIJB:D%NIJE)    = 1. - PIMPL * (  PA(D%NIJB:D%NIJE,IKE) * (1. + ZGAM(D%NIJB:D%NIJE,IKE))  &
+                              ) / PRHODJA(D%NIJB:D%NIJE,IKE)  
                                                     ! bet = b(k) - a(k)* gam(k)  
-  PVARP(1:D%NIJT,IKE)= ( ZY(1:D%NIJT,IKE) - PIMPL * PA(1:D%NIJT,IKE) / PRHODJA(1:D%NIJT,IKE) &
-                                 * PVARP(1:D%NIJT,IKE-D%NKL)                      &
-                  ) / ZBET(1:D%NIJT)
+  PVARP(D%NIJB:D%NIJE,IKE)= ( ZY(D%NIJB:D%NIJE,IKE) - PIMPL * PA(D%NIJB:D%NIJE,IKE) / PRHODJA(D%NIJB:D%NIJE,IKE) &
+                                 * PVARP(D%NIJB:D%NIJE,IKE-D%NKL)                      &
+                  ) / ZBET(D%NIJB:D%NIJE)
                                         ! res(k) = (y(k) -a(k)*res(k-1))/ bet 
   !
   !  going down
   !
-  !$mnh_end_expand_array(JIJ=1:D%NIJT)
+  !$mnh_end_expand_array(JIJ=D%NIJB:D%NIJE)
   DO JK = IKE-D%NKL,IKB,-1*D%NKL
-  !$mnh_expand_array(JIJ=1:D%NIJT)
-    PVARP(1:D%NIJT,JK) = PVARP(1:D%NIJT,JK) - ZGAM(1:D%NIJT,JK+D%NKL) * PVARP(1:D%NIJT,JK+D%NKL) 
-  !$mnh_end_expand_array(JIJ=1:D%NIJT)
+  !$mnh_expand_array(JIJ=D%NIJB:D%NIJE)
+    PVARP(D%NIJB:D%NIJE,JK) = PVARP(D%NIJB:D%NIJE,JK) - ZGAM(D%NIJB:D%NIJE,JK+D%NKL) * PVARP(D%NIJB:D%NIJE,JK+D%NKL) 
+  !$mnh_end_expand_array(JIJ=D%NIJB:D%NIJE)
   END DO
 !
 ELSE
 ! 
   DO JK=IKTB,IKTE
-    !$mnh_expand_array(JIJ=1:D%NIJT)
-    PVARP(1:D%NIJT,JK) = ZY(1:D%NIJT,JK)
-    !$mnh_end_expand_array(JIJ=1:D%NIJT)
+    !$mnh_expand_array(JIJ=D%NIJB:D%NIJE)
+    PVARP(D%NIJB:D%NIJE,JK) = ZY(D%NIJB:D%NIJE,JK)
+    !$mnh_end_expand_array(JIJ=D%NIJB:D%NIJE)
   END DO
 !
 END IF 
@@ -248,10 +248,10 @@ END IF
 !*       3.  FILL THE UPPER AND LOWER EXTERNAL VALUES
 !            ----------------------------------------
 !
-!$mnh_expand_array(JIJ=1:D%NIJT)
-PVARP(1:D%NIJT,D%NKA)=PVARP(1:D%NIJT,IKB)
-PVARP(1:D%NIJT,D%NKU)=PVARP(1:D%NIJT,IKE)
-!$mnh_end_expand_array(JIJ=1:D%NIJT)
+!$mnh_expand_array(JIJ=D%NIJB:D%NIJE)
+PVARP(D%NIJB:D%NIJE,D%NKA)=PVARP(D%NIJB:D%NIJE,IKB)
+PVARP(D%NIJB:D%NIJE,D%NKU)=PVARP(D%NIJB:D%NIJE,IKE)
+!$mnh_end_expand_array(JIJ=D%NIJB:D%NIJE)
 !
 !-------------------------------------------------------------------------------
 !
-- 
GitLab