diff --git a/src/common/turb/mode_prandtl.F90 b/src/common/turb/mode_prandtl.F90
index c38f60ff29e27d72d7cc9ecb21f60d0fb09b66b3..d636ed778ca145b79613220cc85f292e16d286d3 100644
--- a/src/common/turb/mode_prandtl.F90
+++ b/src/common/turb/mode_prandtl.F90
@@ -17,7 +17,6 @@ USE MODD_CTURB,      ONLY : CSTURB_t
 USE MODD_DIMPHYEX,   ONLY : DIMPHYEX_t
 USE MODD_PARAMETERS, ONLY : JPVEXT_TURB
 !
-USE MODI_SHUMAN, ONLY: MZM, MZF
 USE SHUMAN_PHY, ONLY: MZM_PHY,MZF_PHY
 USE MODE_GRADIENT_M_PHY
 IMPLICIT NONE
@@ -152,12 +151,10 @@ USE MODD_FIELD,          ONLY: TFIELDDATA, TYPEREAL
 USE MODD_IO,             ONLY: TFILEDATA
 USE MODD_PARAMETERS, ONLY: JPVEXT_TURB
 !
-USE MODI_GRADIENT_M
 USE MODE_GRADIENT_M_PHY, ONLY: GX_M_M_PHY, GY_M_M_PHY
 USE MODE_EMOIST, ONLY : EMOIST
 USE MODE_ETHETA, ONLY : ETHETA
-USE MODI_SHUMAN, ONLY: MZM
-USE MODE_IO_FIELD_WRITE, ONLY: IO_FIELD_WRITE
+USE MODE_IO_FIELD_WRITE, ONLY: IO_FIELD_WRITE_PHY
 !
 IMPLICIT NONE
 !
@@ -181,45 +178,45 @@ LOGICAL, INTENT(IN) :: O2D               ! Logical for 2D model version (modd_co
 LOGICAL,                INTENT(IN)   ::  OFLAT        ! Logical for zero ororography
 CHARACTER(LEN=4),       INTENT(IN)   ::  HTURBDIM     ! Kind of turbulence param.
 TYPE(TFILEDATA),        INTENT(IN)   ::  TPFILE       ! Output file
-REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN)   ::  PDXX,PDYY,PDZZ,PDZX,PDZY
+REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN)   ::  PDXX,PDYY,PDZZ,PDZX,PDZY
                                                   ! metric coefficients
 !
-REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN)   ::  PTHVREF  ! Virtual Potential Temp.
+REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN)   ::  PTHVREF  ! Virtual Potential Temp.
                                                   ! of the reference state
-REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN)   ::  PLOCPEXNM ! Lv(T)/Cp/Exner at t-1 
-REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN)   ::  PATHETA      ! coefficients between 
-REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN)   ::  PAMOIST      ! s and Thetal and Rnp
+REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN)   ::  PLOCPEXNM ! Lv(T)/Cp/Exner at t-1 
+REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN)   ::  PATHETA      ! coefficients between 
+REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN)   ::  PAMOIST      ! s and Thetal and Rnp
 !
-REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN)   ::  PLM      ! Turbulent Mixing length
-REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN)   ::  PLEPS    ! Dissipative length
-REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN)   ::  PTHLM,PTKEM! Conservative Potential 
+REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN)   ::  PLM      ! Turbulent Mixing length
+REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN)   ::  PLEPS    ! Dissipative length
+REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN)   ::  PTHLM,PTKEM! Conservative Potential 
                                                   ! Temperature and TKE at t-1
-REAL, DIMENSION(D%NIT,D%NJT,D%NKT,KRR), INTENT(IN) ::  PRM      ! Mixing ratios at  t-1
+REAL, DIMENSION(D%NIJT,D%NKT,KRR), INTENT(IN) ::  PRM      ! Mixing ratios at  t-1
                                                   ! with PRM(:,:,:,1) = cons.
                                                   ! mixing ratio
-REAL, DIMENSION(D%NIT,D%NJT,D%NKT,KSV), INTENT(IN) ::  PSVM     ! Scalars at t-1      
+REAL, DIMENSION(D%NIJT,D%NKT,KSV), INTENT(IN) ::  PSVM     ! Scalars at t-1      
 REAL, DIMENSION(MERGE(D%NIT,0,OCOMPUTE_SRC),&
                 MERGE(D%NJT,0,OCOMPUTE_SRC),&
                 MERGE(D%NKT,0,OCOMPUTE_SRC)),  INTENT(IN)   ::  PSRCM
                                   ! s'r'c/2Sigma_s2 at t-1 multiplied by Lambda_3
 !
 !
-REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(OUT)  ::  PREDTH1 ! Redelsperger number R_theta
-REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(OUT)  ::  PREDR1  ! Redelsperger number R_q
-REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(OUT)  ::  PRED2TH3 ! Redelsperger number R*2_theta
-REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(OUT)  ::  PRED2R3  ! Redelsperger number R*2_q
-REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(OUT)  ::  PRED2THR3! Redelsperger number R*2_thq
-REAL, DIMENSION(D%NIT,D%NJT,D%NKT,KSV), INTENT(OUT)::  PREDS1   ! Redelsperger number R_s
-REAL, DIMENSION(D%NIT,D%NJT,D%NKT,KSV), INTENT(OUT)::  PRED2THS3! Redelsperger number R*2_thsv
-REAL, DIMENSION(D%NIT,D%NJT,D%NKT,KSV), INTENT(OUT)::  PRED2RS3 ! Redelsperger number R*2_qsv
-REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(OUT)  ::  PBLL_O_E! beta*Lk*Leps/tke
-REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(OUT)  ::  PETHETA ! coefficient E_theta
-REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(OUT)  ::  PEMOIST ! coefficient E_moist
+REAL, DIMENSION(D%NIJT,D%NKT), INTENT(OUT)  ::  PREDTH1 ! Redelsperger number R_theta
+REAL, DIMENSION(D%NIJT,D%NKT), INTENT(OUT)  ::  PREDR1  ! Redelsperger number R_q
+REAL, DIMENSION(D%NIJT,D%NKT), INTENT(OUT)  ::  PRED2TH3 ! Redelsperger number R*2_theta
+REAL, DIMENSION(D%NIJT,D%NKT), INTENT(OUT)  ::  PRED2R3  ! Redelsperger number R*2_q
+REAL, DIMENSION(D%NIJT,D%NKT), INTENT(OUT)  ::  PRED2THR3! Redelsperger number R*2_thq
+REAL, DIMENSION(D%NIJT,D%NKT,KSV), INTENT(OUT)::  PREDS1   ! Redelsperger number R_s
+REAL, DIMENSION(D%NIJT,D%NKT,KSV), INTENT(OUT)::  PRED2THS3! Redelsperger number R*2_thsv
+REAL, DIMENSION(D%NIJT,D%NKT,KSV), INTENT(OUT)::  PRED2RS3 ! Redelsperger number R*2_qsv
+REAL, DIMENSION(D%NIJT,D%NKT), INTENT(OUT)  ::  PBLL_O_E! beta*Lk*Leps/tke
+REAL, DIMENSION(D%NIJT,D%NKT), INTENT(OUT)  ::  PETHETA ! coefficient E_theta
+REAL, DIMENSION(D%NIJT,D%NKT), INTENT(OUT)  ::  PEMOIST ! coefficient E_moist
 !
 !
 !       0.2  declaration of local variables
 !
-REAL, DIMENSION(D%NIT,D%NJT,D%NKT) ::  &
+REAL, DIMENSION(D%NIJT,D%NKT) ::  &
                   ZW1, ZW2, ZW3, &
 !                                                 working variables
                   ZWORK1,ZWORK2,ZWORK3,ZWORK4, ZWORK5, ZWORK6,ZWORK7, &
@@ -228,7 +225,7 @@ REAL, DIMENSION(D%NIT,D%NJT,D%NKT) ::  &
 !                                                     
 INTEGER :: IKB      ! vertical index value for the first inner mass point
 INTEGER :: IKE      ! vertical index value for the last inner mass point
-INTEGER::  JSV,JI,JJ,JK,IIB,IIE,IJB,IJE ! loop index
+INTEGER::  JSV,JIJ,JK,IIJB,IIJE ! loop index
 
 INTEGER :: JLOOP
 REAL    :: ZMINVAL
@@ -242,32 +239,32 @@ REAL(KIND=JPRB) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('PRANDTL',0,ZHOOK_HANDLE)
 
 IF (OHARAT) THEN
-PREDTH1(:,:,:)=0.
-PREDR1(:,:,:)=0.
-PRED2TH3(:,:,:)=0.
-PRED2R3(:,:,:)=0.
-PRED2THR3(:,:,:)=0.
-PREDS1(:,:,:,:)=0.
-PRED2THS3(:,:,:,:)=0.
-PRED2RS3(:,:,:,:)=0.
-PBLL_O_E(:,:,:)=0.
+PREDTH1(:,:)=0.
+PREDR1(:,:)=0.
+PRED2TH3(:,:)=0.
+PRED2R3(:,:)=0.
+PRED2THR3(:,:)=0.
+PREDS1(:,:,:)=0.
+PRED2THS3(:,:,:)=0.
+PRED2RS3(:,:,:)=0.
+PBLL_O_E(:,:)=0.
 ENDIF
 !
 IKB=D%NKTB
 IKE=D%NKTE 
-IIE=D%NIEC
-IIB=D%NIBC
-IJE=D%NJEC
-IJB=D%NJBC
+IIJE=D%NIJE
+IIJB=D%NIJB
+
+
 !
 CALL ETHETA(D,CST,KRR,KRRI,PTHLM,PRM,PLOCPEXNM,PATHETA,PSRCM,OOCEAN,OCOMPUTE_SRC,ZWORK1)
 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(JI=IIB:IIE,JJ=IJB:IJE)
-PETHETA(IIB:IIE,IJB:IJE,D%NKA) = 2.*PETHETA(IIB:IIE,IJB:IJE,IKB) - PETHETA(IIB:IIE,IJB:IJE,IKB+D%NKL)
-PEMOIST(IIB:IIE,IJB:IJE,D%NKA) = 2.*PEMOIST(IIB:IIE,IJB:IJE,IKB) - PEMOIST(IIB:IIE,IJB:IJE,IKB+D%NKL)
-!$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE)
+!$mnh_expand_array(JIJ=IIJB:IIJE)
+PETHETA(IIJB:IIJE,D%NKA) = 2.*PETHETA(IIJB:IIJE,IKB) - PETHETA(IIJB:IIJE,IKB+D%NKL)
+PEMOIST(IIJB:IIJE,D%NKA) = 2.*PEMOIST(IIJB:IIJE,IKB) - PEMOIST(IIJB:IIJE,IKB+D%NKL)
+!$mnh_end_expand_array(JIJ=IIJB:IIJE)
 !
 !---------------------------------------------------------------------------
 IF (.NOT. OHARAT) THEN
@@ -275,39 +272,39 @@ IF (.NOT. OHARAT) THEN
 !          1.3 1D Redelsperger numbers
 !
 IF (OOCEAN) THEN
-  !$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
-  ZWORK1(IIB:IIE,IJB:IJE,1:D%NKT) = CST%XG * CST%XALPHAOC * PLM(IIB:IIE,IJB:IJE,1:D%NKT) & 
-                                    * PLEPS(IIB:IIE,IJB:IJE,1:D%NKT) / PTKEM(IIB:IIE,IJB:IJE,1:D%NKT)
-  !$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
+  !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
+  ZWORK1(IIJB:IIJE,1:D%NKT) = CST%XG * CST%XALPHAOC * PLM(IIJB:IIJE,1:D%NKT) & 
+                                    * PLEPS(IIJB:IIJE,1:D%NKT) / PTKEM(IIJB:IIJE,1:D%NKT)
+  !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
 ELSE
-  !$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
-  ZWORK1(IIB:IIE,IJB:IJE,1:D%NKT) = CST%XG / PTHVREF(IIB:IIE,IJB:IJE,1:D%NKT) * PLM(IIB:IIE,IJB:IJE,1:D%NKT) & 
-                                    * PLEPS(IIB:IIE,IJB:IJE,1:D%NKT) / PTKEM(IIB:IIE,IJB:IJE,1:D%NKT)
-  !$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
+  !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
+  ZWORK1(IIJB:IIJE,1:D%NKT) = CST%XG / PTHVREF(IIJB:IIJE,1:D%NKT) * PLM(IIJB:IIJE,1:D%NKT) & 
+                                    * PLEPS(IIJB:IIJE,1:D%NKT) / PTKEM(IIJB:IIJE,1:D%NKT)
+  !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
 END IF
 !
 CALL MZM_PHY(D,ZWORK1,PBLL_O_E)
 CALL GZ_M_W_PHY(D,PTHLM,PDZZ,ZWORK1)
 !
 IF (OOCEAN) THEN
-  !$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
-  PREDTH1(IIB:IIE,IJB:IJE,1:D%NKT)= CSTURB%XCTV*PBLL_O_E(IIB:IIE,IJB:IJE,1:D%NKT)*ZWORK1(IIB:IIE,IJB:IJE,1:D%NKT)
-  !$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
-  PREDR1(:,:,:) = 0.
+  !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
+  PREDTH1(IIJB:IIJE,1:D%NKT)= CSTURB%XCTV*PBLL_O_E(IIJB:IIJE,1:D%NKT)*ZWORK1(IIJB:IIJE,1:D%NKT)
+  !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
+  PREDR1(:,:) = 0.
 ELSE
   IF (KRR /= 0) THEN                ! moist case
-    CALL GZ_M_W_PHY(D,PRM(:,:,:,1),PDZZ,ZWORK2)
-    !$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
-    PREDTH1(IIB:IIE,IJB:IJE,1:D%NKT)= CSTURB%XCTV*PBLL_O_E(IIB:IIE,IJB:IJE,1:D%NKT) * PETHETA(IIB:IIE,IJB:IJE,1:D%NKT) &
-                                      * ZWORK1(IIB:IIE,IJB:IJE,1:D%NKT)
-    PREDR1(IIB:IIE,IJB:IJE,1:D%NKT) = CSTURB%XCTV*PBLL_O_E(IIB:IIE,IJB:IJE,1:D%NKT) * PEMOIST(IIB:IIE,IJB:IJE,1:D%NKT) &
-                                      * ZWORK2(IIB:IIE,IJB:IJE,1:D%NKT)
-    !$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
+    CALL GZ_M_W_PHY(D,PRM(:,:,1),PDZZ,ZWORK2)
+    !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
+    PREDTH1(IIJB:IIJE,1:D%NKT)= CSTURB%XCTV*PBLL_O_E(IIJB:IIJE,1:D%NKT) * PETHETA(IIJB:IIJE,1:D%NKT) &
+                                      * ZWORK1(IIJB:IIJE,1:D%NKT)
+    PREDR1(IIJB:IIJE,1:D%NKT) = CSTURB%XCTV*PBLL_O_E(IIJB:IIJE,1:D%NKT) * PEMOIST(IIJB:IIJE,1:D%NKT) &
+                                      * ZWORK2(IIJB:IIJE,1:D%NKT)
+    !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
   ELSE                              ! dry case
-    !$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
-    PREDTH1(IIB:IIE,IJB:IJE,1:D%NKT)= CSTURB%XCTV*PBLL_O_E(IIB:IIE,IJB:IJE,1:D%NKT)  * ZWORK1(IIB:IIE,IJB:IJE,1:D%NKT)
-    PREDR1(IIB:IIE,IJB:IJE,1:D%NKT) = 0.
-    !$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
+    !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
+    PREDTH1(IIJB:IIJE,1:D%NKT)= CSTURB%XCTV*PBLL_O_E(IIJB:IIJE,1:D%NKT)  * ZWORK1(IIJB:IIJE,1:D%NKT)
+    PREDR1(IIJB:IIJE,1:D%NKT) = 0.
+    !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
   END IF
 END IF
 !
@@ -317,54 +314,52 @@ END IF
 ZMINVAL = (1.-1./CSTURB%XPHI_LIM)
 !
 DO JK=1,D%NKT 
- DO JJ=IJB,IJE
-  DO JI=IIB,IIE 
-   ZW1(JI,JJ,JK) = 1.
-   ZW2(JI,JJ,JK) = 1.
+  DO JIJ=IIJB,IIJE 
+   ZW1(JIJ,JK) = 1.
+   ZW2(JIJ,JK) = 1.
    !
-   IF (PREDTH1(JI,JJ,JK)+PREDR1(JI,JJ,JK)<-ZMINVAL)THEN
-    ZW1(JI,JJ,JK) = (-ZMINVAL) / (PREDTH1(JI,JJ,JK)+PREDR1(JI,JJ,JK))
+   IF (PREDTH1(JIJ,JK)+PREDR1(JIJ,JK)<-ZMINVAL)THEN
+    ZW1(JIJ,JK) = (-ZMINVAL) / (PREDTH1(JIJ,JK)+PREDR1(JIJ,JK))
    ENDIF
    !
-   IF (PREDTH1(JI,JJ,JK)<-ZMINVAL)THEN
-    ZW2(JI,JJ,JK) = (-ZMINVAL) / (PREDTH1(JI,JJ,JK))
+   IF (PREDTH1(JIJ,JK)<-ZMINVAL)THEN
+    ZW2(JIJ,JK) = (-ZMINVAL) / (PREDTH1(JIJ,JK))
    ENDIF
-   ZW2(JI,JJ,JK) = MIN(ZW1(JI,JJ,JK),ZW2(JI,JJ,JK))
+   ZW2(JIJ,JK) = MIN(ZW1(JIJ,JK),ZW2(JIJ,JK))
    !
-   ZW1(JI,JJ,JK) = 1.
-   IF (PREDR1(JI,JJ,JK)<-ZMINVAL)THEN
-    ZW1(JI,JJ,JK) = (-ZMINVAL) / (PREDR1(JI,JJ,JK))
+   ZW1(JIJ,JK) = 1.
+   IF (PREDR1(JIJ,JK)<-ZMINVAL)THEN
+    ZW1(JIJ,JK) = (-ZMINVAL) / (PREDR1(JIJ,JK))
    ENDIF
-   ZW1(JI,JJ,JK) = MIN(ZW2(JI,JJ,JK),ZW1(JI,JJ,JK))
+   ZW1(JIJ,JK) = MIN(ZW2(JIJ,JK),ZW1(JIJ,JK))
    !
    !
    !       3. Modification of Mixing length and dissipative length
    !          ----------------------------------------------------
    !
-   PBLL_O_E(JI,JJ,JK) = PBLL_O_E(JI,JJ,JK) * ZW1(JI,JJ,JK)
-   PREDTH1(JI,JJ,JK)  = PREDTH1(JI,JJ,JK)  * ZW1(JI,JJ,JK)
-   PREDR1(JI,JJ,JK)   = PREDR1(JI,JJ,JK)   * ZW1(JI,JJ,JK)
+   PBLL_O_E(JIJ,JK) = PBLL_O_E(JIJ,JK) * ZW1(JIJ,JK)
+   PREDTH1(JIJ,JK)  = PREDTH1(JIJ,JK)  * ZW1(JIJ,JK)
+   PREDR1(JIJ,JK)   = PREDR1(JIJ,JK)   * ZW1(JIJ,JK)
    !
    !       4. Threshold for very small (in absolute value) Redelperger numbers
    !          ----------------------------------------------------------------
    !
-   IF(PREDTH1(JI,JJ,JK) < 0.) THEN
-    ZW2(JI,JJ,JK)=-1.
+   IF(PREDTH1(JIJ,JK) < 0.) THEN
+    ZW2(JIJ,JK)=-1.
    ELSE
-    ZW2(JI,JJ,JK)=1.
+    ZW2(JIJ,JK)=1.
    END IF
-   PREDTH1(JI,JJ,JK)= ZW2(JI,JJ,JK) * MAX(1.E-30, ZW2(JI,JJ,JK)*PREDTH1(JI,JJ,JK))
+   PREDTH1(JIJ,JK)= ZW2(JIJ,JK) * MAX(1.E-30, ZW2(JIJ,JK)*PREDTH1(JIJ,JK))
    !
    IF (KRR /= 0) THEN                ! moist case
-    IF(PREDR1(JI,JJ,JK) < 0.) THEN
-     ZW2(JI,JJ,JK)=-1.
+    IF(PREDR1(JIJ,JK) < 0.) THEN
+     ZW2(JIJ,JK)=-1.
     ELSE
-     ZW2(JI,JJ,JK)=1.
+     ZW2(JIJ,JK)=1.
     END IF
-    PREDR1(JI,JJ,JK)= ZW2(JI,JJ,JK) * MAX(1.E-30, ZW2(JI,JJ,JK)*PREDR1(JI,JJ,JK))
+    PREDR1(JIJ,JK)= ZW2(JIJ,JK) * MAX(1.E-30, ZW2(JIJ,JK)*PREDR1(JIJ,JK))
    END IF
   ENDDO
- ENDDO
 ENDDO
 !
 !
@@ -372,24 +367,22 @@ ENDDO
 !
 !          For the scalar variables
 DO JSV=1,KSV
-  CALL GZ_M_W_PHY(D,PSVM(:,:,:,JSV),PDZZ,ZWORK1)
-  !$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
-  PREDS1(IIB:IIE,IJB:IJE,1:D%NKT,JSV)=CSTURB%XCTV*PBLL_O_E(IIB:IIE,IJB:IJE,1:D%NKT)*ZWORK1(IIB:IIE,IJB:IJE,1:D%NKT)
-  !$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
+  CALL GZ_M_W_PHY(D,PSVM(:,:,JSV),PDZZ,ZWORK1)
+  !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
+  PREDS1(IIJB:IIJE,1:D%NKT,JSV)=CSTURB%XCTV*PBLL_O_E(IIJB:IIJE,1:D%NKT)*ZWORK1(IIJB:IIJE,1:D%NKT)
+  !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
 END DO
 !
 DO JSV=1,KSV
  DO JK=1,D%NKT 
-  DO JJ=IJB,IJE
-   DO JI=IIB,IIE 
-    IF(PREDS1(JI,JJ,JK,JSV) < 0.) THEN
-     ZW2(JI,JJ,JK)=-1.
+   DO JIJ=IIJB,IIJE 
+    IF(PREDS1(JIJ,JK,JSV) < 0.) THEN
+     ZW2(JIJ,JK)=-1.
     ELSE
-     ZW2(JI,JJ,JK)=1.
+     ZW2(JIJ,JK)=1.
     END IF
-    PREDS1(JI,JJ,JK,JSV)= ZW2(JI,JJ,JK) * MAX(1.E-30, ZW2(JI,JJ,JK)*PREDS1(JI,JJ,JK,JSV))
+    PREDS1(JIJ,JK,JSV)= ZW2(JIJ,JK) * MAX(1.E-30, ZW2(JIJ,JK)*PREDS1(JIJ,JK,JSV))
    ENDDO
-  ENDDO
  ENDDO
 ENDDO
 !
@@ -401,61 +394,61 @@ ENDDO
 IF(HTURBDIM=='1DIM') THEN        ! 1D case
 !
 !
-  !$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
-  PRED2TH3(IIB:IIE,IJB:IJE,1:D%NKT)  = PREDTH1(IIB:IIE,IJB:IJE,1:D%NKT)**2
+  !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
+  PRED2TH3(IIJB:IIJE,1:D%NKT)  = PREDTH1(IIJB:IIJE,1:D%NKT)**2
 !
-  PRED2R3(IIB:IIE,IJB:IJE,1:D%NKT)   = PREDR1(IIB:IIE,IJB:IJE,1:D%NKT) **2
+  PRED2R3(IIJB:IIJE,1:D%NKT)   = PREDR1(IIJB:IIJE,1:D%NKT) **2
 !
-  PRED2THR3(IIB:IIE,IJB:IJE,1:D%NKT) = PREDTH1(IIB:IIE,IJB:IJE,1:D%NKT) * PREDR1(IIB:IIE,IJB:IJE,1:D%NKT)
-  !$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
+  PRED2THR3(IIJB:IIJE,1:D%NKT) = PREDTH1(IIJB:IIJE,1:D%NKT) * PREDR1(IIJB:IIJE,1:D%NKT)
+  !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
 !
 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(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
-    ZWORK1(IIB:IIE,IJB:IJE,1:D%NKT) = ZGXMM_PTH(IIB:IIE,IJB:IJE,1:D%NKT)**2
-    !$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
+    !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
+    ZWORK1(IIJB:IIJE,1:D%NKT) = ZGXMM_PTH(IIJB:IIJE,1:D%NKT)**2
+    !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
     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(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
-    ZWORK1(IIB:IIE,IJB:IJE,1:D%NKT) = ZGXMM_PRM(IIB:IIE,IJB:IJE,1:D%NKT)**2
-    !$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
+    CALL GX_M_M_PHY(D,OFLAT,PRM(:,:,1),PDXX,PDZZ,PDZX,ZGXMM_PRM)
+    !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
+    ZWORK1(IIJB:IIJE,1:D%NKT) = ZGXMM_PRM(IIJB:IIJE,1:D%NKT)**2
+    !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
     CALL MZM_PHY(D,ZWORK1,ZWORK3)
     !
-    !$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
-    ZWORK1(IIB:IIE,IJB:IJE,1:D%NKT) = ZGXMM_PTH(IIB:IIE,IJB:IJE,1:D%NKT) * ZGXMM_PRM(IIB:IIE,IJB:IJE,1:D%NKT)
-    !$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
+    !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
+    ZWORK1(IIJB:IIJE,1:D%NKT) = ZGXMM_PTH(IIJB:IIJE,1:D%NKT) * ZGXMM_PRM(IIJB:IIJE,1:D%NKT)
+    !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
     CALL MZM_PHY(D,ZWORK1,ZWORK4)
     !
-    !$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
-    PRED2TH3(IIB:IIE,IJB:IJE,1:D%NKT)= PREDTH1(IIB:IIE,IJB:IJE,1:D%NKT)**2+(CSTURB%XCTV*PBLL_O_E(IIB:IIE,IJB:IJE,1:D%NKT) &
-                                       *PETHETA(IIB:IIE,IJB:IJE,1:D%NKT) )**2 * ZWORK2(IIB:IIE,IJB:IJE,1:D%NKT)
+    !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
+    PRED2TH3(IIJB:IIJE,1:D%NKT)= PREDTH1(IIJB:IIJE,1:D%NKT)**2+(CSTURB%XCTV*PBLL_O_E(IIJB:IIJE,1:D%NKT) &
+                                       *PETHETA(IIJB:IIJE,1:D%NKT) )**2 * ZWORK2(IIJB:IIJE,1:D%NKT)
 !
-    PRED2R3(IIB:IIE,IJB:IJE,1:D%NKT)= PREDR1(IIB:IIE,IJB:IJE,1:D%NKT)**2 + (CSTURB%XCTV*PBLL_O_E(IIB:IIE,IJB:IJE,1:D%NKT) &
-                                     * PEMOIST(IIB:IIE,IJB:IJE,1:D%NKT))**2 * ZWORK3(IIB:IIE,IJB:IJE,1:D%NKT)
+    PRED2R3(IIJB:IIJE,1:D%NKT)= PREDR1(IIJB:IIJE,1:D%NKT)**2 + (CSTURB%XCTV*PBLL_O_E(IIJB:IIJE,1:D%NKT) &
+                                     * PEMOIST(IIJB:IIJE,1:D%NKT))**2 * ZWORK3(IIJB:IIJE,1:D%NKT)
 !
-    PRED2THR3(IIB:IIE,IJB:IJE,1:D%NKT)= PREDR1(IIB:IIE,IJB:IJE,1:D%NKT) * PREDTH1(IIB:IIE,IJB:IJE,1:D%NKT) +  CSTURB%XCTV**2 &
-                                        * PBLL_O_E(IIB:IIE,IJB:IJE,1:D%NKT)**2   &
-                                        * PEMOIST(IIB:IIE,IJB:IJE,1:D%NKT) * PETHETA(IIB:IIE,IJB:IJE,1:D%NKT) &
-                                        * ZWORK4(IIB:IIE,IJB:IJE,1:D%NKT)
-    !$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
+    PRED2THR3(IIJB:IIJE,1:D%NKT)= PREDR1(IIJB:IIJE,1:D%NKT) * PREDTH1(IIJB:IIJE,1:D%NKT) +  CSTURB%XCTV**2 &
+                                        * PBLL_O_E(IIJB:IIJE,1:D%NKT)**2   &
+                                        * PEMOIST(IIJB:IIJE,1:D%NKT) * PETHETA(IIJB:IIJE,1:D%NKT) &
+                                        * ZWORK4(IIJB:IIJE,1:D%NKT)
+    !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
 !
-    PRED2TH3(IIB:IIE,IJB:IJE,IKB)=PRED2TH3(IIB:IIE,IJB:IJE,IKB+D%NKL)
-    PRED2R3(IIB:IIE,IJB:IJE,IKB)=PRED2R3(IIB:IIE,IJB:IJE,IKB+D%NKL) 
-    PRED2THR3(IIB:IIE,IJB:IJE,IKB)=PRED2THR3(IIB:IIE,IJB:IJE,IKB+D%NKL)
+    PRED2TH3(IIJB:IIJE,IKB)=PRED2TH3(IIJB:IIJE,IKB+D%NKL)
+    PRED2R3(IIJB:IIJE,IKB)=PRED2R3(IIJB:IIJE,IKB+D%NKL) 
+    PRED2THR3(IIJB:IIJE,IKB)=PRED2THR3(IIJB:IIJE,IKB+D%NKL)
 !
   ELSE                 ! dry 3D case in a 2D model
-    !$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
-    PRED2TH3(IIB:IIE,IJB:IJE,1:D%NKT) = PREDTH1(IIB:IIE,IJB:IJE,1:D%NKT)**2 +  CSTURB%XCTV**2 & 
-                                       * PBLL_O_E(IIB:IIE,IJB:IJE,1:D%NKT)**2 * ZWORK2(IIB:IIE,IJB:IJE,1:D%NKT)      
-    !$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
-    PRED2TH3(IIB:IIE,IJB:IJE,IKB)=PRED2TH3(IIB:IIE,IJB:IJE,IKB+D%NKL)
+    !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
+    PRED2TH3(IIJB:IIJE,1:D%NKT) = PREDTH1(IIJB:IIJE,1:D%NKT)**2 +  CSTURB%XCTV**2 & 
+                                       * PBLL_O_E(IIJB:IIJE,1:D%NKT)**2 * ZWORK2(IIJB:IIJE,1:D%NKT)      
+    !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
+    PRED2TH3(IIJB:IIJE,IKB)=PRED2TH3(IIJB:IIJE,IKB+D%NKL)
 !
-    PRED2R3(IIB:IIE,IJB:IJE,1:D%NKT) = 0.
+    PRED2R3(IIJB:IIJE,1:D%NKT) = 0.
 !
-    PRED2THR3(IIB:IIE,IJB:IJE,1:D%NKT) = 0.
+    PRED2THR3(IIJB:IIJE,1:D%NKT) = 0.
 !
   END IF
 !
@@ -463,53 +456,53 @@ 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(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
-  ZWORK1(IIB:IIE,IJB:IJE,1:D%NKT) = ZGXMM_PTH(IIB:IIE,IJB:IJE,1:D%NKT)**2 + ZGYMM_PTH(IIB:IIE,IJB:IJE,1:D%NKT)**2
-  !$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
+  !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
+  ZWORK1(IIJB:IIJE,1:D%NKT) = ZGXMM_PTH(IIJB:IIJE,1:D%NKT)**2 + ZGYMM_PTH(IIJB:IIJE,1:D%NKT)**2
+  !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
   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)
-    CALL GY_M_M_PHY(D,OFLAT,PRM(:,:,:,1),PDYY,PDZZ,PDZY,ZGYMM_PRM)
-    !$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
-    ZWORK1(IIB:IIE,IJB:IJE,1:D%NKT) = ZGXMM_PRM(IIB:IIE,IJB:IJE,1:D%NKT)**2 + ZGYMM_PRM(IIB:IIE,IJB:IJE,1:D%NKT)**2
-    !$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
+    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:D%NKT)
+    ZWORK1(IIJB:IIJE,1:D%NKT) = ZGXMM_PRM(IIJB:IIJE,1:D%NKT)**2 + ZGYMM_PRM(IIJB:IIJE,1:D%NKT)**2
+    !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
     CALL MZM_PHY(D,ZWORK1,ZWORK3)
     !
-    !$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
-    ZWORK1(IIB:IIE,IJB:IJE,1:D%NKT) = ZGXMM_PRM(IIB:IIE,IJB:IJE,1:D%NKT) * ZGXMM_PTH(IIB:IIE,IJB:IJE,1:D%NKT) &
-                                    + ZGYMM_PRM(IIB:IIE,IJB:IJE,1:D%NKT) * ZGYMM_PTH(IIB:IIE,IJB:IJE,1:D%NKT)
-    !$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
+    !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
+    ZWORK1(IIJB:IIJE,1:D%NKT) = ZGXMM_PRM(IIJB:IIJE,1:D%NKT) * ZGXMM_PTH(IIJB:IIJE,1:D%NKT) &
+                                    + ZGYMM_PRM(IIJB:IIJE,1:D%NKT) * ZGYMM_PTH(IIJB:IIJE,1:D%NKT)
+    !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
     CALL MZM_PHY(D,ZWORK1,ZWORK4)
     !
-    !$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
-    PRED2TH3(IIB:IIE,IJB:IJE,1:D%NKT)= PREDTH1(IIB:IIE,IJB:IJE,1:D%NKT)**2 +  ( CSTURB%XCTV*PBLL_O_E(IIB:IIE,IJB:IJE,1:D%NKT) &
-                                      * PETHETA(IIB:IIE,IJB:IJE,1:D%NKT) )**2 * ZWORK2(IIB:IIE,IJB:IJE,1:D%NKT)      
+    !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
+    PRED2TH3(IIJB:IIJE,1:D%NKT)= PREDTH1(IIJB:IIJE,1:D%NKT)**2 +  ( CSTURB%XCTV*PBLL_O_E(IIJB:IIJE,1:D%NKT) &
+                                      * PETHETA(IIJB:IIJE,1:D%NKT) )**2 * ZWORK2(IIJB:IIJE,1:D%NKT)      
 !
-    PRED2R3(IIB:IIE,IJB:IJE,1:D%NKT)= PREDR1(IIB:IIE,IJB:IJE,1:D%NKT)**2 + (CSTURB%XCTV*PBLL_O_E(IIB:IIE,IJB:IJE,1:D%NKT) &
-                                     * PEMOIST(IIB:IIE,IJB:IJE,1:D%NKT))**2 * ZWORK3(IIB:IIE,IJB:IJE,1:D%NKT)
+    PRED2R3(IIJB:IIJE,1:D%NKT)= PREDR1(IIJB:IIJE,1:D%NKT)**2 + (CSTURB%XCTV*PBLL_O_E(IIJB:IIJE,1:D%NKT) &
+                                     * PEMOIST(IIJB:IIJE,1:D%NKT))**2 * ZWORK3(IIJB:IIJE,1:D%NKT)
 !
-    PRED2THR3(IIB:IIE,IJB:IJE,1:D%NKT)= PREDR1(IIB:IIE,IJB:IJE,1:D%NKT) * PREDTH1(IIB:IIE,IJB:IJE,1:D%NKT) +  CSTURB%XCTV**2 &
-                                       * PBLL_O_E(IIB:IIE,IJB:IJE,1:D%NKT)**2 *   &
-                            PEMOIST(IIB:IIE,IJB:IJE,1:D%NKT) * PETHETA(IIB:IIE,IJB:IJE,1:D%NKT) * ZWORK4(IIB:IIE,IJB:IJE,1:D%NKT)
+    PRED2THR3(IIJB:IIJE,1:D%NKT)= PREDR1(IIJB:IIJE,1:D%NKT) * PREDTH1(IIJB:IIJE,1:D%NKT) +  CSTURB%XCTV**2 &
+                                       * PBLL_O_E(IIJB:IIJE,1:D%NKT)**2 *   &
+                            PEMOIST(IIJB:IIJE,1:D%NKT) * PETHETA(IIJB:IIJE,1:D%NKT) * ZWORK4(IIJB:IIJE,1:D%NKT)
 
-    !$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
+    !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
 !
-    PRED2TH3(IIB:IIE,IJB:IJE,IKB)=PRED2TH3(IIB:IIE,IJB:IJE,IKB+D%NKL)
-    PRED2R3(IIB:IIE,IJB:IJE,IKB)=PRED2R3(IIB:IIE,IJB:IJE,IKB+D%NKL)
-    PRED2THR3(IIB:IIE,IJB:IJE,IKB)=PRED2THR3(IIB:IIE,IJB:IJE,IKB+D%NKL)
+    PRED2TH3(IIJB:IIJE,IKB)=PRED2TH3(IIJB:IIJE,IKB+D%NKL)
+    PRED2R3(IIJB:IIJE,IKB)=PRED2R3(IIJB:IIJE,IKB+D%NKL)
+    PRED2THR3(IIJB:IIJE,IKB)=PRED2THR3(IIJB:IIJE,IKB+D%NKL)
 !
   ELSE                 ! dry 3D case in a 3D model
-    !$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
-    PRED2TH3(IIB:IIE,IJB:IJE,1:D%NKT) = PREDTH1(IIB:IIE,IJB:IJE,1:D%NKT)**2 +  CSTURB%XCTV**2 &
-                                        * PBLL_O_E(IIB:IIE,IJB:IJE,1:D%NKT)**2 * ZWORK2(IIB:IIE,IJB:IJE,1:D%NKT)
-    !$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
+    !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
+    PRED2TH3(IIJB:IIJE,1:D%NKT) = PREDTH1(IIJB:IIJE,1:D%NKT)**2 +  CSTURB%XCTV**2 &
+                                        * PBLL_O_E(IIJB:IIJE,1:D%NKT)**2 * ZWORK2(IIJB:IIJE,1:D%NKT)
+    !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
 ! 
-    PRED2TH3(IIB:IIE,IJB:IJE,IKB)=PRED2TH3(IIB:IIE,IJB:IJE,IKB+D%NKL)
+    PRED2TH3(IIJB:IIJE,IKB)=PRED2TH3(IIJB:IIJE,IKB+D%NKL)
 !
-    PRED2R3(IIB:IIE,IJB:IJE,1:D%NKT) = 0.
+    PRED2R3(IIJB:IIJE,1:D%NKT) = 0.
 !
-    PRED2THR3(IIB:IIE,IJB:IJE,1:D%NKT) = 0.
+    PRED2THR3(IIJB:IIJE,1:D%NKT) = 0.
 !
   END IF
 !
@@ -524,128 +517,128 @@ DO JSV=1,KSV
 !
   IF(HTURBDIM=='1DIM') THEN
 !        1D case
-    !$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
-    PRED2THS3(IIB:IIE,IJB:IJE,1:D%NKT,JSV)  = PREDS1(IIB:IIE,IJB:IJE,1:D%NKT,JSV) * PREDTH1(IIB:IIE,IJB:IJE,1:D%NKT)
+    !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
+    PRED2THS3(IIJB:IIJE,1:D%NKT,JSV)  = PREDS1(IIJB:IIJE,1:D%NKT,JSV) * PREDTH1(IIJB:IIJE,1:D%NKT)
     IF (KRR /= 0) THEN
-      PRED2RS3(IIB:IIE,IJB:IJE,1:D%NKT,JSV)   = PREDR1(IIB:IIE,IJB:IJE,1:D%NKT) *PREDS1(IIB:IIE,IJB:IJE,1:D%NKT,JSV)
+      PRED2RS3(IIJB:IIJE,1:D%NKT,JSV)   = PREDR1(IIJB:IIJE,1:D%NKT) *PREDS1(IIJB:IIJE,1:D%NKT,JSV)
     ELSE
-      PRED2RS3(IIB:IIE,IJB:IJE,1:D%NKT,JSV)   = 0.
+      PRED2RS3(IIJB:IIJE,1:D%NKT,JSV)   = 0.
     END IF
-    !$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
+    !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
 !
   ELSE  IF (O2D) THEN ! 3D case in a 2D model
 !
     IF (OOCEAN) THEN
-      !$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
-      ZWORK1(IIB:IIE,IJB:IJE,1:D%NKT) = (CST%XG *CST%XALPHAOC * PLM(IIB:IIE,IJB:IJE,1:D%NKT) * PLEPS(IIB:IIE,IJB:IJE,1:D%NKT) &
-                                       / PTKEM(IIB:IIE,IJB:IJE,1:D%NKT))**2
-      !$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
+      !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
+      ZWORK1(IIJB:IIJE,1:D%NKT) = (CST%XG *CST%XALPHAOC * PLM(IIJB:IIJE,1:D%NKT) * PLEPS(IIJB:IIJE,1:D%NKT) &
+                                       / PTKEM(IIJB:IIJE,1:D%NKT))**2
+      !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
       CALL MZM_PHY(D,ZWORK1,ZWORK2)  
       IF (KRR /= 0) THEN
-        !$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
-        ZW1(IIB:IIE,IJB:IJE,1:D%NKT) = ZWORK2(IIB:IIE,IJB:IJE,1:D%NKT) * PETHETA(IIB:IIE,IJB:IJE,1:D%NKT)
-        !$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
+        !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
+        ZW1(IIJB:IIJE,1:D%NKT) = ZWORK2(IIJB:IIJE,1:D%NKT) * PETHETA(IIJB:IIJE,1:D%NKT)
+        !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
       ELSE
         ZW1 = ZWORK2
       END IF
     ELSE
-      !$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
-      ZWORK1(IIB:IIE,IJB:IJE,1:D%NKT) = (CST%XG / PTHVREF(IIB:IIE,IJB:IJE,1:D%NKT) * PLM(IIB:IIE,IJB:IJE,1:D%NKT) &
-                                      * PLEPS(IIB:IIE,IJB:IJE,1:D%NKT) / PTKEM(IIB:IIE,IJB:IJE,1:D%NKT))**2
-      !$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
+      !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
+      ZWORK1(IIJB:IIJE,1:D%NKT) = (CST%XG / PTHVREF(IIJB:IIJE,1:D%NKT) * PLM(IIJB:IIJE,1:D%NKT) &
+                                      * PLEPS(IIJB:IIJE,1:D%NKT) / PTKEM(IIJB:IIJE,1:D%NKT))**2
+      !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
       CALL MZM_PHY(D,ZWORK1,ZW1)  
       !
-      CALL GX_M_M_PHY(D,OFLAT,PSVM(:,:,:,JSV),PDXX,PDZZ,PDZX,ZGXMM_PSV)
+      CALL GX_M_M_PHY(D,OFLAT,PSVM(:,:,JSV),PDXX,PDZZ,PDZX,ZGXMM_PSV)
       CALL GX_M_M_PHY(D,OFLAT,PTHLM,PDXX,PDZZ,PDZX,ZGXMM_PTH)
-      CALL GX_M_M_PHY(D,OFLAT,PRM(:,:,:,1),PDXX,PDZZ,PDZX,ZGXMM_PRM)
+      CALL GX_M_M_PHY(D,OFLAT,PRM(:,:,1),PDXX,PDZZ,PDZX,ZGXMM_PRM)
       !
-      !$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
-      ZWORK1(IIB:IIE,IJB:IJE,1:D%NKT) = ZGXMM_PSV(IIB:IIE,IJB:IJE,1:D%NKT) * ZGXMM_PTH(IIB:IIE,IJB:IJE,1:D%NKT)
-      !$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
+      !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
+      ZWORK1(IIJB:IIJE,1:D%NKT) = ZGXMM_PSV(IIJB:IIJE,1:D%NKT) * ZGXMM_PTH(IIJB:IIJE,1:D%NKT)
+      !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
       CALL MZM_PHY(D,ZWORK1,ZWORK2)
       !
-      !$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
-      ZWORK1(IIB:IIE,IJB:IJE,1:D%NKT) = ZGXMM_PSV(IIB:IIE,IJB:IJE,1:D%NKT) * ZGXMM_PRM(IIB:IIE,IJB:IJE,1:D%NKT)
-      !$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
+      !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
+      ZWORK1(IIJB:IIJE,1:D%NKT) = ZGXMM_PSV(IIJB:IIJE,1:D%NKT) * ZGXMM_PRM(IIJB:IIJE,1:D%NKT)
+      !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
       CALL MZM_PHY(D,ZWORK1,ZWORK3)
 !
-      !$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)    
+      !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)    
       IF (KRR /= 0) THEN
-        ZWORK1(IIB:IIE,IJB:IJE,1:D%NKT) = ZW1(IIB:IIE,IJB:IJE,1:D%NKT)*PETHETA(IIB:IIE,IJB:IJE,1:D%NKT)
+        ZWORK1(IIJB:IIJE,1:D%NKT) = ZW1(IIJB:IIJE,1:D%NKT)*PETHETA(IIJB:IIJE,1:D%NKT)
       ELSE
-        ZWORK1(IIB:IIE,IJB:IJE,1:D%NKT) = ZW1(IIB:IIE,IJB:IJE,1:D%NKT)
+        ZWORK1(IIJB:IIJE,1:D%NKT) = ZW1(IIJB:IIJE,1:D%NKT)
       END IF
-      PRED2THS3(IIB:IIE,IJB:IJE,1:D%NKT,JSV) = PREDTH1(IIB:IIE,IJB:IJE,1:D%NKT) * PREDS1(IIB:IIE,IJB:IJE,1:D%NKT,JSV)   +        &
-                         ZWORK1(IIB:IIE,IJB:IJE,1:D%NKT) * ZWORK2(IIB:IIE,IJB:IJE,1:D%NKT)
+      PRED2THS3(IIJB:IIJE,1:D%NKT,JSV) = PREDTH1(IIJB:IIJE,1:D%NKT) * PREDS1(IIJB:IIJE,1:D%NKT,JSV)   +        &
+                         ZWORK1(IIJB:IIJE,1:D%NKT) * ZWORK2(IIJB:IIJE,1:D%NKT)
                          !
       IF (KRR /= 0) THEN
-        PRED2RS3(IIB:IIE,IJB:IJE,1:D%NKT,JSV) = PREDR1(IIB:IIE,IJB:IJE,1:D%NKT) * PREDS1(IIB:IIE,IJB:IJE,1:D%NKT,JSV)   +        &
-                         ZW1(IIB:IIE,IJB:IJE,1:D%NKT) * PEMOIST(IIB:IIE,IJB:IJE,1:D%NKT) * ZWORK3(IIB:IIE,IJB:IJE,1:D%NKT)
+        PRED2RS3(IIJB:IIJE,1:D%NKT,JSV) = PREDR1(IIJB:IIJE,1:D%NKT) * PREDS1(IIJB:IIJE,1:D%NKT,JSV)   +        &
+                         ZW1(IIJB:IIJE,1:D%NKT) * PEMOIST(IIJB:IIJE,1:D%NKT) * ZWORK3(IIJB:IIJE,1:D%NKT)
       ELSE
-        PRED2RS3(IIB:IIE,IJB:IJE,1:D%NKT,JSV) = 0.
+        PRED2RS3(IIJB:IIJE,1:D%NKT,JSV) = 0.
       END IF
-      !$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
+      !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
     END IF
 !
   ELSE ! 3D case in a 3D model
 !
     IF (OOCEAN) THEN
-      !$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
-      ZWORK1(IIB:IIE,IJB:IJE,1:D%NKT) = (CST%XG *CST%XALPHAOC * PLM(IIB:IIE,IJB:IJE,1:D%NKT) * PLEPS(IIB:IIE,IJB:IJE,1:D%NKT) &
-                                       / PTKEM(IIB:IIE,IJB:IJE,1:D%NKT))**2
-      !$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
+      !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
+      ZWORK1(IIJB:IIJE,1:D%NKT) = (CST%XG *CST%XALPHAOC * PLM(IIJB:IIJE,1:D%NKT) * PLEPS(IIJB:IIJE,1:D%NKT) &
+                                       / PTKEM(IIJB:IIJE,1:D%NKT))**2
+      !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
       CALL MZM_PHY(D,ZWORK1,ZWORK2)  
       IF (KRR /= 0) THEN
-        !$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
-        ZW1(IIB:IIE,IJB:IJE,1:D%NKT) = ZWORK2(IIB:IIE,IJB:IJE,1:D%NKT) * PETHETA(IIB:IIE,IJB:IJE,1:D%NKT)
-        !$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
+        !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
+        ZW1(IIJB:IIJE,1:D%NKT) = ZWORK2(IIJB:IIJE,1:D%NKT) * PETHETA(IIJB:IIJE,1:D%NKT)
+        !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
       ELSE
         ZW1 = ZWORK2
       END IF
     ELSE
-      !$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
-      ZWORK1(IIB:IIE,IJB:IJE,1:D%NKT) = (CST%XG / PTHVREF(IIB:IIE,IJB:IJE,1:D%NKT) * PLM(IIB:IIE,IJB:IJE,1:D%NKT) &
-                                      * PLEPS(IIB:IIE,IJB:IJE,1:D%NKT) / PTKEM(IIB:IIE,IJB:IJE,1:D%NKT))**2
-      !$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
+      !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
+      ZWORK1(IIJB:IIJE,1:D%NKT) = (CST%XG / PTHVREF(IIJB:IIJE,1:D%NKT) * PLM(IIJB:IIJE,1:D%NKT) &
+                                      * PLEPS(IIJB:IIJE,1:D%NKT) / PTKEM(IIJB:IIJE,1:D%NKT))**2
+      !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
       CALL MZM_PHY(D,ZWORK1,ZW1)
       !
-      CALL GX_M_M_PHY(D,OFLAT,PSVM(:,:,:,JSV),PDXX,PDZZ,PDZX,ZGXMM_PSV)
+      CALL GX_M_M_PHY(D,OFLAT,PSVM(:,:,JSV),PDXX,PDZZ,PDZX,ZGXMM_PSV)
       CALL GX_M_M_PHY(D,OFLAT,PTHLM,PDXX,PDZZ,PDZX,ZGXMM_PTH)
-      CALL GX_M_M_PHY(D,OFLAT,PRM(:,:,:,1),PDXX,PDZZ,PDZX,ZGXMM_PRM)
-      CALL GY_M_M_PHY(D,OFLAT,PSVM(:,:,:,JSV),PDYY,PDZZ,PDZY,ZGYMM_PSV)
+      CALL GX_M_M_PHY(D,OFLAT,PRM(:,:,1),PDXX,PDZZ,PDZX,ZGXMM_PRM)
+      CALL GY_M_M_PHY(D,OFLAT,PSVM(:,:,JSV),PDYY,PDZZ,PDZY,ZGYMM_PSV)
       CALL GY_M_M_PHY(D,OFLAT,PTHLM,PDYY,PDZZ,PDZY,ZGYMM_PTH)
-      CALL GY_M_M_PHY(D,OFLAT,PRM(:,:,:,1),PDYY,PDZZ,PDZY,ZGYMM_PRM)      
+      CALL GY_M_M_PHY(D,OFLAT,PRM(:,:,1),PDYY,PDZZ,PDZY,ZGYMM_PRM)      
       !
-      !$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
-      ZWORK1(IIB:IIE,IJB:IJE,1:D%NKT) = ZGXMM_PSV(IIB:IIE,IJB:IJE,1:D%NKT) * ZGXMM_PTH(IIB:IIE,IJB:IJE,1:D%NKT) &
-                                      + ZGYMM_PSV(IIB:IIE,IJB:IJE,1:D%NKT) * ZGYMM_PTH(IIB:IIE,IJB:IJE,1:D%NKT)
-      !$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
+      !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
+      ZWORK1(IIJB:IIJE,1:D%NKT) = ZGXMM_PSV(IIJB:IIJE,1:D%NKT) * ZGXMM_PTH(IIJB:IIJE,1:D%NKT) &
+                                      + ZGYMM_PSV(IIJB:IIJE,1:D%NKT) * ZGYMM_PTH(IIJB:IIJE,1:D%NKT)
+      !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
       CALL MZM_PHY(D,ZWORK1,ZWORK2)
       !
-      !$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
-      ZWORK1(IIB:IIE,IJB:IJE,1:D%NKT) = ZGXMM_PSV(IIB:IIE,IJB:IJE,1:D%NKT) * ZGXMM_PRM(IIB:IIE,IJB:IJE,1:D%NKT) &
-                                      + ZGYMM_PSV(IIB:IIE,IJB:IJE,1:D%NKT) * ZGYMM_PRM(IIB:IIE,IJB:IJE,1:D%NKT)
-      !$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
+      !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
+      ZWORK1(IIJB:IIJE,1:D%NKT) = ZGXMM_PSV(IIJB:IIJE,1:D%NKT) * ZGXMM_PRM(IIJB:IIJE,1:D%NKT) &
+                                      + ZGYMM_PSV(IIJB:IIJE,1:D%NKT) * ZGYMM_PRM(IIJB:IIJE,1:D%NKT)
+      !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
       CALL MZM_PHY(D,ZWORK1,ZWORK3)      
       !
       IF (KRR /= 0) THEN
-        !$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
-        ZWORK1(IIB:IIE,IJB:IJE,1:D%NKT) = ZW1(IIB:IIE,IJB:IJE,1:D%NKT)*PETHETA(IIB:IIE,IJB:IJE,1:D%NKT)
-        !$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
+        !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
+        ZWORK1(IIJB:IIJE,1:D%NKT) = ZW1(IIJB:IIJE,1:D%NKT)*PETHETA(IIJB:IIJE,1:D%NKT)
+        !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
       ELSE
-        ZWORK1(IIB:IIE,IJB:IJE,1:D%NKT) = ZW1(IIB:IIE,IJB:IJE,1:D%NKT)
+        ZWORK1(IIJB:IIJE,1:D%NKT) = ZW1(IIJB:IIJE,1:D%NKT)
       END IF
-      !$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
-      PRED2THS3(IIB:IIE,IJB:IJE,1:D%NKT,JSV) = PREDTH1(IIB:IIE,IJB:IJE,1:D%NKT) * PREDS1(IIB:IIE,IJB:IJE,1:D%NKT,JSV)   +        &
-                         ZWORK1(IIB:IIE,IJB:IJE,1:D%NKT)*ZWORK2(IIB:IIE,IJB:IJE,1:D%NKT)
-      !$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
+      !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
+      PRED2THS3(IIJB:IIJE,1:D%NKT,JSV) = PREDTH1(IIJB:IIJE,1:D%NKT) * PREDS1(IIJB:IIJE,1:D%NKT,JSV)   +        &
+                         ZWORK1(IIJB:IIJE,1:D%NKT)*ZWORK2(IIJB:IIJE,1:D%NKT)
+      !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
       IF (KRR /= 0) THEN
-        !$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
-        PRED2RS3(IIB:IIE,IJB:IJE,1:D%NKT,JSV) = PREDR1(IIB:IIE,IJB:IJE,1:D%NKT) * PREDS1(IIB:IIE,IJB:IJE,1:D%NKT,JSV)   +        &
-                         ZW1(IIB:IIE,IJB:IJE,1:D%NKT) * PEMOIST(IIB:IIE,IJB:IJE,1:D%NKT) * ZWORK3(IIB:IIE,IJB:IJE,1:D%NKT)
-        !$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
+        !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
+        PRED2RS3(IIJB:IIJE,1:D%NKT,JSV) = PREDR1(IIJB:IIJE,1:D%NKT) * PREDS1(IIJB:IIJE,1:D%NKT,JSV)   +        &
+                         ZW1(IIJB:IIJE,1:D%NKT) * PEMOIST(IIJB:IIJE,1:D%NKT) * ZWORK3(IIJB:IIJE,1:D%NKT)
+        !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
       ELSE
-        PRED2RS3(IIB:IIE,IJB:IJE,1:D%NKT,JSV) = 0.
+        PRED2RS3(IIJB:IIJE,1:D%NKT,JSV) = 0.
       END IF
   END IF 
 !
@@ -671,7 +664,7 @@ IF ( OTURB_DIAG .AND. TPFILE%LOPENED ) THEN
   TZFIELD%NTYPE      = TYPEREAL
   TZFIELD%NDIMS      = 3
   TZFIELD%LTIMEDEP   = .TRUE.
-  CALL IO_Field_write(TPFILE,TZFIELD,PREDTH1)
+  CALL IO_FIELD_WRITE_PHY(D,TPFILE,TZFIELD,PREDTH1)
   !
   ! stores the RED_R1
   TZFIELD%CMNHNAME   = 'RED_R1'
@@ -684,7 +677,7 @@ IF ( OTURB_DIAG .AND. TPFILE%LOPENED ) THEN
   TZFIELD%NTYPE      = TYPEREAL
   TZFIELD%NDIMS      = 3
   TZFIELD%LTIMEDEP   = .TRUE.
-  CALL IO_Field_write(TPFILE,TZFIELD,PREDR1)
+  CALL IO_FIELD_WRITE_PHY(D,TPFILE,TZFIELD,PREDR1)
   !
   ! stores the RED2_TH3
   TZFIELD%CMNHNAME   = 'RED2_TH3'
@@ -697,7 +690,7 @@ IF ( OTURB_DIAG .AND. TPFILE%LOPENED ) THEN
   TZFIELD%NTYPE      = TYPEREAL
   TZFIELD%NDIMS      = 3
   TZFIELD%LTIMEDEP   = .TRUE.
-  CALL IO_Field_write(TPFILE,TZFIELD,PRED2TH3)
+  CALL IO_FIELD_WRITE_PHY(D,TPFILE,TZFIELD,PRED2TH3)
   !
   ! stores the RED2_R3
   TZFIELD%CMNHNAME   = 'RED2_R3'
@@ -710,7 +703,7 @@ IF ( OTURB_DIAG .AND. TPFILE%LOPENED ) THEN
   TZFIELD%NTYPE      = TYPEREAL
   TZFIELD%NDIMS      = 3
   TZFIELD%LTIMEDEP   = .TRUE.
-  CALL IO_Field_write(TPFILE,TZFIELD,PRED2R3)
+  CALL IO_FIELD_WRITE_PHY(D,TPFILE,TZFIELD,PRED2R3)
   !
   ! stores the RED2_THR3
   TZFIELD%CMNHNAME   = 'RED2_THR3'
@@ -723,7 +716,7 @@ IF ( OTURB_DIAG .AND. TPFILE%LOPENED ) THEN
   TZFIELD%NTYPE      = TYPEREAL
   TZFIELD%NDIMS      = 3
   TZFIELD%LTIMEDEP   = .TRUE.
-  CALL IO_Field_write(TPFILE,TZFIELD,PRED2THR3)
+  CALL IO_FIELD_WRITE_PHY(D,TPFILE,TZFIELD,PRED2THR3)
   !
 END IF
 !
@@ -737,103 +730,103 @@ SUBROUTINE SMOOTH_TURB_FUNCT(D,CSTURB,PPHI3,PF_LIM,PF)
 !
 TYPE(CSTURB_t),                  INTENT(IN)    :: CSTURB
 TYPE(DIMPHYEX_t),       INTENT(IN)   :: D
-REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN)    :: PPHI3   ! Phi3
-REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN)    :: PF_LIM  ! Value of F when Phi3 is
+REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN)    :: PPHI3   ! Phi3
+REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN)    :: PF_LIM  ! Value of F when Phi3 is
 !                                                ! larger than Phi_lim
-REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(INOUT) :: PF      ! function F to smooth
+REAL, DIMENSION(D%NIJT,D%NKT), INTENT(INOUT) :: PF      ! function F to smooth
 !
-REAL, DIMENSION(D%NIT,D%NJT,D%NKT) :: ZCOEF
-INTEGER :: JI,JJ,JK, IIB,IIE,IJB,IJE
+REAL, DIMENSION(D%NIJT,D%NKT) :: ZCOEF
+INTEGER :: JIJ,JK, IIJB,IIJE
 !
 !* adds a artificial correction to smooth the function near the discontinuity
 !  point at Phi3 = Phi_lim
 !  This smoothing is applied between 0.9*phi_lim (=2.7) and Phi_lim (=3)
 !   Note that in the Boundary layer, phi is usually between 0.8 and 1
 !
-IIE=D%NIEC
-IIB=D%NIBC
-IJE=D%NJEC
-IJB=D%NJBC
+IIJE=D%NIJE
+IIJB=D%NIJB
+
+
 !
-!$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)    
-ZCOEF(IIB:IIE,IJB:IJE,1:D%NKT) = MAX(MIN((  10.*(1.-PPHI3(IIB:IIE,IJB:IJE,1:D%NKT)/CSTURB%XPHI_LIM)) ,1.), 0.) 
+!$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)    
+ZCOEF(IIJB:IIJE,1:D%NKT) = MAX(MIN((  10.*(1.-PPHI3(IIJB:IIJE,1:D%NKT)/CSTURB%XPHI_LIM)) ,1.), 0.) 
 !
-PF(IIB:IIE,IJB:IJE,1:D%NKT) =     ZCOEF(IIB:IIE,IJB:IJE,1:D%NKT)   * PF(IIB:IIE,IJB:IJE,1:D%NKT)    &
-          + (1.-ZCOEF(IIB:IIE,IJB:IJE,1:D%NKT))  * PF_LIM(IIB:IIE,IJB:IJE,1:D%NKT)
-!$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)    
+PF(IIJB:IIJE,1:D%NKT) =     ZCOEF(IIJB:IIJE,1:D%NKT)   * PF(IIJB:IIJE,1:D%NKT)    &
+          + (1.-ZCOEF(IIJB:IIJE,1:D%NKT))  * PF_LIM(IIJB:IIJE,1:D%NKT)
+!$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)    
 !
 END SUBROUTINE SMOOTH_TURB_FUNCT
 !----------------------------------------------------------------------------
 SUBROUTINE PHI3(D,CSTURB,PREDTH1,PREDR1,PRED2TH3,PRED2R3,PRED2THR3,HTURBDIM,OUSERV,PPHI3)
   TYPE(CSTURB_t),                  INTENT(IN)    :: CSTURB
   TYPE(DIMPHYEX_t),                   INTENT(IN)   :: D
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PREDTH1
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PREDR1
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PRED2TH3
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PRED2R3
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PRED2THR3
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PREDTH1
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PREDR1
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PRED2TH3
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PRED2R3
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PRED2THR3
   CHARACTER(LEN=4),       INTENT(IN) :: HTURBDIM  ! 1DIM or 3DIM turb. scheme
   LOGICAL,                INTENT(IN) :: OUSERV    ! flag to use vapor
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT),INTENT(OUT) :: PPHI3
+  REAL, DIMENSION(D%NIJT,D%NKT),INTENT(OUT) :: PPHI3
 !
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT) :: ZW1, ZW2
-  INTEGER :: IKB, IKE, JI,JJ,JK, IIB,IIE,IJB,IJE
+  REAL, DIMENSION(D%NIJT,D%NKT) :: ZW1, ZW2
+  INTEGER :: IKB, IKE, JIJ,JK, IIJB,IIJE
 !
 REAL(KIND=JPRB) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:PHI3',0,ZHOOK_HANDLE)
 IKB=D%NKTB
 IKE=D%NKTE
-IIE=D%NIEC
-IIB=D%NIBC
-IJE=D%NJEC
-IJB=D%NJBC
+IIJE=D%NIJE
+IIJB=D%NIJB
+
+
 !
 IF (HTURBDIM=='3DIM') THEN
         !* 3DIM case
-  !$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)    
+  !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)    
   IF (OUSERV) THEN
-    ZW1(IIB:IIE,IJB:IJE,1:D%NKT) = 1. + 1.5* (PREDTH1(IIB:IIE,IJB:IJE,1:D%NKT)+PREDR1(IIB:IIE,IJB:IJE,1:D%NKT)) +      &
-                   ( 0.5 * (PREDTH1(IIB:IIE,IJB:IJE,1:D%NKT)**2+PREDR1(IIB:IIE,IJB:IJE,1:D%NKT)**2)  &
-                         + PREDTH1(IIB:IIE,IJB:IJE,1:D%NKT) * PREDR1(IIB:IIE,IJB:IJE,1:D%NKT)        &
+    ZW1(IIJB:IIJE,1:D%NKT) = 1. + 1.5* (PREDTH1(IIJB:IIJE,1:D%NKT)+PREDR1(IIJB:IIJE,1:D%NKT)) +      &
+                   ( 0.5 * (PREDTH1(IIJB:IIJE,1:D%NKT)**2+PREDR1(IIJB:IIJE,1:D%NKT)**2)  &
+                         + PREDTH1(IIJB:IIJE,1:D%NKT) * PREDR1(IIJB:IIJE,1:D%NKT)        &
                    )
 
-    ZW2(IIB:IIE,IJB:IJE,1:D%NKT) = 0.5 * (PRED2TH3(IIB:IIE,IJB:IJE,1:D%NKT)-PRED2R3(IIB:IIE,IJB:IJE,1:D%NKT))
+    ZW2(IIJB:IIJE,1:D%NKT) = 0.5 * (PRED2TH3(IIJB:IIJE,1:D%NKT)-PRED2R3(IIJB:IIJE,1:D%NKT))
 
-    PPHI3(IIB:IIE,IJB:IJE,1:D%NKT)= 1. -                                          &
-    ( ( (1.+PREDR1(IIB:IIE,IJB:IJE,1:D%NKT)) *                                   &
-        (PRED2THR3(IIB:IIE,IJB:IJE,1:D%NKT) + PRED2TH3(IIB:IIE,IJB:IJE,1:D%NKT)) / PREDTH1(IIB:IIE,IJB:IJE,1:D%NKT)  &
-      ) + ZW2(IIB:IIE,IJB:IJE,1:D%NKT)                                           &
-    ) / ZW1(IIB:IIE,IJB:IJE,1:D%NKT)
+    PPHI3(IIJB:IIJE,1:D%NKT)= 1. -                                          &
+    ( ( (1.+PREDR1(IIJB:IIJE,1:D%NKT)) *                                   &
+        (PRED2THR3(IIJB:IIJE,1:D%NKT) + PRED2TH3(IIJB:IIJE,1:D%NKT)) / PREDTH1(IIJB:IIJE,1:D%NKT)  &
+      ) + ZW2(IIJB:IIJE,1:D%NKT)                                           &
+    ) / ZW1(IIJB:IIJE,1:D%NKT)
   ELSE
-    ZW1(IIB:IIE,IJB:IJE,1:D%NKT) = 1. + 1.5* PREDTH1(IIB:IIE,IJB:IJE,1:D%NKT) + &
-                 0.5* PREDTH1(IIB:IIE,IJB:IJE,1:D%NKT)**2
+    ZW1(IIJB:IIJE,1:D%NKT) = 1. + 1.5* PREDTH1(IIJB:IIJE,1:D%NKT) + &
+                 0.5* PREDTH1(IIJB:IIJE,1:D%NKT)**2
 
-    ZW2(IIB:IIE,IJB:IJE,1:D%NKT) = 0.5* PRED2TH3(IIB:IIE,IJB:IJE,1:D%NKT)
+    ZW2(IIJB:IIJE,1:D%NKT) = 0.5* PRED2TH3(IIJB:IIJE,1:D%NKT)
 
-    PPHI3(IIB:IIE,IJB:IJE,1:D%NKT)= 1. -                                       &
-            (PRED2TH3(IIB:IIE,IJB:IJE,1:D%NKT) / PREDTH1(IIB:IIE,IJB:IJE,1:D%NKT) + ZW2(IIB:IIE,IJB:IJE,1:D%NKT)) &
-            / ZW1(IIB:IIE,IJB:IJE,1:D%NKT)
+    PPHI3(IIJB:IIJE,1:D%NKT)= 1. -                                       &
+            (PRED2TH3(IIJB:IIJE,1:D%NKT) / PREDTH1(IIJB:IIJE,1:D%NKT) + ZW2(IIJB:IIJE,1:D%NKT)) &
+            / ZW1(IIJB:IIJE,1:D%NKT)
   END IF
-  !$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)    
+  !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)    
 
-  !$mnh_expand_where(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)    
-  WHERE( PPHI3(IIB:IIE,IJB:IJE,1:D%NKT) <= 0. .OR. PPHI3(IIB:IIE,IJB:IJE,1:D%NKT) > CSTURB%XPHI_LIM )
-    PPHI3(IIB:IIE,IJB:IJE,1:D%NKT) = CSTURB%XPHI_LIM
+  !$mnh_expand_where(JIJ=IIJB:IIJE,JK=1:D%NKT)    
+  WHERE( PPHI3(IIJB:IIJE,1:D%NKT) <= 0. .OR. PPHI3(IIJB:IIJE,1:D%NKT) > CSTURB%XPHI_LIM )
+    PPHI3(IIJB:IIJE,1:D%NKT) = CSTURB%XPHI_LIM
   END WHERE
-  !$mnh_end_expand_where(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)    
+  !$mnh_end_expand_where(JIJ=IIJB:IIJE,JK=1:D%NKT)    
 ELSE
         !* 1DIM case
-  !$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
+  !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
   IF (OUSERV) THEN
-    PPHI3(IIB:IIE,IJB:IJE,1:D%NKT)= 1./(1.+PREDTH1(IIB:IIE,IJB:IJE,1:D%NKT)+PREDR1(IIB:IIE,IJB:IJE,1:D%NKT))
+    PPHI3(IIJB:IIJE,1:D%NKT)= 1./(1.+PREDTH1(IIJB:IIJE,1:D%NKT)+PREDR1(IIJB:IIJE,1:D%NKT))
   ELSE
-    PPHI3(IIB:IIE,IJB:IJE,1:D%NKT)= 1./(1.+PREDTH1(IIB:IIE,IJB:IJE,1:D%NKT))
+    PPHI3(IIJB:IIJE,1:D%NKT)= 1./(1.+PREDTH1(IIJB:IIJE,1:D%NKT))
   END IF
-  !$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)    
+  !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)    
 END IF
 !
-PPHI3(IIB:IIE,IJB:IJE,IKB-1)=PPHI3(IIB:IIE,IJB:IJE,IKB)
-PPHI3(IIB:IIE,IJB:IJE,IKE+1)=PPHI3(IIB:IIE,IJB:IJE,IKE)
+PPHI3(IIJB:IIJE,IKB-1)=PPHI3(IIJB:IIJE,IKB)
+PPHI3(IIJB:IIJE,IKE+1)=PPHI3(IIJB:IIJE,IKE)
 !
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:PHI3',1,ZHOOK_HANDLE)
 END SUBROUTINE PHI3
@@ -842,53 +835,53 @@ SUBROUTINE PSI_SV(D,CSTURB,KSV,PREDTH1,PREDR1,PREDS1,PRED2THS,PRED2RS,PPHI3,PPSI
   TYPE(CSTURB_t),                  INTENT(IN)      :: CSTURB
   TYPE(DIMPHYEX_t),                INTENT(IN)      :: D
   INTEGER,                         INTENT(IN)      :: KSV
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT),   INTENT(IN) :: PREDTH1
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT),   INTENT(IN) :: PREDR1
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT,KSV), INTENT(IN) :: PREDS1
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT,KSV), INTENT(IN) :: PRED2THS
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT,KSV), INTENT(IN) :: PRED2RS
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT),   INTENT(IN) :: PPHI3
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT),   INTENT(IN) :: PPSI3
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT,KSV),INTENT(OUT) :: PPSI_SV
+  REAL, DIMENSION(D%NIJT,D%NKT),   INTENT(IN) :: PREDTH1
+  REAL, DIMENSION(D%NIJT,D%NKT),   INTENT(IN) :: PREDR1
+  REAL, DIMENSION(D%NIJT,D%NKT,KSV), INTENT(IN) :: PREDS1
+  REAL, DIMENSION(D%NIJT,D%NKT,KSV), INTENT(IN) :: PRED2THS
+  REAL, DIMENSION(D%NIJT,D%NKT,KSV), INTENT(IN) :: PRED2RS
+  REAL, DIMENSION(D%NIJT,D%NKT),   INTENT(IN) :: PPHI3
+  REAL, DIMENSION(D%NIJT,D%NKT),   INTENT(IN) :: PPSI3
+  REAL, DIMENSION(D%NIJT,D%NKT,KSV),INTENT(OUT) :: PPSI_SV
 !
-  INTEGER :: IKB, IKE, IIB,IIE,IJB,IJE
-  INTEGER :: JSV,JI,JJ,JK
+  INTEGER :: IKB, IKE, IIJB,IIJE
+  INTEGER :: JSV,JIJ,JK
 !
 REAL(KIND=JPRB) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:PSI_SV',0,ZHOOK_HANDLE)
 IKB=D%NKTB
 IKE=D%NKTE
-IIE=D%NIEC
-IIB=D%NIBC
-IJE=D%NJEC
-IJB=D%NJBC
+IIJE=D%NIJE
+IIJB=D%NIJB
+
+
 !
 DO JSV=1,KSV
-  !$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)    
-  PPSI_SV(IIB:IIE,IJB:IJE,1:D%NKT,JSV) = ( 1.                                             &
+  !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)    
+  PPSI_SV(IIJB:IIJE,1:D%NKT,JSV) = ( 1.                                             &
     - (CSTURB%XCPR3+CSTURB%XCPR5) * &
-    (PRED2THS(IIB:IIE,IJB:IJE,1:D%NKT,JSV)/PREDS1(IIB:IIE,IJB:IJE,1:D%NKT,JSV)-PREDTH1(IIB:IIE,IJB:IJE,1:D%NKT)) &
+    (PRED2THS(IIJB:IIJE,1:D%NKT,JSV)/PREDS1(IIJB:IIJE,1:D%NKT,JSV)-PREDTH1(IIJB:IIJE,1:D%NKT)) &
     - (CSTURB%XCPR4+CSTURB%XCPR5) * &
-    (PRED2RS(IIB:IIE,IJB:IJE,1:D%NKT,JSV)/PREDS1(IIB:IIE,IJB:IJE,1:D%NKT,JSV)-PREDR1(IIB:IIE,IJB:IJE,1:D%NKT)) &
+    (PRED2RS(IIJB:IIJE,1:D%NKT,JSV)/PREDS1(IIJB:IIJE,1:D%NKT,JSV)-PREDR1(IIJB:IIJE,1:D%NKT)) &
     - CSTURB%XCPR3 * &
-    PREDTH1(IIB:IIE,IJB:IJE,1:D%NKT) * PPHI3(IIB:IIE,IJB:IJE,1:D%NKT) &
-    - CSTURB%XCPR4 * PREDR1(IIB:IIE,IJB:IJE,1:D%NKT) * PPSI3(IIB:IIE,IJB:IJE,1:D%NKT)                 &
-                ) / (  1. + CSTURB%XCPR5 * ( PREDTH1(IIB:IIE,IJB:IJE,1:D%NKT) + PREDR1(IIB:IIE,IJB:IJE,1:D%NKT) ) )           
+    PREDTH1(IIJB:IIJE,1:D%NKT) * PPHI3(IIJB:IIJE,1:D%NKT) &
+    - CSTURB%XCPR4 * PREDR1(IIJB:IIJE,1:D%NKT) * PPSI3(IIJB:IIJE,1:D%NKT)                 &
+                ) / (  1. + CSTURB%XCPR5 * ( PREDTH1(IIJB:IIJE,1:D%NKT) + PREDR1(IIJB:IIJE,1:D%NKT) ) )           
   
-  !$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)    
+  !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)    
 !        control of the PSI_SV positivity
-  !$mnh_expand_where(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)    
-  WHERE ( (PPSI_SV(IIB:IIE,IJB:IJE,1:D%NKT,JSV) <=0.).AND. (PREDTH1(IIB:IIE,IJB:IJE,1:D%NKT)+PREDR1(IIB:IIE,IJB:IJE,1:D%NKT))<=0.)
-    PPSI_SV(IIB:IIE,IJB:IJE,1:D%NKT,JSV)=CSTURB%XPHI_LIM
+  !$mnh_expand_where(JIJ=IIJB:IIJE,JK=1:D%NKT)    
+  WHERE ( (PPSI_SV(IIJB:IIJE,1:D%NKT,JSV) <=0.).AND. (PREDTH1(IIJB:IIJE,1:D%NKT)+PREDR1(IIJB:IIJE,1:D%NKT))<=0.)
+    PPSI_SV(IIJB:IIJE,1:D%NKT,JSV)=CSTURB%XPHI_LIM
   END WHERE
-  !$mnh_end_expand_where(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)    
+  !$mnh_end_expand_where(JIJ=IIJB:IIJE,JK=1:D%NKT)    
 
-  !$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)    
-  PPSI_SV(IIB:IIE,IJB:IJE,1:D%NKT,JSV) = MAX( 1.E-4, MIN(CSTURB%XPHI_LIM,PPSI_SV(IIB:IIE,IJB:IJE,1:D%NKT,JSV)) )
-  !$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)    
+  !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)    
+  PPSI_SV(IIJB:IIJE,1:D%NKT,JSV) = MAX( 1.E-4, MIN(CSTURB%XPHI_LIM,PPSI_SV(IIJB:IIJE,1:D%NKT,JSV)) )
+  !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)    
 !
-  PPSI_SV(IIB:IIE,IJB:IJE,IKB-1,JSV)=PPSI_SV(IIB:IIE,IJB:IJE,IKB,JSV)
-  PPSI_SV(IIB:IIE,IJB:IJE,IKE+1,JSV)=PPSI_SV(IIB:IIE,IJB:IJE,IKE,JSV)
+  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)
 END DO
 !
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:PSI_SV',1,ZHOOK_HANDLE)
@@ -897,83 +890,81 @@ END SUBROUTINE PSI_SV
 SUBROUTINE D_PHI3DTDZ_O_DDTDZ(D,CSTURB,PPHI3,PREDTH1,PREDR1,PRED2TH3,PRED2THR3,HTURBDIM,OUSERV,PD_PHI3DTDZ_O_DDTDZ)
   TYPE(CSTURB_t),                  INTENT(IN)    :: CSTURB
   TYPE(DIMPHYEX_t),                   INTENT(IN)   :: D
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PPHI3
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PREDTH1
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PREDR1
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PRED2TH3
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PRED2THR3
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PPHI3
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PREDTH1
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PREDR1
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PRED2TH3
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PRED2THR3
   CHARACTER(LEN=4),       INTENT(IN) :: HTURBDIM  ! 1DIM or 3DIM turb. scheme
   LOGICAL,                INTENT(IN) :: OUSERV    ! flag to use vapor
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT),INTENT(OUT) :: PD_PHI3DTDZ_O_DDTDZ
-  INTEGER :: IKB, IKE,JK,JJ,JI, IIB,IIE,IJB,IJE
+  REAL, DIMENSION(D%NIJT,D%NKT),INTENT(OUT) :: PD_PHI3DTDZ_O_DDTDZ
+  INTEGER :: IKB, IKE,JIJ,JK, IIJB,IIJE
 !
 REAL(KIND=JPRB) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:D_PHI3DTDZ_O_DDTDZ',0,ZHOOK_HANDLE)
 IKB=D%NKTB
 IKE=D%NKTE
-IIE=D%NIEC
-IIB=D%NIBC
-IJE=D%NJEC
-IJB=D%NJBC
+IIJE=D%NIJE
+IIJB=D%NIJB
+
+
 !
 IF (HTURBDIM=='3DIM') THEN
         !* 3DIM case
   IF (OUSERV) THEN
-   !$mnh_expand_where(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)    
+   !$mnh_expand_where(JIJ=IIJB:IIJE,JK=1:D%NKT)    
 #ifdef REPRO48
-    WHERE (PPHI3(IIB:IIE,IJB:IJE,1:D%NKT)/=CSTURB%XPHI_LIM)
+    WHERE (PPHI3(IIJB:IIJE,1:D%NKT)/=CSTURB%XPHI_LIM)
 #else
-    WHERE (PPHI3(IIB:IIE,IJB:IJE,1:D%NKT)<=CSTURB%XPHI_LIM)
+    WHERE (PPHI3(IIJB:IIJE,1:D%NKT)<=CSTURB%XPHI_LIM)
 #endif
-      PD_PHI3DTDZ_O_DDTDZ(IIB:IIE,IJB:IJE,1:D%NKT) = PPHI3(IIB:IIE,IJB:IJE,1:D%NKT)                       &
-          * (1. - PREDTH1(IIB:IIE,IJB:IJE,1:D%NKT) * (3./2.+PREDTH1(IIB:IIE,IJB:IJE,1:D%NKT)+PREDR1(IIB:IIE,IJB:IJE,1:D%NKT))   &
-               /((1.+PREDTH1(IIB:IIE,IJB:IJE,1:D%NKT)+PREDR1(IIB:IIE,IJB:IJE,1:D%NKT)) &
-               *(1.+1./2.*(PREDTH1(IIB:IIE,IJB:IJE,1:D%NKT)+PREDR1(IIB:IIE,IJB:IJE,1:D%NKT))))) &
-          + (1.+PREDR1(IIB:IIE,IJB:IJE,1:D%NKT))*(PRED2THR3(IIB:IIE,IJB:IJE,1:D%NKT)+PRED2TH3(IIB:IIE,IJB:IJE,1:D%NKT))         &
-               / (PREDTH1(IIB:IIE,IJB:IJE,1:D%NKT)*(1.+PREDTH1(IIB:IIE,IJB:IJE,1:D%NKT)+PREDR1(IIB:IIE,IJB:IJE,1:D%NKT))* &
-                 (1.+1./2.*(PREDTH1(IIB:IIE,IJB:IJE,1:D%NKT)+PREDR1(IIB:IIE,IJB:IJE,1:D%NKT)))) &
-          - (1./2.*PREDTH1(IIB:IIE,IJB:IJE,1:D%NKT)+PREDR1(IIB:IIE,IJB:IJE,1:D%NKT) &
-          * (1.+PREDTH1(IIB:IIE,IJB:IJE,1:D%NKT)+PREDR1(IIB:IIE,IJB:IJE,1:D%NKT)))           &
-               / ((1.+PREDTH1(IIB:IIE,IJB:IJE,1:D%NKT)+PREDR1(IIB:IIE,IJB:IJE,1:D%NKT))&
-               *(1.+1./2.*(PREDTH1(IIB:IIE,IJB:IJE,1:D%NKT)+PREDR1(IIB:IIE,IJB:IJE,1:D%NKT))))
+      PD_PHI3DTDZ_O_DDTDZ(IIJB:IIJE,1:D%NKT) = PPHI3(IIJB:IIJE,1:D%NKT)                       &
+          * (1. - PREDTH1(IIJB:IIJE,1:D%NKT) * (3./2.+PREDTH1(IIJB:IIJE,1:D%NKT)+PREDR1(IIJB:IIJE,1:D%NKT))   &
+               /((1.+PREDTH1(IIJB:IIJE,1:D%NKT)+PREDR1(IIJB:IIJE,1:D%NKT)) &
+               *(1.+1./2.*(PREDTH1(IIJB:IIJE,1:D%NKT)+PREDR1(IIJB:IIJE,1:D%NKT))))) &
+          + (1.+PREDR1(IIJB:IIJE,1:D%NKT))*(PRED2THR3(IIJB:IIJE,1:D%NKT)+PRED2TH3(IIJB:IIJE,1:D%NKT))         &
+               / (PREDTH1(IIJB:IIJE,1:D%NKT)*(1.+PREDTH1(IIJB:IIJE,1:D%NKT)+PREDR1(IIJB:IIJE,1:D%NKT))* &
+                 (1.+1./2.*(PREDTH1(IIJB:IIJE,1:D%NKT)+PREDR1(IIJB:IIJE,1:D%NKT)))) &
+          - (1./2.*PREDTH1(IIJB:IIJE,1:D%NKT)+PREDR1(IIJB:IIJE,1:D%NKT) &
+          * (1.+PREDTH1(IIJB:IIJE,1:D%NKT)+PREDR1(IIJB:IIJE,1:D%NKT)))           &
+               / ((1.+PREDTH1(IIJB:IIJE,1:D%NKT)+PREDR1(IIJB:IIJE,1:D%NKT))&
+               *(1.+1./2.*(PREDTH1(IIJB:IIJE,1:D%NKT)+PREDR1(IIJB:IIJE,1:D%NKT))))
     ELSEWHERE
-      PD_PHI3DTDZ_O_DDTDZ(IIB:IIE,IJB:IJE,1:D%NKT) = PPHI3(IIB:IIE,IJB:IJE,1:D%NKT)
+      PD_PHI3DTDZ_O_DDTDZ(IIJB:IIJE,1:D%NKT) = PPHI3(IIJB:IIJE,1:D%NKT)
     ENDWHERE
-   !$mnh_end_expand_where(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)    
+   !$mnh_end_expand_where(JIJ=IIJB:IIJE,JK=1:D%NKT)    
 
 !
   ELSE
-   !$mnh_expand_where(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)    
+   !$mnh_expand_where(JIJ=IIJB:IIJE,JK=1:D%NKT)    
 #ifdef REPRO48
-    WHERE (PPHI3(IIB:IIE,IJB:IJE,1:D%NKT)/=CSTURB%XPHI_LIM)
+    WHERE (PPHI3(IIJB:IIJE,1:D%NKT)/=CSTURB%XPHI_LIM)
 #else
-    WHERE (PPHI3(IIB:IIE,IJB:IJE,1:D%NKT)<=CSTURB%XPHI_LIM)
+    WHERE (PPHI3(IIJB:IIJE,1:D%NKT)<=CSTURB%XPHI_LIM)
 #endif
-    PD_PHI3DTDZ_O_DDTDZ(IIB:IIE,IJB:IJE,1:D%NKT) = PPHI3(IIB:IIE,IJB:IJE,1:D%NKT)             &
-          * (1. - PREDTH1(IIB:IIE,IJB:IJE,1:D%NKT) * (3./2.+PREDTH1(IIB:IIE,IJB:IJE,1:D%NKT))      &
-               /((1.+PREDTH1(IIB:IIE,IJB:IJE,1:D%NKT))*(1.+1./2.*PREDTH1(IIB:IIE,IJB:IJE,1:D%NKT))))        &
-          + PRED2TH3(IIB:IIE,IJB:IJE,1:D%NKT) &
-          / (PREDTH1(IIB:IIE,IJB:IJE,1:D%NKT)*(1.+PREDTH1(IIB:IIE,IJB:IJE,1:D%NKT))*(1.+1./2.*PREDTH1(IIB:IIE,IJB:IJE,1:D%NKT))) &
-          - 1./2.*PREDTH1(IIB:IIE,IJB:IJE,1:D%NKT) &
-          / ((1.+PREDTH1(IIB:IIE,IJB:IJE,1:D%NKT))*(1.+1./2.*PREDTH1(IIB:IIE,IJB:IJE,1:D%NKT)))
+    PD_PHI3DTDZ_O_DDTDZ(IIJB:IIJE,1:D%NKT) = PPHI3(IIJB:IIJE,1:D%NKT)             &
+          * (1. - PREDTH1(IIJB:IIJE,1:D%NKT) * (3./2.+PREDTH1(IIJB:IIJE,1:D%NKT))      &
+               /((1.+PREDTH1(IIJB:IIJE,1:D%NKT))*(1.+1./2.*PREDTH1(IIJB:IIJE,1:D%NKT))))        &
+          + PRED2TH3(IIJB:IIJE,1:D%NKT) &
+          / (PREDTH1(IIJB:IIJE,1:D%NKT)*(1.+PREDTH1(IIJB:IIJE,1:D%NKT))*(1.+1./2.*PREDTH1(IIJB:IIJE,1:D%NKT))) &
+          - 1./2.*PREDTH1(IIJB:IIJE,1:D%NKT) &
+          / ((1.+PREDTH1(IIJB:IIJE,1:D%NKT))*(1.+1./2.*PREDTH1(IIJB:IIJE,1:D%NKT)))
     ELSEWHERE
-      PD_PHI3DTDZ_O_DDTDZ(IIB:IIE,IJB:IJE,1:D%NKT) = PPHI3(IIB:IIE,IJB:IJE,1:D%NKT)
+      PD_PHI3DTDZ_O_DDTDZ(IIJB:IIJE,1:D%NKT) = PPHI3(IIJB:IIJE,1:D%NKT)
     ENDWHERE
-   !$mnh_end_expand_where(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)    
+   !$mnh_end_expand_where(JIJ=IIJB:IIJE,JK=1:D%NKT)    
 !
   END IF
 ELSE
         !* 1DIM case
 DO JK=1,D%NKT
-  DO JJ=IJB,IJE
-    DO JI=IIB,IIE
-      IF ( ABS(PPHI3(JI,JJ,JK)-CSTURB%XPHI_LIM) < 1.E-12 ) THEN
-         PD_PHI3DTDZ_O_DDTDZ(JI,JJ,JK)=PPHI3(JI,JJ,JK)*&
-&       (1. - PREDTH1(JI,JJ,JK)*PPHI3(JI,JJ,JK))
+    DO JIJ=IIJB,IIJE
+      IF ( ABS(PPHI3(JIJ,JK)-CSTURB%XPHI_LIM) < 1.E-12 ) THEN
+         PD_PHI3DTDZ_O_DDTDZ(JIJ,JK)=PPHI3(JIJ,JK)*&
+&       (1. - PREDTH1(JIJ,JK)*PPHI3(JIJ,JK))
       ELSE
-         PD_PHI3DTDZ_O_DDTDZ(JI,JJ,JK)=PPHI3(JI,JJ,JK)
+         PD_PHI3DTDZ_O_DDTDZ(JIJ,JK)=PPHI3(JIJ,JK)
       ENDIF
-    ENDDO
   ENDDO
 ENDDO
 END IF
@@ -984,8 +975,8 @@ END IF
 CALL SMOOTH_TURB_FUNCT(D,CSTURB,PPHI3,PPHI3,PD_PHI3DTDZ_O_DDTDZ)
 #endif
 !
-PD_PHI3DTDZ_O_DDTDZ(IIB:IIE,IJB:IJE,IKB-1)=PD_PHI3DTDZ_O_DDTDZ(IIB:IIE,IJB:IJE,IKB)
-PD_PHI3DTDZ_O_DDTDZ(IIB:IIE,IJB:IJE,IKE+1)=PD_PHI3DTDZ_O_DDTDZ(IIB:IIE,IJB:IJE,IKE)
+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)
 !
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:D_PHI3DTDZ_O_DDTDZ',1,ZHOOK_HANDLE)
 END SUBROUTINE D_PHI3DTDZ_O_DDTDZ
@@ -993,67 +984,67 @@ END SUBROUTINE D_PHI3DTDZ_O_DDTDZ
 SUBROUTINE D_PHI3DRDZ_O_DDRDZ(D,CSTURB,PPHI3,PREDTH1,PREDR1,PRED2TH3,PRED2THR3,HTURBDIM,OUSERV,PD_PHI3DRDZ_O_DDRDZ)
   TYPE(CSTURB_t),                     INTENT(IN) :: CSTURB
   TYPE(DIMPHYEX_t),                   INTENT(IN) :: D
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PPHI3
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PREDTH1
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PREDR1
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PRED2TH3
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PRED2THR3
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PPHI3
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PREDTH1
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PREDR1
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PRED2TH3
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PRED2THR3
   CHARACTER(LEN=4),       INTENT(IN) :: HTURBDIM  ! 1DIM or 3DIM turb. scheme
   LOGICAL,                INTENT(IN) :: OUSERV    ! flag to use vapor
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT),INTENT(OUT) :: PD_PHI3DRDZ_O_DDRDZ
-  INTEGER :: IKB, IKE, JI,JJ,JK, IIB,IIE,IJB,IJE
+  REAL, DIMENSION(D%NIJT,D%NKT),INTENT(OUT) :: PD_PHI3DRDZ_O_DDRDZ
+  INTEGER :: IKB, IKE, JIJ,JK, IIJB,IIJE
 !
 REAL(KIND=JPRB) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:D_PHI3DRDZ_O_DDRDZ',0,ZHOOK_HANDLE)
 IKB=D%NKTB
 IKE=D%NKTE
-IIE=D%NIEC
-IIB=D%NIBC
-IJE=D%NJEC
-IJB=D%NJBC
+IIJE=D%NIJE
+IIJB=D%NIJB
+
+
 !
 !
 IF (HTURBDIM=='3DIM') THEN
         !* 3DIM case
   IF (OUSERV) THEN
-   !$mnh_expand_where(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)    
+   !$mnh_expand_where(JIJ=IIJB:IIJE,JK=1:D%NKT)    
 #ifdef REPRO48
-    WHERE (PPHI3(IIB:IIE,IJB:IJE,1:D%NKT)/=CSTURB%XPHI_LIM)
+    WHERE (PPHI3(IIJB:IIJE,1:D%NKT)/=CSTURB%XPHI_LIM)
 #else
-    WHERE (PPHI3(IIB:IIE,IJB:IJE,1:D%NKT)<=CSTURB%XPHI_LIM)
+    WHERE (PPHI3(IIJB:IIJE,1:D%NKT)<=CSTURB%XPHI_LIM)
 #endif
-      PD_PHI3DRDZ_O_DDRDZ(IIB:IIE,IJB:IJE,1:D%NKT) = PPHI3(IIB:IIE,IJB:IJE,1:D%NKT) &
-      * (1.-PREDR1(IIB:IIE,IJB:IJE,1:D%NKT)*(3./2.+PREDTH1(IIB:IIE,IJB:IJE,1:D%NKT)+PREDR1(IIB:IIE,IJB:IJE,1:D%NKT)) &
-      / ((1.+PREDTH1(IIB:IIE,IJB:IJE,1:D%NKT)+PREDR1(IIB:IIE,IJB:IJE,1:D%NKT)) & 
-      *(1.+1./2.*(PREDTH1(IIB:IIE,IJB:IJE,1:D%NKT)+PREDR1(IIB:IIE,IJB:IJE,1:D%NKT)))))  &
-      - PREDR1(IIB:IIE,IJB:IJE,1:D%NKT) &
-      * (PRED2THR3(IIB:IIE,IJB:IJE,1:D%NKT)+PRED2TH3(IIB:IIE,IJB:IJE,1:D%NKT)) / (PREDTH1(IIB:IIE,IJB:IJE,1:D%NKT)         &
-      * (1.+PREDTH1(IIB:IIE,IJB:IJE,1:D%NKT)+PREDR1(IIB:IIE,IJB:IJE,1:D%NKT))*&
-      (1.+1./2.*(PREDTH1(IIB:IIE,IJB:IJE,1:D%NKT)+PREDR1(IIB:IIE,IJB:IJE,1:D%NKT))))    &
-      + PREDR1(IIB:IIE,IJB:IJE,1:D%NKT) * (1./2.+PREDTH1(IIB:IIE,IJB:IJE,1:D%NKT)+PREDR1(IIB:IIE,IJB:IJE,1:D%NKT))         &
-      / ((1.+PREDTH1(IIB:IIE,IJB:IJE,1:D%NKT)+PREDR1(IIB:IIE,IJB:IJE,1:D%NKT))&
-      *(1.+1./2.*(PREDTH1(IIB:IIE,IJB:IJE,1:D%NKT)+PREDR1(IIB:IIE,IJB:IJE,1:D%NKT))))
+      PD_PHI3DRDZ_O_DDRDZ(IIJB:IIJE,1:D%NKT) = PPHI3(IIJB:IIJE,1:D%NKT) &
+      * (1.-PREDR1(IIJB:IIJE,1:D%NKT)*(3./2.+PREDTH1(IIJB:IIJE,1:D%NKT)+PREDR1(IIJB:IIJE,1:D%NKT)) &
+      / ((1.+PREDTH1(IIJB:IIJE,1:D%NKT)+PREDR1(IIJB:IIJE,1:D%NKT)) & 
+      *(1.+1./2.*(PREDTH1(IIJB:IIJE,1:D%NKT)+PREDR1(IIJB:IIJE,1:D%NKT)))))  &
+      - PREDR1(IIJB:IIJE,1:D%NKT) &
+      * (PRED2THR3(IIJB:IIJE,1:D%NKT)+PRED2TH3(IIJB:IIJE,1:D%NKT)) / (PREDTH1(IIJB:IIJE,1:D%NKT)         &
+      * (1.+PREDTH1(IIJB:IIJE,1:D%NKT)+PREDR1(IIJB:IIJE,1:D%NKT))*&
+      (1.+1./2.*(PREDTH1(IIJB:IIJE,1:D%NKT)+PREDR1(IIJB:IIJE,1:D%NKT))))    &
+      + PREDR1(IIJB:IIJE,1:D%NKT) * (1./2.+PREDTH1(IIJB:IIJE,1:D%NKT)+PREDR1(IIJB:IIJE,1:D%NKT))         &
+      / ((1.+PREDTH1(IIJB:IIJE,1:D%NKT)+PREDR1(IIJB:IIJE,1:D%NKT))&
+      *(1.+1./2.*(PREDTH1(IIJB:IIJE,1:D%NKT)+PREDR1(IIJB:IIJE,1:D%NKT))))
     ELSEWHERE
-      PD_PHI3DRDZ_O_DDRDZ(IIB:IIE,IJB:IJE,1:D%NKT) = PPHI3(IIB:IIE,IJB:IJE,1:D%NKT)
+      PD_PHI3DRDZ_O_DDRDZ(IIJB:IIJE,1:D%NKT) = PPHI3(IIJB:IIJE,1:D%NKT)
     END WHERE
-   !$mnh_end_expand_where(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)    
+   !$mnh_end_expand_where(JIJ=IIJB:IIJE,JK=1:D%NKT)    
   ELSE
-    PD_PHI3DRDZ_O_DDRDZ(IIB:IIE,IJB:IJE,1:D%NKT) = PPHI3(IIB:IIE,IJB:IJE,1:D%NKT)
+    PD_PHI3DRDZ_O_DDRDZ(IIJB:IIJE,1:D%NKT) = PPHI3(IIJB:IIJE,1:D%NKT)
   END IF
 ELSE
         !* 1DIM case
-    !$mnh_expand_where(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)    
+    !$mnh_expand_where(JIJ=IIJB:IIJE,JK=1:D%NKT)    
 #ifdef REPRO48
-    WHERE (PPHI3(IIB:IIE,IJB:IJE,1:D%NKT)/=CSTURB%XPHI_LIM)
+    WHERE (PPHI3(IIJB:IIJE,1:D%NKT)/=CSTURB%XPHI_LIM)
 #else
-    WHERE (PPHI3(IIB:IIE,IJB:IJE,1:D%NKT)<=CSTURB%XPHI_LIM)
+    WHERE (PPHI3(IIJB:IIJE,1:D%NKT)<=CSTURB%XPHI_LIM)
 #endif
-    PD_PHI3DRDZ_O_DDRDZ(IIB:IIE,IJB:IJE,1:D%NKT) = PPHI3(IIB:IIE,IJB:IJE,1:D%NKT)                           &
-          * (1. - PREDR1(IIB:IIE,IJB:IJE,1:D%NKT)*PPHI3(IIB:IIE,IJB:IJE,1:D%NKT))
+    PD_PHI3DRDZ_O_DDRDZ(IIJB:IIJE,1:D%NKT) = PPHI3(IIJB:IIJE,1:D%NKT)                           &
+          * (1. - PREDR1(IIJB:IIJE,1:D%NKT)*PPHI3(IIJB:IIJE,1:D%NKT))
   ELSEWHERE
-    PD_PHI3DRDZ_O_DDRDZ(IIB:IIE,IJB:IJE,1:D%NKT) = PPHI3(IIB:IIE,IJB:IJE,1:D%NKT)
+    PD_PHI3DRDZ_O_DDRDZ(IIJB:IIJE,1:D%NKT) = PPHI3(IIJB:IIJE,1:D%NKT)
   END WHERE
-  !$mnh_end_expand_where(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)    
+  !$mnh_end_expand_where(JIJ=IIJB:IIJE,JK=1:D%NKT)    
 END IF
 !
 #ifdef REPRO48
@@ -1062,8 +1053,8 @@ END IF
 CALL SMOOTH_TURB_FUNCT(D,CSTURB,PPHI3,PPHI3,PD_PHI3DRDZ_O_DDRDZ)
 #endif
 !
-PD_PHI3DRDZ_O_DDRDZ(IIB:IIE,IJB:IJE,IKB-1)=PD_PHI3DRDZ_O_DDRDZ(IIB:IIE,IJB:IJE,IKB)
-PD_PHI3DRDZ_O_DDRDZ(IIB:IIE,IJB:IJE,IKE+1)=PD_PHI3DRDZ_O_DDRDZ(IIB:IIE,IJB:IJE,IKE)
+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)
 !
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:D_PHI3DRDZ_O_DDRDZ',1,ZHOOK_HANDLE)
 END SUBROUTINE D_PHI3DRDZ_O_DDRDZ
@@ -1071,49 +1062,49 @@ END SUBROUTINE D_PHI3DRDZ_O_DDRDZ
 SUBROUTINE D_PHI3DTDZ2_O_DDTDZ(D,CSTURB,PPHI3,PREDTH1,PREDR1,PRED2TH3,PRED2THR3,PDTDZ,HTURBDIM,OUSERV,PD_PHI3DTDZ2_O_DDTDZ)
   TYPE(CSTURB_t),                     INTENT(IN) :: CSTURB
   TYPE(DIMPHYEX_t),                   INTENT(IN) :: D
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PPHI3
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PREDTH1
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PREDR1
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PRED2TH3
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PRED2THR3
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PDTDZ
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PPHI3
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PREDTH1
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PREDR1
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PRED2TH3
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PRED2THR3
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PDTDZ
   CHARACTER(LEN=4),       INTENT(IN) :: HTURBDIM  ! 1DIM or 3DIM turb. scheme
   LOGICAL,                INTENT(IN) :: OUSERV    ! flag to use vapor
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT),INTENT(OUT) :: PD_PHI3DTDZ2_O_DDTDZ
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT) :: ZWORK1 ! working array
-  INTEGER :: IKB, IKE, JI,JJ,JK, IIB,IIE,IJB,IJE
+  REAL, DIMENSION(D%NIJT,D%NKT),INTENT(OUT) :: PD_PHI3DTDZ2_O_DDTDZ
+  REAL, DIMENSION(D%NIJT,D%NKT) :: ZWORK1 ! working array
+  INTEGER :: IKB, IKE, JIJ,JK, IIJB,IIJE
 !
 REAL(KIND=JPRB) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:D_PHI3DTDZ2_O_DDTDZ',0,ZHOOK_HANDLE)
 IKB=D%NKTB
 IKE=D%NKTE
-IIE=D%NIEC
-IIB=D%NIBC
-IJE=D%NJEC
-IJB=D%NJBC
+IIJE=D%NIJE
+IIJB=D%NIJB
+
+
 !
 !
 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(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
-   PD_PHI3DTDZ2_O_DDTDZ(IIB:IIE,IJB:IJE,1:D%NKT) = PDTDZ(IIB:IIE,IJB:IJE,1:D%NKT) &
-   * (PPHI3(IIB:IIE,IJB:IJE,1:D%NKT) +  ZWORK1(IIB:IIE,IJB:IJE,1:D%NKT))
-   !$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
+   !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
+   PD_PHI3DTDZ2_O_DDTDZ(IIJB:IIJE,1:D%NKT) = PDTDZ(IIJB:IIJE,1:D%NKT) &
+   * (PPHI3(IIJB:IIJE,1:D%NKT) +  ZWORK1(IIJB:IIJE,1:D%NKT))
+   !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
 ELSE
         !* 1DIM case
-    !$mnh_expand_where(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)    
+    !$mnh_expand_where(JIJ=IIJB:IIJE,JK=1:D%NKT)    
 #ifdef REPRO48
-    WHERE (PPHI3(IIB:IIE,IJB:IJE,1:D%NKT)/=CSTURB%XPHI_LIM)
+    WHERE (PPHI3(IIJB:IIJE,1:D%NKT)/=CSTURB%XPHI_LIM)
 #else
-    WHERE (PPHI3(IIB:IIE,IJB:IJE,1:D%NKT)<=CSTURB%XPHI_LIM)
+    WHERE (PPHI3(IIJB:IIJE,1:D%NKT)<=CSTURB%XPHI_LIM)
 #endif
-      PD_PHI3DTDZ2_O_DDTDZ(IIB:IIE,IJB:IJE,1:D%NKT) = PPHI3(IIB:IIE,IJB:IJE,1:D%NKT)*PDTDZ(IIB:IIE,IJB:IJE,1:D%NKT)             &
-          * (2. - PREDTH1(IIB:IIE,IJB:IJE,1:D%NKT)*PPHI3(IIB:IIE,IJB:IJE,1:D%NKT))
+      PD_PHI3DTDZ2_O_DDTDZ(IIJB:IIJE,1:D%NKT) = PPHI3(IIJB:IIJE,1:D%NKT)*PDTDZ(IIJB:IIJE,1:D%NKT)             &
+          * (2. - PREDTH1(IIJB:IIJE,1:D%NKT)*PPHI3(IIJB:IIJE,1:D%NKT))
     ELSEWHERE
-      PD_PHI3DTDZ2_O_DDTDZ(IIB:IIE,IJB:IJE,1:D%NKT) = PPHI3(IIB:IIE,IJB:IJE,1:D%NKT) * 2. * PDTDZ(IIB:IIE,IJB:IJE,1:D%NKT)
+      PD_PHI3DTDZ2_O_DDTDZ(IIJB:IIJE,1:D%NKT) = PPHI3(IIJB:IIJE,1:D%NKT) * 2. * PDTDZ(IIJB:IIJE,1:D%NKT)
     END WHERE
-    !$mnh_end_expand_where(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)    
+    !$mnh_end_expand_where(JIJ=IIJB:IIJE,JK=1:D%NKT)    
 END IF
 !
 #ifdef REPRO48
@@ -1123,8 +1114,8 @@ CALL SMOOTH_TURB_FUNCT(D,CSTURB,PPHI3,PPHI3*2.*PDTDZ,PD_PHI3DTDZ2_O_DDTDZ)
 #endif
 !
 !
-PD_PHI3DTDZ2_O_DDTDZ(IIB:IIE,IJB:IJE,IKB-1)=PD_PHI3DTDZ2_O_DDTDZ(IIB:IIE,IJB:IJE,IKB)
-PD_PHI3DTDZ2_O_DDTDZ(IIB:IIE,IJB:IJE,IKE+1)=PD_PHI3DTDZ2_O_DDTDZ(IIB:IIE,IJB:IJE,IKE)
+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)
 !
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:D_PHI3DTDZ2_O_DDTDZ',1,ZHOOK_HANDLE)
 END SUBROUTINE D_PHI3DTDZ2_O_DDTDZ
@@ -1132,30 +1123,30 @@ END SUBROUTINE D_PHI3DTDZ2_O_DDTDZ
 SUBROUTINE M3_WTH_WTH2(D,CSTURB,PREDTH1,PREDR1,PD,PBLL_O_E,PETHETA,PM3_WTH_WTH2)
   TYPE(DIMPHYEX_t),                   INTENT(IN) :: D
   TYPE(CSTURB_t),                     INTENT(IN) :: CSTURB
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PREDTH1
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PREDR1
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PD
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PBLL_O_E
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PETHETA
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT),INTENT(OUT) :: PM3_WTH_WTH2
-  INTEGER :: IKB, IKE, JI,JJ,JK, IIB,IIE,IJB,IJE
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PREDTH1
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PREDR1
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PD
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PBLL_O_E
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PETHETA
+  REAL, DIMENSION(D%NIJT,D%NKT),INTENT(OUT) :: PM3_WTH_WTH2
+  INTEGER :: IKB, IKE, JIJ,JK, IIJB,IIJE
 !
 REAL(KIND=JPRB) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:M3_WTH_WTH2',0,ZHOOK_HANDLE)
 IKB=D%NKTB
 IKE=D%NKTE
-IIE=D%NIEC
-IIB=D%NIBC
-IJE=D%NJEC
-IJB=D%NJBC
-
-!$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
-PM3_WTH_WTH2(IIB:IIE,IJB:IJE,1:D%NKT) = CSTURB%XCSHF*PBLL_O_E(IIB:IIE,IJB:IJE,1:D%NKT)&
-                   * PETHETA(IIB:IIE,IJB:IJE,1:D%NKT)*0.5/CSTURB%XCTD        &
-                   * (1.+0.5*PREDTH1(IIB:IIE,IJB:IJE,1:D%NKT)+PREDR1(IIB:IIE,IJB:IJE,1:D%NKT)) / PD(IIB:IIE,IJB:IJE,1:D%NKT)
-!$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
-PM3_WTH_WTH2(IIB:IIE,IJB:IJE,IKB-1)=PM3_WTH_WTH2(IIB:IIE,IJB:IJE,IKB)
-PM3_WTH_WTH2(IIB:IIE,IJB:IJE,IKE+1)=PM3_WTH_WTH2(IIB:IIE,IJB:IJE,IKE)
+IIJE=D%NIJE
+IIJB=D%NIJB
+
+
+
+!$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
+PM3_WTH_WTH2(IIJB:IIJE,1:D%NKT) = CSTURB%XCSHF*PBLL_O_E(IIJB:IIJE,1:D%NKT)&
+                   * PETHETA(IIJB:IIJE,1:D%NKT)*0.5/CSTURB%XCTD        &
+                   * (1.+0.5*PREDTH1(IIJB:IIJE,1:D%NKT)+PREDR1(IIJB:IIJE,1:D%NKT)) / PD(IIJB:IIJE,1:D%NKT)
+!$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
+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)
 !
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:M3_WTH_WTH2',1,ZHOOK_HANDLE)
 END SUBROUTINE M3_WTH_WTH2
@@ -1163,34 +1154,34 @@ END SUBROUTINE M3_WTH_WTH2
 SUBROUTINE D_M3_WTH_WTH2_O_DDTDZ(D,CSTURB,PM3_WTH_WTH2,PREDTH1,PREDR1,PD,PBLL_O_E,PETHETA,PD_M3_WTH_WTH2_O_DDTDZ)
   TYPE(DIMPHYEX_t),                   INTENT(IN) :: D
   TYPE(CSTURB_t),                     INTENT(IN) :: CSTURB
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PM3_WTH_WTH2
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PREDTH1
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PREDR1
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PD
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PBLL_O_E
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PETHETA
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT),INTENT(OUT) :: PD_M3_WTH_WTH2_O_DDTDZ
-  INTEGER :: IKB, IKE, JI,JJ,JK, IIB,IIE,IJB,IJE
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PM3_WTH_WTH2
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PREDTH1
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PREDR1
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PD
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PBLL_O_E
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PETHETA
+  REAL, DIMENSION(D%NIJT,D%NKT),INTENT(OUT) :: PD_M3_WTH_WTH2_O_DDTDZ
+  INTEGER :: IKB, IKE, JIJ,JK, IIJB,IIJE
 !
 REAL(KIND=JPRB) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:D_M3_WTH_WTH2_O_DDTDZ',0,ZHOOK_HANDLE)
 IKB=D%NKTB
 IKE=D%NKTE
-IIE=D%NIEC
-IIB=D%NIBC
-IJE=D%NJEC
-IJB=D%NJBC
-
-!$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
-PD_M3_WTH_WTH2_O_DDTDZ(IIB:IIE,IJB:IJE,1:D%NKT) = &
-(0.5*CSTURB%XCSHF*PBLL_O_E(IIB:IIE,IJB:IJE,1:D%NKT)*PETHETA(IIB:IIE,IJB:IJE,1:D%NKT)*0.5/CSTURB%XCTD/PD(IIB:IIE,IJB:IJE,1:D%NKT) &
-- PM3_WTH_WTH2(IIB:IIE,IJB:IJE,1:D%NKT)/PD(IIB:IIE,IJB:IJE,1:D%NKT)&
-*(1.5+PREDTH1(IIB:IIE,IJB:IJE,1:D%NKT)+PREDR1(IIB:IIE,IJB:IJE,1:D%NKT))  )&
-* PBLL_O_E(IIB:IIE,IJB:IJE,1:D%NKT) * PETHETA(IIB:IIE,IJB:IJE,1:D%NKT) * CSTURB%XCTV
-!$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
-!
-PD_M3_WTH_WTH2_O_DDTDZ(IIB:IIE,IJB:IJE,IKB-1)=PD_M3_WTH_WTH2_O_DDTDZ(IIB:IIE,IJB:IJE,IKB)
-PD_M3_WTH_WTH2_O_DDTDZ(IIB:IIE,IJB:IJE,IKE+1)=PD_M3_WTH_WTH2_O_DDTDZ(IIB:IIE,IJB:IJE,IKE)
+IIJE=D%NIJE
+IIJB=D%NIJB
+
+
+
+!$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
+PD_M3_WTH_WTH2_O_DDTDZ(IIJB:IIJE,1:D%NKT) = &
+(0.5*CSTURB%XCSHF*PBLL_O_E(IIJB:IIJE,1:D%NKT)*PETHETA(IIJB:IIJE,1:D%NKT)*0.5/CSTURB%XCTD/PD(IIJB:IIJE,1:D%NKT) &
+- PM3_WTH_WTH2(IIJB:IIJE,1:D%NKT)/PD(IIJB:IIJE,1:D%NKT)&
+*(1.5+PREDTH1(IIJB:IIJE,1:D%NKT)+PREDR1(IIJB:IIJE,1:D%NKT))  )&
+* PBLL_O_E(IIJB:IIJE,1:D%NKT) * PETHETA(IIJB:IIJE,1:D%NKT) * CSTURB%XCTV
+!$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
+!
+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)
 !
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:D_M3_WTH_WTH2_O_DDTDZ',1,ZHOOK_HANDLE)
 END SUBROUTINE D_M3_WTH_WTH2_O_DDTDZ
@@ -1198,32 +1189,32 @@ END SUBROUTINE D_M3_WTH_WTH2_O_DDTDZ
 SUBROUTINE M3_WTH_W2TH(D,CSTURB,PREDTH1,PREDR1,PD,PKEFF,PTKE,PM3_WTH_W2TH)
   TYPE(DIMPHYEX_t),                   INTENT(IN) :: D
   TYPE(CSTURB_t),                     INTENT(IN) :: CSTURB
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PREDTH1
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PREDR1
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PD
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PKEFF
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PTKE
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT),INTENT(OUT) :: PM3_WTH_W2TH
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT) :: ZWORK1 ! working array
-  INTEGER :: IKB, IKE, JI,JJ,JK, IIB,IIE,IJB,IJE
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PREDTH1
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PREDR1
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PD
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PKEFF
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PTKE
+  REAL, DIMENSION(D%NIJT,D%NKT),INTENT(OUT) :: PM3_WTH_W2TH
+  REAL, DIMENSION(D%NIJT,D%NKT) :: ZWORK1 ! working array
+  INTEGER :: IKB, IKE, JIJ,JK, IIJB,IIJE
 !
 REAL(KIND=JPRB) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:M3_WTH_W2TH',0,ZHOOK_HANDLE)
 IKB=D%NKTB
 IKE=D%NKTE
-IIE=D%NIEC
-IIB=D%NIBC
-IJE=D%NJEC
-IJB=D%NJBC
+IIJE=D%NIJE
+IIJB=D%NIJB
+
+
 CALL MZM_PHY(D,PTKE,ZWORK1)
-!$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
-PM3_WTH_W2TH(IIB:IIE,IJB:IJE,1:D%NKT) = CSTURB%XCSHF*PKEFF(IIB:IIE,IJB:IJE,1:D%NKT)*1.5/ZWORK1(IIB:IIE,IJB:IJE,1:D%NKT) &
-  * (1. - 0.5*PREDR1(IIB:IIE,IJB:IJE,1:D%NKT)*(1.+PREDR1(IIB:IIE,IJB:IJE,1:D%NKT))/PD(IIB:IIE,IJB:IJE,1:D%NKT) ) &
-  / (1.+PREDTH1(IIB:IIE,IJB:IJE,1:D%NKT))
-!$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
+!$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
+PM3_WTH_W2TH(IIJB:IIJE,1:D%NKT) = CSTURB%XCSHF*PKEFF(IIJB:IIJE,1:D%NKT)*1.5/ZWORK1(IIJB:IIJE,1:D%NKT) &
+  * (1. - 0.5*PREDR1(IIJB:IIJE,1:D%NKT)*(1.+PREDR1(IIJB:IIJE,1:D%NKT))/PD(IIJB:IIJE,1:D%NKT) ) &
+  / (1.+PREDTH1(IIJB:IIJE,1:D%NKT))
+!$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
 !
-PM3_WTH_W2TH(IIB:IIE,IJB:IJE,IKB-1)=PM3_WTH_W2TH(IIB:IIE,IJB:IJE,IKB)
-PM3_WTH_W2TH(IIB:IIE,IJB:IJE,IKE+1)=PM3_WTH_W2TH(IIB:IIE,IJB:IJE,IKE)
+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)
 !
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:M3_WTH_W2TH',1,ZHOOK_HANDLE)
 END SUBROUTINE M3_WTH_W2TH
@@ -1231,38 +1222,38 @@ END SUBROUTINE M3_WTH_W2TH
 SUBROUTINE D_M3_WTH_W2TH_O_DDTDZ(D,CSTURB,PREDTH1,PREDR1,PD,PBLL_O_E,PETHETA,PKEFF,PTKE,PD_M3_WTH_W2TH_O_DDTDZ)
   TYPE(DIMPHYEX_t),                   INTENT(IN) :: D
   TYPE(CSTURB_t),                     INTENT(IN) :: CSTURB
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PREDTH1
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PREDR1
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PD
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PBLL_O_E
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PETHETA
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PKEFF
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PTKE
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT),INTENT(OUT) :: PD_M3_WTH_W2TH_O_DDTDZ
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT) :: ZWORK1 ! working array
-  INTEGER :: IKB, IKE, JI,JJ,JK, IIB,IIE,IJB,IJE
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PREDTH1
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PREDR1
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PD
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PBLL_O_E
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PETHETA
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PKEFF
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PTKE
+  REAL, DIMENSION(D%NIJT,D%NKT),INTENT(OUT) :: PD_M3_WTH_W2TH_O_DDTDZ
+  REAL, DIMENSION(D%NIJT,D%NKT) :: ZWORK1 ! working array
+  INTEGER :: IKB, IKE, JIJ,JK, IIJB,IIJE
 !
 REAL(KIND=JPRB) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:D_M3_WTH_W2TH_O_DDTDZ',0,ZHOOK_HANDLE)
 IKB=D%NKTB
 IKE=D%NKTE
-IIE=D%NIEC
-IIB=D%NIBC
-IJE=D%NJEC
-IJB=D%NJBC
+IIJE=D%NIJE
+IIJB=D%NIJB
+
+
 
 CALL MZM_PHY(D,PTKE,ZWORK1)
-!$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
-PD_M3_WTH_W2TH_O_DDTDZ(IIB:IIE,IJB:IJE,1:D%NKT) = &
- - CSTURB%XCSHF*PKEFF(IIB:IIE,IJB:IJE,1:D%NKT)*1.5/ZWORK1(IIB:IIE,IJB:IJE,1:D%NKT)/(1.+PREDTH1(IIB:IIE,IJB:IJE,1:D%NKT))**2 &
- * CSTURB%XCTV*PBLL_O_E(IIB:IIE,IJB:IJE,1:D%NKT)*PETHETA(IIB:IIE,IJB:IJE,1:D%NKT)  &
- * (1. - 0.5*PREDR1(IIB:IIE,IJB:IJE,1:D%NKT)*(1.+PREDR1(IIB:IIE,IJB:IJE,1:D%NKT))/PD(IIB:IIE,IJB:IJE,1:D%NKT)* &
-   ( 1.+(1.+PREDTH1(IIB:IIE,IJB:IJE,1:D%NKT))*(1.5+PREDR1(IIB:IIE,IJB:IJE,1:D%NKT)+PREDTH1(IIB:IIE,IJB:IJE,1:D%NKT))&
-   /PD(IIB:IIE,IJB:IJE,1:D%NKT)) )
-!$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
-!
-PD_M3_WTH_W2TH_O_DDTDZ(IIB:IIE,IJB:IJE,IKB-1)=PD_M3_WTH_W2TH_O_DDTDZ(IIB:IIE,IJB:IJE,IKB)
-PD_M3_WTH_W2TH_O_DDTDZ(IIB:IIE,IJB:IJE,IKE+1)=PD_M3_WTH_W2TH_O_DDTDZ(IIB:IIE,IJB:IJE,IKE)
+!$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
+PD_M3_WTH_W2TH_O_DDTDZ(IIJB:IIJE,1:D%NKT) = &
+ - CSTURB%XCSHF*PKEFF(IIJB:IIJE,1:D%NKT)*1.5/ZWORK1(IIJB:IIJE,1:D%NKT)/(1.+PREDTH1(IIJB:IIJE,1:D%NKT))**2 &
+ * CSTURB%XCTV*PBLL_O_E(IIJB:IIJE,1:D%NKT)*PETHETA(IIJB:IIJE,1:D%NKT)  &
+ * (1. - 0.5*PREDR1(IIJB:IIJE,1:D%NKT)*(1.+PREDR1(IIJB:IIJE,1:D%NKT))/PD(IIJB:IIJE,1:D%NKT)* &
+   ( 1.+(1.+PREDTH1(IIJB:IIJE,1:D%NKT))*(1.5+PREDR1(IIJB:IIJE,1:D%NKT)+PREDTH1(IIJB:IIJE,1:D%NKT))&
+   /PD(IIJB:IIJE,1:D%NKT)) )
+!$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
+!
+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)
 !
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:D_M3_WTH_W2TH_O_DDTDZ',1,ZHOOK_HANDLE)
 END SUBROUTINE D_M3_WTH_W2TH_O_DDTDZ
@@ -1270,34 +1261,34 @@ END SUBROUTINE D_M3_WTH_W2TH_O_DDTDZ
 SUBROUTINE M3_WTH_W2R(D,CSTURB,PD,PKEFF,PTKE,PBLL_O_E,PEMOIST,PDTDZ,PM3_WTH_W2R)
   TYPE(DIMPHYEX_t),                   INTENT(IN) :: D
   TYPE(CSTURB_t),                     INTENT(IN) :: CSTURB
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PD
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PKEFF
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PTKE
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PBLL_O_E
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PEMOIST
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PDTDZ
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT),INTENT(OUT) :: PM3_WTH_W2R
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT) :: ZWORK1 ! working array
-  INTEGER :: IKB, IKE, JI,JJ,JK,IIB,IIE,IJB,IJE
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PD
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PKEFF
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PTKE
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PBLL_O_E
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PEMOIST
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PDTDZ
+  REAL, DIMENSION(D%NIJT,D%NKT),INTENT(OUT) :: PM3_WTH_W2R
+  REAL, DIMENSION(D%NIJT,D%NKT) :: ZWORK1 ! working array
+  INTEGER :: IKB, IKE, JIJ,JK,IIJB,IIJE
 !
 REAL(KIND=JPRB) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:M3_WTH_W2R',0,ZHOOK_HANDLE)
 IKB=D%NKTB
 IKE=D%NKTE
-IIE=D%NIEC
-IIB=D%NIBC
-IJE=D%NJEC
-IJB=D%NJBC
+IIJE=D%NIJE
+IIJB=D%NIJB
+
+
 
 CALL MZM_PHY(D,PTKE,ZWORK1)
-!$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
-PM3_WTH_W2R(IIB:IIE,IJB:IJE,1:D%NKT) = &
-  - CSTURB%XCSHF*PKEFF(IIB:IIE,IJB:IJE,1:D%NKT)*0.75*CSTURB%XCTV*PBLL_O_E(IIB:IIE,IJB:IJE,1:D%NKT) &
-  /ZWORK1(IIB:IIE,IJB:IJE,1:D%NKT)*PEMOIST(IIB:IIE,IJB:IJE,1:D%NKT)*PDTDZ(IIB:IIE,IJB:IJE,1:D%NKT)/PD(IIB:IIE,IJB:IJE,1:D%NKT)
-!$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
+!$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
+PM3_WTH_W2R(IIJB:IIJE,1:D%NKT) = &
+  - CSTURB%XCSHF*PKEFF(IIJB:IIJE,1:D%NKT)*0.75*CSTURB%XCTV*PBLL_O_E(IIJB:IIJE,1:D%NKT) &
+  /ZWORK1(IIJB:IIJE,1:D%NKT)*PEMOIST(IIJB:IIJE,1:D%NKT)*PDTDZ(IIJB:IIJE,1:D%NKT)/PD(IIJB:IIJE,1:D%NKT)
+!$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
 !
-PM3_WTH_W2R(IIB:IIE,IJB:IJE,IKB-1)=PM3_WTH_W2R(IIB:IIE,IJB:IJE,IKB)
-PM3_WTH_W2R(IIB:IIE,IJB:IJE,IKE+1)=PM3_WTH_W2R(IIB:IIE,IJB:IJE,IKE)
+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)
 !
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:M3_WTH_W2R',1,ZHOOK_HANDLE)
 END SUBROUTINE M3_WTH_W2R
@@ -1305,37 +1296,37 @@ END SUBROUTINE M3_WTH_W2R
 SUBROUTINE D_M3_WTH_W2R_O_DDTDZ(D,CSTURB,PREDTH1,PREDR1,PD,PKEFF,PTKE,PBLL_O_E,PEMOIST,PD_M3_WTH_W2R_O_DDTDZ)
   TYPE(DIMPHYEX_t),                   INTENT(IN) :: D
   TYPE(CSTURB_t),                     INTENT(IN) :: CSTURB
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PREDTH1
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PREDR1
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PD
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PKEFF
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PTKE
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PBLL_O_E
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PEMOIST
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT),INTENT(OUT) :: PD_M3_WTH_W2R_O_DDTDZ
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT) :: ZWORK1 ! working array
-  INTEGER :: IKB, IKE, JI,JJ,JK,IIB,IIE,IJB,IJE
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PREDTH1
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PREDR1
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PD
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PKEFF
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PTKE
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PBLL_O_E
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PEMOIST
+  REAL, DIMENSION(D%NIJT,D%NKT),INTENT(OUT) :: PD_M3_WTH_W2R_O_DDTDZ
+  REAL, DIMENSION(D%NIJT,D%NKT) :: ZWORK1 ! working array
+  INTEGER :: IKB, IKE, JIJ,JK,IIJB,IIJE
 !
 REAL(KIND=JPRB) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:D_M3_WTH_W2R_O_DDTDZ',0,ZHOOK_HANDLE)
 IKB=D%NKTB
 IKE=D%NKTE
-IIE=D%NIEC
-IIB=D%NIBC
-IJE=D%NJEC
-IJB=D%NJBC
+IIJE=D%NIJE
+IIJB=D%NIJB
+
+
 
 CALL MZM_PHY(D,PTKE,ZWORK1)
-!$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
-PD_M3_WTH_W2R_O_DDTDZ(IIB:IIE,IJB:IJE,1:D%NKT) = &
-- CSTURB%XCSHF*PKEFF(IIB:IIE,IJB:IJE,1:D%NKT)*0.75*CSTURB%XCTV*PBLL_O_E(IIB:IIE,IJB:IJE,1:D%NKT) &
-                               /ZWORK1(IIB:IIE,IJB:IJE,1:D%NKT)*PEMOIST(IIB:IIE,IJB:IJE,1:D%NKT)/PD(IIB:IIE,IJB:IJE,1:D%NKT) &
-                                     * (1. -  PREDTH1(IIB:IIE,IJB:IJE,1:D%NKT)*(1.5+PREDTH1(IIB:IIE,IJB:IJE,1:D%NKT)& 
-                                     +PREDR1(IIB:IIE,IJB:IJE,1:D%NKT))/PD(IIB:IIE,IJB:IJE,1:D%NKT))
-!$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
+!$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
+PD_M3_WTH_W2R_O_DDTDZ(IIJB:IIJE,1:D%NKT) = &
+- CSTURB%XCSHF*PKEFF(IIJB:IIJE,1:D%NKT)*0.75*CSTURB%XCTV*PBLL_O_E(IIJB:IIJE,1:D%NKT) &
+                               /ZWORK1(IIJB:IIJE,1:D%NKT)*PEMOIST(IIJB:IIJE,1:D%NKT)/PD(IIJB:IIJE,1:D%NKT) &
+                                     * (1. -  PREDTH1(IIJB:IIJE,1:D%NKT)*(1.5+PREDTH1(IIJB:IIJE,1:D%NKT)& 
+                                     +PREDR1(IIJB:IIJE,1:D%NKT))/PD(IIJB:IIJE,1:D%NKT))
+!$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
 !
-PD_M3_WTH_W2R_O_DDTDZ(IIB:IIE,IJB:IJE,IKB-1)=PD_M3_WTH_W2R_O_DDTDZ(IIB:IIE,IJB:IJE,IKB)
-PD_M3_WTH_W2R_O_DDTDZ(IIB:IIE,IJB:IJE,IKE+1)=PD_M3_WTH_W2R_O_DDTDZ(IIB:IIE,IJB:IJE,IKE)
+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)
 !
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:D_M3_WTH_W2R_O_DDTDZ',1,ZHOOK_HANDLE)
 END SUBROUTINE D_M3_WTH_W2R_O_DDTDZ
@@ -1343,40 +1334,40 @@ END SUBROUTINE D_M3_WTH_W2R_O_DDTDZ
 SUBROUTINE M3_WTH_WR2(D,CSTURB,PD,PKEFF,PTKE,PSQRT_TKE,PBLL_O_E,PBETA,PLEPS,PEMOIST,PDTDZ,PM3_WTH_WR2)
   TYPE(DIMPHYEX_t),                   INTENT(IN) :: D
   TYPE(CSTURB_t),                     INTENT(IN) :: CSTURB
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PD
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PKEFF
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PTKE
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PSQRT_TKE
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PBLL_O_E
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PBETA
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PLEPS
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PEMOIST
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PDTDZ
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT),INTENT(OUT) :: PM3_WTH_WR2
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT) :: ZWORK1,ZWORK2 ! working array
-  INTEGER :: IKB, IKE, JI,JJ,JK,IIB,IIE,IJB,IJE
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PD
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PKEFF
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PTKE
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PSQRT_TKE
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PBLL_O_E
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PBETA
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PLEPS
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PEMOIST
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PDTDZ
+  REAL, DIMENSION(D%NIJT,D%NKT),INTENT(OUT) :: PM3_WTH_WR2
+  REAL, DIMENSION(D%NIJT,D%NKT) :: ZWORK1,ZWORK2 ! working array
+  INTEGER :: IKB, IKE, JIJ,JK,IIJB,IIJE
 !
 REAL(KIND=JPRB) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:M3_WTH_WR2',0,ZHOOK_HANDLE)
 IKB=D%NKTB
 IKE=D%NKTE
-IIE=D%NIEC
-IIB=D%NIBC
-IJE=D%NJEC
-IJB=D%NJBC
-!$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
-ZWORK1(IIB:IIE,IJB:IJE,1:D%NKT) = PBETA(IIB:IIE,IJB:IJE,1:D%NKT)*PLEPS(IIB:IIE,IJB:IJE,1:D%NKT) &
-                                 /(PSQRT_TKE(IIB:IIE,IJB:IJE,1:D%NKT)*PTKE(IIB:IIE,IJB:IJE,1:D%NKT))
-!$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
+IIJE=D%NIJE
+IIJB=D%NIJB
+
+
+!$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
+ZWORK1(IIJB:IIJE,1:D%NKT) = PBETA(IIJB:IIJE,1:D%NKT)*PLEPS(IIJB:IIJE,1:D%NKT) &
+                                 /(PSQRT_TKE(IIJB:IIJE,1:D%NKT)*PTKE(IIJB:IIJE,1:D%NKT))
+!$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
 CALL MZM_PHY(D,ZWORK1,ZWORK2)
-!$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
-PM3_WTH_WR2(IIB:IIE,IJB:IJE,1:D%NKT) = - CSTURB%XCSHF*PKEFF(IIB:IIE,IJB:IJE,1:D%NKT)& 
-                           *0.25*PBLL_O_E(IIB:IIE,IJB:IJE,1:D%NKT)*CSTURB%XCTV*PEMOIST(IIB:IIE,IJB:IJE,1:D%NKT)**2 &
-                           *ZWORK2(IIB:IIE,IJB:IJE,1:D%NKT)/CSTURB%XCTD*PDTDZ(IIB:IIE,IJB:IJE,1:D%NKT)/PD(IIB:IIE,IJB:IJE,1:D%NKT)
-!$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
+!$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
+PM3_WTH_WR2(IIJB:IIJE,1:D%NKT) = - CSTURB%XCSHF*PKEFF(IIJB:IIJE,1:D%NKT)& 
+                           *0.25*PBLL_O_E(IIJB:IIJE,1:D%NKT)*CSTURB%XCTV*PEMOIST(IIJB:IIJE,1:D%NKT)**2 &
+                           *ZWORK2(IIJB:IIJE,1:D%NKT)/CSTURB%XCTD*PDTDZ(IIJB:IIJE,1:D%NKT)/PD(IIJB:IIJE,1:D%NKT)
+!$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
 !
-PM3_WTH_WR2(IIB:IIE,IJB:IJE,IKB-1)=PM3_WTH_WR2(IIB:IIE,IJB:IJE,IKB)
-PM3_WTH_WR2(IIB:IIE,IJB:IJE,IKE+1)=PM3_WTH_WR2(IIB:IIE,IJB:IJE,IKE)
+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)
 !
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:M3_WTH_WR2',1,ZHOOK_HANDLE)
 END SUBROUTINE M3_WTH_WR2
@@ -1384,43 +1375,43 @@ END SUBROUTINE M3_WTH_WR2
 SUBROUTINE D_M3_WTH_WR2_O_DDTDZ(D,CSTURB,PREDTH1,PREDR1,PD,PKEFF,PTKE,PSQRT_TKE,PBLL_O_E,PBETA,PLEPS,PEMOIST,PD_M3_WTH_WR2_O_DDTDZ)
   TYPE(DIMPHYEX_t),                   INTENT(IN) :: D
   TYPE(CSTURB_t),                     INTENT(IN) :: CSTURB
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PREDTH1
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PREDR1
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PD
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PKEFF
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PTKE
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PSQRT_TKE
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PBLL_O_E
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PBETA
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PLEPS
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PEMOIST
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT),INTENT(OUT) :: PD_M3_WTH_WR2_O_DDTDZ
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT) :: ZWORK1,ZWORK2 ! working array
-  INTEGER :: IKB, IKE, JI,JJ,JK,IIB,IIE,IJB,IJE
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PREDTH1
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PREDR1
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PD
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PKEFF
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PTKE
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PSQRT_TKE
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PBLL_O_E
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PBETA
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PLEPS
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PEMOIST
+  REAL, DIMENSION(D%NIJT,D%NKT),INTENT(OUT) :: PD_M3_WTH_WR2_O_DDTDZ
+  REAL, DIMENSION(D%NIJT,D%NKT) :: ZWORK1,ZWORK2 ! working array
+  INTEGER :: IKB, IKE, JIJ,JK,IIJB,IIJE
 !
 REAL(KIND=JPRB) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:D_M3_WTH_WR2_O_DDTDZ',0,ZHOOK_HANDLE)
 IKB=D%NKTB
 IKE=D%NKTE
-IIE=D%NIEC
-IIB=D%NIBC
-IJE=D%NJEC
-IJB=D%NJBC
-!$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
-ZWORK1(IIB:IIE,IJB:IJE,1:D%NKT) = PBETA(IIB:IIE,IJB:IJE,1:D%NKT)*PLEPS(IIB:IIE,IJB:IJE,1:D%NKT)&
-                                  /(PSQRT_TKE(IIB:IIE,IJB:IJE,1:D%NKT)*PTKE(IIB:IIE,IJB:IJE,1:D%NKT))
-!$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
+IIJE=D%NIJE
+IIJB=D%NIJB
+
+
+!$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
+ZWORK1(IIJB:IIJE,1:D%NKT) = PBETA(IIJB:IIJE,1:D%NKT)*PLEPS(IIJB:IIJE,1:D%NKT)&
+                                  /(PSQRT_TKE(IIJB:IIJE,1:D%NKT)*PTKE(IIJB:IIJE,1:D%NKT))
+!$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
 CALL MZM_PHY(D,ZWORK1,ZWORK2)
-!$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
-PD_M3_WTH_WR2_O_DDTDZ(IIB:IIE,IJB:IJE,1:D%NKT) = - CSTURB%XCSHF*PKEFF(IIB:IIE,IJB:IJE,1:D%NKT)& 
-                           *0.25*PBLL_O_E(IIB:IIE,IJB:IJE,1:D%NKT)*CSTURB%XCTV*PEMOIST(IIB:IIE,IJB:IJE,1:D%NKT)**2 &
-                           *ZWORK2(IIB:IIE,IJB:IJE,1:D%NKT)/CSTURB%XCTD/PD(IIB:IIE,IJB:IJE,1:D%NKT)     &
-                           * (1. -  PREDTH1(IIB:IIE,IJB:IJE,1:D%NKT)* &
-                           (1.5+PREDTH1(IIB:IIE,IJB:IJE,1:D%NKT)+PREDR1(IIB:IIE,IJB:IJE,1:D%NKT))/PD(IIB:IIE,IJB:IJE,1:D%NKT))
-!$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
+!$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
+PD_M3_WTH_WR2_O_DDTDZ(IIJB:IIJE,1:D%NKT) = - CSTURB%XCSHF*PKEFF(IIJB:IIJE,1:D%NKT)& 
+                           *0.25*PBLL_O_E(IIJB:IIJE,1:D%NKT)*CSTURB%XCTV*PEMOIST(IIJB:IIJE,1:D%NKT)**2 &
+                           *ZWORK2(IIJB:IIJE,1:D%NKT)/CSTURB%XCTD/PD(IIJB:IIJE,1:D%NKT)     &
+                           * (1. -  PREDTH1(IIJB:IIJE,1:D%NKT)* &
+                           (1.5+PREDTH1(IIJB:IIJE,1:D%NKT)+PREDR1(IIJB:IIJE,1:D%NKT))/PD(IIJB:IIJE,1:D%NKT))
+!$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
 !
-PD_M3_WTH_WR2_O_DDTDZ(IIB:IIE,IJB:IJE,IKB-1)=PD_M3_WTH_WR2_O_DDTDZ(IIB:IIE,IJB:IJE,IKB)
-PD_M3_WTH_WR2_O_DDTDZ(IIB:IIE,IJB:IJE,IKE+1)=PD_M3_WTH_WR2_O_DDTDZ(IIB:IIE,IJB:IJE,IKE)
+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)
 !
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:D_M3_WTH_WR2_O_DDTDZ',1,ZHOOK_HANDLE)
 END SUBROUTINE D_M3_WTH_WR2_O_DDTDZ
@@ -1428,40 +1419,40 @@ END SUBROUTINE D_M3_WTH_WR2_O_DDTDZ
 SUBROUTINE M3_WTH_WTHR(D,CSTURB,PREDR1,PD,PKEFF,PTKE,PSQRT_TKE,PBETA,PLEPS,PEMOIST,PM3_WTH_WTHR)
   TYPE(DIMPHYEX_t),                   INTENT(IN) :: D
   TYPE(CSTURB_t),                     INTENT(IN) :: CSTURB
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PREDR1
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PD
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PKEFF
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PTKE
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PSQRT_TKE
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PBETA
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PLEPS
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PEMOIST
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT),INTENT(OUT) :: PM3_WTH_WTHR
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT) :: ZWORK1,ZWORK2 ! working array
-  INTEGER :: IKB, IKE, JI,JJ,JK,IIB,IIE,IJB,IJE
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PREDR1
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PD
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PKEFF
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PTKE
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PSQRT_TKE
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PBETA
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PLEPS
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PEMOIST
+  REAL, DIMENSION(D%NIJT,D%NKT),INTENT(OUT) :: PM3_WTH_WTHR
+  REAL, DIMENSION(D%NIJT,D%NKT) :: ZWORK1,ZWORK2 ! working array
+  INTEGER :: IKB, IKE, JIJ,JK,IIJB,IIJE
 !
 REAL(KIND=JPRB) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:M3_WTH_WTHR',0,ZHOOK_HANDLE)
 IKB=D%NKTB
 IKE=D%NKTE
-IIE=D%NIEC
-IIB=D%NIBC
-IJE=D%NJEC
-IJB=D%NJBC
-
-!$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
-ZWORK1(IIB:IIE,IJB:IJE,1:D%NKT) = PBETA(IIB:IIE,IJB:IJE,1:D%NKT)*PLEPS(IIB:IIE,IJB:IJE,1:D%NKT)&
-                                  /(PSQRT_TKE(IIB:IIE,IJB:IJE,1:D%NKT)*PTKE(IIB:IIE,IJB:IJE,1:D%NKT))
-!$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
+IIJE=D%NIJE
+IIJB=D%NIJB
+
+
+
+!$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
+ZWORK1(IIJB:IIJE,1:D%NKT) = PBETA(IIJB:IIJE,1:D%NKT)*PLEPS(IIJB:IIJE,1:D%NKT)&
+                                  /(PSQRT_TKE(IIJB:IIJE,1:D%NKT)*PTKE(IIJB:IIJE,1:D%NKT))
+!$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
 CALL MZM_PHY(D,ZWORK1,ZWORK2)
-!$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
-PM3_WTH_WTHR(IIB:IIE,IJB:IJE,1:D%NKT) = &
-                   CSTURB%XCSHF*PKEFF(IIB:IIE,IJB:IJE,1:D%NKT)*PEMOIST(IIB:IIE,IJB:IJE,1:D%NKT)*ZWORK2(IIB:IIE,IJB:IJE,1:D%NKT) &
-                   *0.5*PLEPS(IIB:IIE,IJB:IJE,1:D%NKT)/CSTURB%XCTD*(1+PREDR1(IIB:IIE,IJB:IJE,1:D%NKT))/PD(IIB:IIE,IJB:IJE,1:D%NKT)
-!$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
+!$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
+PM3_WTH_WTHR(IIJB:IIJE,1:D%NKT) = &
+                   CSTURB%XCSHF*PKEFF(IIJB:IIJE,1:D%NKT)*PEMOIST(IIJB:IIJE,1:D%NKT)*ZWORK2(IIJB:IIJE,1:D%NKT) &
+                   *0.5*PLEPS(IIJB:IIJE,1:D%NKT)/CSTURB%XCTD*(1+PREDR1(IIJB:IIJE,1:D%NKT))/PD(IIJB:IIJE,1:D%NKT)
+!$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
 !
-PM3_WTH_WTHR(IIB:IIE,IJB:IJE,IKB-1)=PM3_WTH_WTHR(IIB:IIE,IJB:IJE,IKB)
-PM3_WTH_WTHR(IIB:IIE,IJB:IJE,IKE+1)=PM3_WTH_WTHR(IIB:IIE,IJB:IJE,IKE)
+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)
 !
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:M3_WTH_WTHR',1,ZHOOK_HANDLE)
 END SUBROUTINE M3_WTH_WTHR
@@ -1469,32 +1460,32 @@ END SUBROUTINE M3_WTH_WTHR
 SUBROUTINE D_M3_WTH_WTHR_O_DDTDZ(D,CSTURB,PM3_WTH_WTHR,PREDTH1,PREDR1,PD,PBLL_O_E,PETHETA,PD_M3_WTH_WTHR_O_DDTDZ)
   TYPE(DIMPHYEX_t),                   INTENT(IN) :: D
   TYPE(CSTURB_t),                     INTENT(IN) :: CSTURB
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PM3_WTH_WTHR
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PREDTH1
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PREDR1
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PD
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PBLL_O_E
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PETHETA
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT),INTENT(OUT) :: PD_M3_WTH_WTHR_O_DDTDZ
-  INTEGER :: IKB, IKE, JI,JJ,JK,IIB,IIE,IJB,IJE
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PM3_WTH_WTHR
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PREDTH1
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PREDR1
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PD
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PBLL_O_E
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PETHETA
+  REAL, DIMENSION(D%NIJT,D%NKT),INTENT(OUT) :: PD_M3_WTH_WTHR_O_DDTDZ
+  INTEGER :: IKB, IKE, JIJ,JK,IIJB,IIJE
 !
 REAL(KIND=JPRB) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:D_M3_WTH_WTHR_O_DDTDZ',0,ZHOOK_HANDLE)
 IKB=D%NKTB
 IKE=D%NKTE
-IIE=D%NIEC
-IIB=D%NIBC
-IJE=D%NJEC
-IJB=D%NJBC
+IIJE=D%NIJE
+IIJB=D%NIJB
 
-!$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
-PD_M3_WTH_WTHR_O_DDTDZ(IIB:IIE,IJB:IJE,1:D%NKT) = &
-                - PM3_WTH_WTHR(IIB:IIE,IJB:IJE,1:D%NKT) * (1.5+PREDTH1(IIB:IIE,IJB:IJE,1:D%NKT)+PREDR1(IIB:IIE,IJB:IJE,1:D%NKT))&
-                /PD(IIB:IIE,IJB:IJE,1:D%NKT)*CSTURB%XCTV*PBLL_O_E(IIB:IIE,IJB:IJE,1:D%NKT)*PETHETA(IIB:IIE,IJB:IJE,1:D%NKT)
-!$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
+
+
+!$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
+PD_M3_WTH_WTHR_O_DDTDZ(IIJB:IIJE,1:D%NKT) = &
+                - PM3_WTH_WTHR(IIJB:IIJE,1:D%NKT) * (1.5+PREDTH1(IIJB:IIJE,1:D%NKT)+PREDR1(IIJB:IIJE,1:D%NKT))&
+                /PD(IIJB:IIJE,1:D%NKT)*CSTURB%XCTV*PBLL_O_E(IIJB:IIJE,1:D%NKT)*PETHETA(IIJB:IIJE,1:D%NKT)
+!$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
 !
-PD_M3_WTH_WTHR_O_DDTDZ(IIB:IIE,IJB:IJE,IKB-1)=PD_M3_WTH_WTHR_O_DDTDZ(IIB:IIE,IJB:IJE,IKB)
-PD_M3_WTH_WTHR_O_DDTDZ(IIB:IIE,IJB:IJE,IKE+1)=PD_M3_WTH_WTHR_O_DDTDZ(IIB:IIE,IJB:IJE,IKE)
+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)
 !
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:D_M3_WTH_WTHR_O_DDTDZ',1,ZHOOK_HANDLE)
 END SUBROUTINE D_M3_WTH_WTHR_O_DDTDZ
@@ -1502,37 +1493,37 @@ END SUBROUTINE D_M3_WTH_WTHR_O_DDTDZ
 SUBROUTINE M3_TH2_W2TH(D,CSTURB,PREDTH1,PREDR1,PD,PDTDZ,PLM,PLEPS,PTKE,PM3_TH2_W2TH)
   TYPE(DIMPHYEX_t),                   INTENT(IN) :: D
   TYPE(CSTURB_t),                     INTENT(IN) :: CSTURB
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PREDTH1
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PREDR1
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PD
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PDTDZ
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PLM
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PLEPS
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PTKE
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT),INTENT(OUT) :: PM3_TH2_W2TH
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT) :: ZWORK1,ZWORK2 ! working array
-  INTEGER :: IKB, IKE, JI,JJ,JK,IIB,IIE,IJB,IJE
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PREDTH1
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PREDR1
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PD
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PDTDZ
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PLM
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PLEPS
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PTKE
+  REAL, DIMENSION(D%NIJT,D%NKT),INTENT(OUT) :: PM3_TH2_W2TH
+  REAL, DIMENSION(D%NIJT,D%NKT) :: ZWORK1,ZWORK2 ! working array
+  INTEGER :: IKB, IKE, JIJ,JK,IIJB,IIJE
 !
 REAL(KIND=JPRB) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:M3_TH2_W2TH',0,ZHOOK_HANDLE)
 IKB=D%NKTB
 IKE=D%NKTE
-IIE=D%NIEC
-IIB=D%NIBC
-IJE=D%NJEC
-IJB=D%NJBC
-!$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
-ZWORK1(IIB:IIE,IJB:IJE,1:D%NKT) = (1.-0.5*PREDR1(IIB:IIE,IJB:IJE,1:D%NKT)*(1.+PREDR1(IIB:IIE,IJB:IJE,1:D%NKT))& 
-                                /PD(IIB:IIE,IJB:IJE,1:D%NKT))/(1.+PREDTH1(IIB:IIE,IJB:IJE,1:D%NKT))*PDTDZ(IIB:IIE,IJB:IJE,1:D%NKT)
-!$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
+IIJE=D%NIJE
+IIJB=D%NIJB
+
+
+!$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
+ZWORK1(IIJB:IIJE,1:D%NKT) = (1.-0.5*PREDR1(IIJB:IIJE,1:D%NKT)*(1.+PREDR1(IIJB:IIJE,1:D%NKT))& 
+                                /PD(IIJB:IIJE,1:D%NKT))/(1.+PREDTH1(IIJB:IIJE,1:D%NKT))*PDTDZ(IIJB:IIJE,1:D%NKT)
+!$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
 CALL MZF_PHY(D,ZWORK1,ZWORK2)
-!$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
-PM3_TH2_W2TH(IIB:IIE,IJB:IJE,1:D%NKT) = - ZWORK2(IIB:IIE,IJB:IJE,1:D%NKT) &
-                       * 1.5*PLM(IIB:IIE,IJB:IJE,1:D%NKT)*PLEPS(IIB:IIE,IJB:IJE,1:D%NKT)/PTKE(IIB:IIE,IJB:IJE,1:D%NKT)*CSTURB%XCTV
-!$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
+!$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
+PM3_TH2_W2TH(IIJB:IIJE,1:D%NKT) = - ZWORK2(IIJB:IIJE,1:D%NKT) &
+                       * 1.5*PLM(IIJB:IIJE,1:D%NKT)*PLEPS(IIJB:IIJE,1:D%NKT)/PTKE(IIJB:IIJE,1:D%NKT)*CSTURB%XCTV
+!$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
 !
-PM3_TH2_W2TH(IIB:IIE,IJB:IJE,IKB-1)=PM3_TH2_W2TH(IIB:IIE,IJB:IJE,IKB)
-PM3_TH2_W2TH(IIB:IIE,IJB:IJE,IKE+1)=PM3_TH2_W2TH(IIB:IIE,IJB:IJE,IKE)
+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)
 !
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:M3_TH2_W2TH',1,ZHOOK_HANDLE)
 END SUBROUTINE M3_TH2_W2TH
@@ -1540,54 +1531,54 @@ END SUBROUTINE M3_TH2_W2TH
 SUBROUTINE D_M3_TH2_W2TH_O_DDTDZ(D,CSTURB,PREDTH1,PREDR1,PD,PLM,PLEPS,PTKE,OUSERV,PD_M3_TH2_W2TH_O_DDTDZ)
   TYPE(DIMPHYEX_t),                   INTENT(IN) :: D
   TYPE(CSTURB_t),                     INTENT(IN) :: CSTURB
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PREDTH1
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PREDR1
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PD
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PLM
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PLEPS
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PTKE
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PREDTH1
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PREDR1
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PD
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PLM
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PLEPS
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PTKE
   LOGICAL,                INTENT(IN) :: OUSERV
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT),INTENT(OUT) :: PD_M3_TH2_W2TH_O_DDTDZ
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT) :: ZWORK1,ZWORK2 ! working array
-  INTEGER :: IKB, IKE, JI,JJ,JK,IIB,IIE,IJB,IJE
+  REAL, DIMENSION(D%NIJT,D%NKT),INTENT(OUT) :: PD_M3_TH2_W2TH_O_DDTDZ
+  REAL, DIMENSION(D%NIJT,D%NKT) :: ZWORK1,ZWORK2 ! working array
+  INTEGER :: IKB, IKE, JIJ,JK,IIJB,IIJE
 !
 REAL(KIND=JPRB) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:D_M3_TH2_W2TH_O_DDTDZ',0,ZHOOK_HANDLE)
 IKB=D%NKTB
 IKE=D%NKTE
-IIE=D%NIEC
-IIB=D%NIBC
-IJE=D%NJEC
-IJB=D%NJBC
+IIJE=D%NIJE
+IIJB=D%NIJB
+
+
 
 IF (OUSERV) THEN
-!  D_M3_TH2_W2TH_O_DDTDZ(IIB:IIE,IJB:IJE,1:D%NKT) = - 1.5*PLM*PLEPS/PTKE*CSTURB%XCTV * MZF(                    &
+!  D_M3_TH2_W2TH_O_DDTDZ(IIJB:IIJE,1:D%NKT) = - 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, D%NKA, D%NKU, D%NKL)
-  !$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
-  ZWORK1(IIB:IIE,IJB:IJE,1:D%NKT) = (1.-0.5*PREDR1(IIB:IIE,IJB:IJE,1:D%NKT)*(1.+PREDR1(IIB:IIE,IJB:IJE,1:D%NKT))&
-             / PD(IIB:IIE,IJB:IJE,1:D%NKT))*(1.-(1.5+PREDTH1(IIB:IIE,IJB:IJE,1:D%NKT)+PREDR1(IIB:IIE,IJB:IJE,1:D%NKT))   &
-             * PREDTH1(IIB:IIE,IJB:IJE,1:D%NKT)*(1.+PREDTH1(IIB:IIE,IJB:IJE,1:D%NKT))/PD(IIB:IIE,IJB:IJE,1:D%NKT) ) &
-             / (1.+PREDTH1(IIB:IIE,IJB:IJE,1:D%NKT))**2
-  !$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
+  !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
+  ZWORK1(IIJB:IIJE,1:D%NKT) = (1.-0.5*PREDR1(IIJB:IIJE,1:D%NKT)*(1.+PREDR1(IIJB:IIJE,1:D%NKT))&
+             / PD(IIJB:IIJE,1:D%NKT))*(1.-(1.5+PREDTH1(IIJB:IIJE,1:D%NKT)+PREDR1(IIJB:IIJE,1:D%NKT))   &
+             * PREDTH1(IIJB:IIJE,1:D%NKT)*(1.+PREDTH1(IIJB:IIJE,1:D%NKT))/PD(IIJB:IIJE,1:D%NKT) ) &
+             / (1.+PREDTH1(IIJB:IIJE,1:D%NKT))**2
+  !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
   CALL MZF_PHY(D,ZWORK1,ZWORK2)
-  !$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
-  PD_M3_TH2_W2TH_O_DDTDZ(IIB:IIE,IJB:IJE,1:D%NKT) = - 1.5*PLM(IIB:IIE,IJB:IJE,1:D%NKT)*PLEPS(IIB:IIE,IJB:IJE,1:D%NKT) &
-                                                   /PTKE(IIB:IIE,IJB:IJE,1:D%NKT)*CSTURB%XCTV * ZWORK2(IIB:IIE,IJB:IJE,1:D%NKT)
-  !$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
+  !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
+  PD_M3_TH2_W2TH_O_DDTDZ(IIJB:IIJE,1:D%NKT) = - 1.5*PLM(IIJB:IIJE,1:D%NKT)*PLEPS(IIJB:IIJE,1:D%NKT) &
+                                                   /PTKE(IIJB:IIJE,1:D%NKT)*CSTURB%XCTV * ZWORK2(IIJB:IIJE,1:D%NKT)
+  !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
 ELSE
-  !$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
-  ZWORK1(IIB:IIE,IJB:IJE,1:D%NKT) = 1./(1.+PREDTH1(IIB:IIE,IJB:IJE,1:D%NKT))**2
-  !$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
+  !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
+  ZWORK1(IIJB:IIJE,1:D%NKT) = 1./(1.+PREDTH1(IIJB:IIJE,1:D%NKT))**2
+  !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
   CALL MZF_PHY(D,ZWORK1,ZWORK2)
-  !$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
-  PD_M3_TH2_W2TH_O_DDTDZ(IIB:IIE,IJB:IJE,1:D%NKT) = - 1.5*PLM(IIB:IIE,IJB:IJE,1:D%NKT)*PLEPS(IIB:IIE,IJB:IJE,1:D%NKT) & 
-                                                   /PTKE(IIB:IIE,IJB:IJE,1:D%NKT)*CSTURB%XCTV * ZWORK2(IIB:IIE,IJB:IJE,1:D%NKT)
-  !$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
+  !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
+  PD_M3_TH2_W2TH_O_DDTDZ(IIJB:IIJE,1:D%NKT) = - 1.5*PLM(IIJB:IIJE,1:D%NKT)*PLEPS(IIJB:IIJE,1:D%NKT) & 
+                                                   /PTKE(IIJB:IIJE,1:D%NKT)*CSTURB%XCTV * ZWORK2(IIJB:IIJE,1:D%NKT)
+  !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
 END IF
 !
-PD_M3_TH2_W2TH_O_DDTDZ(IIB:IIE,IJB:IJE,IKB-1)=PD_M3_TH2_W2TH_O_DDTDZ(IIB:IIE,IJB:IJE,IKB)
-PD_M3_TH2_W2TH_O_DDTDZ(IIB:IIE,IJB:IJE,IKE+1)=PD_M3_TH2_W2TH_O_DDTDZ(IIB:IIE,IJB:IJE,IKE)
+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)
 !
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:D_M3_TH2_W2TH_O_DDTDZ',1,ZHOOK_HANDLE)
 END SUBROUTINE D_M3_TH2_W2TH_O_DDTDZ
@@ -1595,35 +1586,35 @@ END SUBROUTINE D_M3_TH2_W2TH_O_DDTDZ
 SUBROUTINE M3_TH2_WTH2(D,CSTURB,PREDTH1,PREDR1,PD,PLEPS,PSQRT_TKE,PM3_TH2_WTH2)
   TYPE(DIMPHYEX_t),                   INTENT(IN) :: D
   TYPE(CSTURB_t),                     INTENT(IN) :: CSTURB
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PREDTH1
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PREDR1
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PD
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PLEPS
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PSQRT_TKE
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT),INTENT(OUT) :: PM3_TH2_WTH2
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT) :: ZWORK1,ZWORK2 ! working array
-  INTEGER :: IKB, IKE, JI,JJ,JK,IIB,IIE,IJB,IJE
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PREDTH1
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PREDR1
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PD
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PLEPS
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PSQRT_TKE
+  REAL, DIMENSION(D%NIJT,D%NKT),INTENT(OUT) :: PM3_TH2_WTH2
+  REAL, DIMENSION(D%NIJT,D%NKT) :: ZWORK1,ZWORK2 ! working array
+  INTEGER :: IKB, IKE, JIJ,JK,IIJB,IIJE
 !
 REAL(KIND=JPRB) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:M3_TH2_WTH2',0,ZHOOK_HANDLE)
 IKB=D%NKTB
 IKE=D%NKTE
-IIE=D%NIEC
-IIB=D%NIBC
-IJE=D%NJEC
-IJB=D%NJBC
-!$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
-ZWORK1(IIB:IIE,IJB:IJE,1:D%NKT) = (1.+0.5*PREDTH1(IIB:IIE,IJB:IJE,1:D%NKT) &
-                         +1.5*PREDR1(IIB:IIE,IJB:IJE,1:D%NKT)+0.5*PREDR1(IIB:IIE,IJB:IJE,1:D%NKT)**2)/PD(IIB:IIE,IJB:IJE,1:D%NKT)
-!$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
+IIJE=D%NIJE
+IIJB=D%NIJB
+
+
+!$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
+ZWORK1(IIJB:IIJE,1:D%NKT) = (1.+0.5*PREDTH1(IIJB:IIJE,1:D%NKT) &
+                         +1.5*PREDR1(IIJB:IIJE,1:D%NKT)+0.5*PREDR1(IIJB:IIJE,1:D%NKT)**2)/PD(IIJB:IIJE,1:D%NKT)
+!$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
 CALL MZF_PHY(D,ZWORK1,ZWORK2)
-!$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
-PM3_TH2_WTH2(IIB:IIE,IJB:IJE,1:D%NKT) = PLEPS(IIB:IIE,IJB:IJE,1:D%NKT)*0.5/CSTURB%XCTD/PSQRT_TKE(IIB:IIE,IJB:IJE,1:D%NKT) &
-                     * ZWORK2(IIB:IIE,IJB:IJE,1:D%NKT)
-!$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
+!$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
+PM3_TH2_WTH2(IIJB:IIJE,1:D%NKT) = PLEPS(IIJB:IIJE,1:D%NKT)*0.5/CSTURB%XCTD/PSQRT_TKE(IIJB:IIJE,1:D%NKT) &
+                     * ZWORK2(IIJB:IIJE,1:D%NKT)
+!$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
 !
-PM3_TH2_WTH2(IIB:IIE,IJB:IJE,IKB-1)=PM3_TH2_WTH2(IIB:IIE,IJB:IJE,IKB)
-PM3_TH2_WTH2(IIB:IIE,IJB:IJE,IKE+1)=PM3_TH2_WTH2(IIB:IIE,IJB:IJE,IKE)
+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)
 !
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:M3_TH2_WTH2',1,ZHOOK_HANDLE)
 END SUBROUTINE M3_TH2_WTH2
@@ -1631,39 +1622,39 @@ END SUBROUTINE M3_TH2_WTH2
 SUBROUTINE D_M3_TH2_WTH2_O_DDTDZ(D,CSTURB,PREDTH1,PREDR1,PD,PLEPS,PSQRT_TKE,PBLL_O_E,PETHETA,PD_M3_TH2_WTH2_O_DDTDZ)
   TYPE(DIMPHYEX_t),                   INTENT(IN) :: D
   TYPE(CSTURB_t),                     INTENT(IN) :: CSTURB
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PREDTH1
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PREDR1
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PD
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PLEPS
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PSQRT_TKE
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PBLL_O_E
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PETHETA
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT),INTENT(OUT) :: PD_M3_TH2_WTH2_O_DDTDZ
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT) :: ZWORK1,ZWORK2 ! working array
-  INTEGER :: IKB, IKE, JI,JJ,JK,IIB,IIE,IJB,IJE
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PREDTH1
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PREDR1
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PD
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PLEPS
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PSQRT_TKE
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PBLL_O_E
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PETHETA
+  REAL, DIMENSION(D%NIJT,D%NKT),INTENT(OUT) :: PD_M3_TH2_WTH2_O_DDTDZ
+  REAL, DIMENSION(D%NIJT,D%NKT) :: ZWORK1,ZWORK2 ! working array
+  INTEGER :: IKB, IKE, JIJ,JK,IIJB,IIJE
 !
 REAL(KIND=JPRB) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:D_M3_TH2_WTH2_O_DDTDZ',0,ZHOOK_HANDLE)
 IKB=D%NKTB
 IKE=D%NKTE
-IIE=D%NIEC
-IIB=D%NIBC
-IJE=D%NJEC
-IJB=D%NJBC
-!$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
-ZWORK1(IIB:IIE,IJB:IJE,1:D%NKT) = PBLL_O_E(IIB:IIE,IJB:IJE,1:D%NKT)*PETHETA(IIB:IIE,IJB:IJE,1:D%NKT) &
-             * (0.5/PD(IIB:IIE,IJB:IJE,1:D%NKT) - (1.5+PREDTH1(IIB:IIE,IJB:IJE,1:D%NKT)+PREDR1(IIB:IIE,IJB:IJE,1:D%NKT))& 
-             *(1.+0.5*PREDTH1(IIB:IIE,IJB:IJE,1:D%NKT)+1.5*PREDR1(IIB:IIE,IJB:IJE,1:D%NKT)& 
-             +0.5*PREDR1(IIB:IIE,IJB:IJE,1:D%NKT)**2)/PD(IIB:IIE,IJB:IJE,1:D%NKT)**2)
- !$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
+IIJE=D%NIJE
+IIJB=D%NIJB
+
+
+!$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
+ZWORK1(IIJB:IIJE,1:D%NKT) = PBLL_O_E(IIJB:IIJE,1:D%NKT)*PETHETA(IIJB:IIJE,1:D%NKT) &
+             * (0.5/PD(IIJB:IIJE,1:D%NKT) - (1.5+PREDTH1(IIJB:IIJE,1:D%NKT)+PREDR1(IIJB:IIJE,1:D%NKT))& 
+             *(1.+0.5*PREDTH1(IIJB:IIJE,1:D%NKT)+1.5*PREDR1(IIJB:IIJE,1:D%NKT)& 
+             +0.5*PREDR1(IIJB:IIJE,1:D%NKT)**2)/PD(IIJB:IIJE,1:D%NKT)**2)
+ !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
 CALL MZF_PHY(D,ZWORK1,ZWORK2)
-!$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
-PD_M3_TH2_WTH2_O_DDTDZ(IIB:IIE,IJB:IJE,1:D%NKT) = PLEPS(IIB:IIE,IJB:IJE,1:D%NKT) & 
-                                 *0.5/CSTURB%XCTD/PSQRT_TKE(IIB:IIE,IJB:IJE,1:D%NKT)*CSTURB%XCTV * ZWORK2(IIB:IIE,IJB:IJE,1:D%NKT)
-!$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
+!$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
+PD_M3_TH2_WTH2_O_DDTDZ(IIJB:IIJE,1:D%NKT) = PLEPS(IIJB:IIJE,1:D%NKT) & 
+                                 *0.5/CSTURB%XCTD/PSQRT_TKE(IIJB:IIJE,1:D%NKT)*CSTURB%XCTV * ZWORK2(IIJB:IIJE,1:D%NKT)
+!$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
 !
-PD_M3_TH2_WTH2_O_DDTDZ(IIB:IIE,IJB:IJE,IKB-1)=PD_M3_TH2_WTH2_O_DDTDZ(IIB:IIE,IJB:IJE,IKB)
-PD_M3_TH2_WTH2_O_DDTDZ(IIB:IIE,IJB:IJE,IKE+1)=PD_M3_TH2_WTH2_O_DDTDZ(IIB:IIE,IJB:IJE,IKE)
+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)
 !
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:D_M3_TH2_WTH2_O_DDTDZ',1,ZHOOK_HANDLE)
 END SUBROUTINE D_M3_TH2_WTH2_O_DDTDZ
@@ -1671,37 +1662,37 @@ END SUBROUTINE D_M3_TH2_WTH2_O_DDTDZ
 SUBROUTINE M3_TH2_W2R(D,CSTURB,PD,PLM,PLEPS,PTKE,PBLL_O_E,PEMOIST,PDTDZ,PM3_TH2_W2R)
   TYPE(DIMPHYEX_t),                   INTENT(IN) :: D
   TYPE(CSTURB_t),                     INTENT(IN) :: CSTURB
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PD
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PLM
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PLEPS
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PTKE
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PBLL_O_E
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PEMOIST
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PDTDZ
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT),INTENT(OUT) :: PM3_TH2_W2R
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT) :: ZWORK1,ZWORK2 ! working array
-  INTEGER :: IKB, IKE, JI,JJ,JK,IIB,IIE,IJB,IJE
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PD
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PLM
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PLEPS
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PTKE
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PBLL_O_E
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PEMOIST
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PDTDZ
+  REAL, DIMENSION(D%NIJT,D%NKT),INTENT(OUT) :: PM3_TH2_W2R
+  REAL, DIMENSION(D%NIJT,D%NKT) :: ZWORK1,ZWORK2 ! working array
+  INTEGER :: IKB, IKE, JIJ,JK,IIJB,IIJE
 !
 REAL(KIND=JPRB) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:M3_TH2_W2R',0,ZHOOK_HANDLE)
 IKB=D%NKTB
 IKE=D%NKTE
-IIE=D%NIEC
-IIB=D%NIBC
-IJE=D%NJEC
-IJB=D%NJBC
-!$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
-ZWORK1(IIB:IIE,IJB:IJE,1:D%NKT) = PBLL_O_E(IIB:IIE,IJB:IJE,1:D%NKT)*PEMOIST(IIB:IIE,IJB:IJE,1:D%NKT) & 
-                                 /PD(IIB:IIE,IJB:IJE,1:D%NKT)*PDTDZ(IIB:IIE,IJB:IJE,1:D%NKT)**2
-!$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
+IIJE=D%NIJE
+IIJB=D%NIJB
+
+
+!$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
+ZWORK1(IIJB:IIJE,1:D%NKT) = PBLL_O_E(IIJB:IIJE,1:D%NKT)*PEMOIST(IIJB:IIJE,1:D%NKT) & 
+                                 /PD(IIJB:IIJE,1:D%NKT)*PDTDZ(IIJB:IIJE,1:D%NKT)**2
+!$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
 CALL MZF_PHY(D,ZWORK1,ZWORK2)
-!$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
-PM3_TH2_W2R(IIB:IIE,IJB:IJE,1:D%NKT) = 0.75*CSTURB%XCTV**2*ZWORK2(IIB:IIE,IJB:IJE,1:D%NKT) &
-                    *PLM(IIB:IIE,IJB:IJE,1:D%NKT)*PLEPS(IIB:IIE,IJB:IJE,1:D%NKT)/PTKE(IIB:IIE,IJB:IJE,1:D%NKT)
-!$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
+!$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
+PM3_TH2_W2R(IIJB:IIJE,1:D%NKT) = 0.75*CSTURB%XCTV**2*ZWORK2(IIJB:IIJE,1:D%NKT) &
+                    *PLM(IIJB:IIJE,1:D%NKT)*PLEPS(IIJB:IIJE,1:D%NKT)/PTKE(IIJB:IIJE,1:D%NKT)
+!$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
 !
-PM3_TH2_W2R(IIB:IIE,IJB:IJE,IKB-1)=PM3_TH2_W2R(IIB:IIE,IJB:IJE,IKB)
-PM3_TH2_W2R(IIB:IIE,IJB:IJE,IKE+1)=PM3_TH2_W2R(IIB:IIE,IJB:IJE,IKE)
+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)
 !
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:M3_TH2_W2R',1,ZHOOK_HANDLE)
 END SUBROUTINE M3_TH2_W2R
@@ -1709,40 +1700,40 @@ END SUBROUTINE M3_TH2_W2R
 SUBROUTINE D_M3_TH2_W2R_O_DDTDZ(D,CSTURB,PREDTH1,PREDR1,PD,PLM,PLEPS,PTKE,PBLL_O_E,PEMOIST,PDTDZ,PD_M3_TH2_W2R_O_DDTDZ)
   TYPE(DIMPHYEX_t),                   INTENT(IN) :: D
   TYPE(CSTURB_t),                     INTENT(IN) :: CSTURB
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PREDTH1
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PREDR1
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PD
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PLM
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PLEPS
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PTKE
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PBLL_O_E
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PEMOIST
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PDTDZ
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT),INTENT(OUT) :: PD_M3_TH2_W2R_O_DDTDZ
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT) :: ZWORK1,ZWORK2 ! working array
-  INTEGER :: IKB, IKE, JI,JJ,JK,IIB,IIE,IJB,IJE
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PREDTH1
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PREDR1
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PD
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PLM
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PLEPS
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PTKE
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PBLL_O_E
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PEMOIST
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PDTDZ
+  REAL, DIMENSION(D%NIJT,D%NKT),INTENT(OUT) :: PD_M3_TH2_W2R_O_DDTDZ
+  REAL, DIMENSION(D%NIJT,D%NKT) :: ZWORK1,ZWORK2 ! working array
+  INTEGER :: IKB, IKE, JIJ,JK,IIJB,IIJE
 !
 REAL(KIND=JPRB) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:D_M3_TH2_W2R_O_DDTDZ',0,ZHOOK_HANDLE)
 IKB=D%NKTB
 IKE=D%NKTE
-IIE=D%NIEC
-IIB=D%NIBC
-IJE=D%NJEC
-IJB=D%NJBC
-!$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
-ZWORK1(IIB:IIE,IJB:IJE,1:D%NKT) =  PBLL_O_E(IIB:IIE,IJB:IJE,1:D%NKT)*PEMOIST(IIB:IIE,IJB:IJE,1:D%NKT)& 
- /PD(IIB:IIE,IJB:IJE,1:D%NKT)*PDTDZ(IIB:IIE,IJB:IJE,1:D%NKT)*(2.-PREDTH1(IIB:IIE,IJB:IJE,1:D%NKT)* & 
- (1.5+PREDTH1(IIB:IIE,IJB:IJE,1:D%NKT)+PREDR1(IIB:IIE,IJB:IJE,1:D%NKT))/PD(IIB:IIE,IJB:IJE,1:D%NKT))
-!$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
+IIJE=D%NIJE
+IIJB=D%NIJB
+
+
+!$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
+ZWORK1(IIJB:IIJE,1:D%NKT) =  PBLL_O_E(IIJB:IIJE,1:D%NKT)*PEMOIST(IIJB:IIJE,1:D%NKT)& 
+ /PD(IIJB:IIJE,1:D%NKT)*PDTDZ(IIJB:IIJE,1:D%NKT)*(2.-PREDTH1(IIJB:IIJE,1:D%NKT)* & 
+ (1.5+PREDTH1(IIJB:IIJE,1:D%NKT)+PREDR1(IIJB:IIJE,1:D%NKT))/PD(IIJB:IIJE,1:D%NKT))
+!$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
 CALL MZF_PHY(D,ZWORK1,ZWORK2)
-!$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
-PD_M3_TH2_W2R_O_DDTDZ(IIB:IIE,IJB:IJE,1:D%NKT) = 0.75*CSTURB%XCTV**2*PLM(IIB:IIE,IJB:IJE,1:D%NKT) *PLEPS(IIB:IIE,IJB:IJE,1:D%NKT) &
-                                                /PTKE(IIB:IIE,IJB:IJE,1:D%NKT) * ZWORK2(IIB:IIE,IJB:IJE,1:D%NKT)
-!$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
+!$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
+PD_M3_TH2_W2R_O_DDTDZ(IIJB:IIJE,1:D%NKT) = 0.75*CSTURB%XCTV**2*PLM(IIJB:IIJE,1:D%NKT) *PLEPS(IIJB:IIJE,1:D%NKT) &
+                                                /PTKE(IIJB:IIJE,1:D%NKT) * ZWORK2(IIJB:IIJE,1:D%NKT)
+!$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
 !
-PD_M3_TH2_W2R_O_DDTDZ(IIB:IIE,IJB:IJE,IKB-1)=PD_M3_TH2_W2R_O_DDTDZ(IIB:IIE,IJB:IJE,IKB)
-PD_M3_TH2_W2R_O_DDTDZ(IIB:IIE,IJB:IJE,IKE+1)=PD_M3_TH2_W2R_O_DDTDZ(IIB:IIE,IJB:IJE,IKE)
+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)
 !
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:D_M3_TH2_W2R_O_DDTDZ',1,ZHOOK_HANDLE)
 END SUBROUTINE D_M3_TH2_W2R_O_DDTDZ
@@ -1750,36 +1741,36 @@ END SUBROUTINE D_M3_TH2_W2R_O_DDTDZ
 SUBROUTINE M3_TH2_WR2(D,CSTURB,PD,PLEPS,PSQRT_TKE,PBLL_O_E,PEMOIST,PDTDZ,PM3_TH2_WR2)
   TYPE(DIMPHYEX_t),                   INTENT(IN) :: D
   TYPE(CSTURB_t),                     INTENT(IN) :: CSTURB
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PD
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PLEPS
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PSQRT_TKE
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PBLL_O_E
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PEMOIST
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PDTDZ
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT),INTENT(OUT) :: PM3_TH2_WR2
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT) :: ZWORK1,ZWORK2 ! working array
-  INTEGER :: IKB, IKE, JI,JJ,JK,IIB,IIE,IJB,IJE
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PD
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PLEPS
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PSQRT_TKE
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PBLL_O_E
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PEMOIST
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PDTDZ
+  REAL, DIMENSION(D%NIJT,D%NKT),INTENT(OUT) :: PM3_TH2_WR2
+  REAL, DIMENSION(D%NIJT,D%NKT) :: ZWORK1,ZWORK2 ! working array
+  INTEGER :: IKB, IKE, JIJ,JK,IIJB,IIJE
 !
 REAL(KIND=JPRB) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:M3_TH2_WR2',0,ZHOOK_HANDLE)
 IKB=D%NKTB
 IKE=D%NKTE
-IIE=D%NIEC
-IIB=D%NIBC
-IJE=D%NJEC
-IJB=D%NJBC
-!$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
-ZWORK1(IIB:IIE,IJB:IJE,1:D%NKT) = (PBLL_O_E(IIB:IIE,IJB:IJE,1:D%NKT)*PEMOIST(IIB:IIE,IJB:IJE,1:D%NKT)& 
-                                  *PDTDZ(IIB:IIE,IJB:IJE,1:D%NKT))**2/PD(IIB:IIE,IJB:IJE,1:D%NKT)
-!$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
+IIJE=D%NIJE
+IIJB=D%NIJB
+
+
+!$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
+ZWORK1(IIJB:IIJE,1:D%NKT) = (PBLL_O_E(IIJB:IIJE,1:D%NKT)*PEMOIST(IIJB:IIJE,1:D%NKT)& 
+                                  *PDTDZ(IIJB:IIJE,1:D%NKT))**2/PD(IIJB:IIJE,1:D%NKT)
+!$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
 CALL MZF_PHY(D,ZWORK1,ZWORK2)
-!$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
-PM3_TH2_WR2(IIB:IIE,IJB:IJE,1:D%NKT) = 0.25*CSTURB%XCTV**2*ZWORK2(IIB:IIE,IJB:IJE,1:D%NKT)&
-                    *PLEPS(IIB:IIE,IJB:IJE,1:D%NKT)/PSQRT_TKE(IIB:IIE,IJB:IJE,1:D%NKT)/CSTURB%XCTD
-!$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
+!$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
+PM3_TH2_WR2(IIJB:IIJE,1:D%NKT) = 0.25*CSTURB%XCTV**2*ZWORK2(IIJB:IIJE,1:D%NKT)&
+                    *PLEPS(IIJB:IIJE,1:D%NKT)/PSQRT_TKE(IIJB:IIJE,1:D%NKT)/CSTURB%XCTD
+!$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
 !
-PM3_TH2_WR2(IIB:IIE,IJB:IJE,IKB-1)=PM3_TH2_WR2(IIB:IIE,IJB:IJE,IKB)
-PM3_TH2_WR2(IIB:IIE,IJB:IJE,IKE+1)=PM3_TH2_WR2(IIB:IIE,IJB:IJE,IKE)
+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)
 !
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:M3_TH2_WR2',1,ZHOOK_HANDLE)
 END SUBROUTINE M3_TH2_WR2
@@ -1787,39 +1778,39 @@ END SUBROUTINE M3_TH2_WR2
 SUBROUTINE D_M3_TH2_WR2_O_DDTDZ(D,CSTURB,PREDTH1,PREDR1,PD,PLEPS,PSQRT_TKE,PBLL_O_E,PEMOIST,PDTDZ,PD_M3_TH2_WR2_O_DDTDZ)
   TYPE(DIMPHYEX_t),                   INTENT(IN) :: D
   TYPE(CSTURB_t),                     INTENT(IN) :: CSTURB
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PREDTH1
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PREDR1
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PD
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PLEPS
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PSQRT_TKE
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PBLL_O_E
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PEMOIST
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PDTDZ
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT),INTENT(OUT) :: PD_M3_TH2_WR2_O_DDTDZ
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT) :: ZWORK1,ZWORK2 ! working array
-  INTEGER :: IKB, IKE, JI,JJ,JK,IIB,IIE,IJB,IJE
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PREDTH1
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PREDR1
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PD
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PLEPS
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PSQRT_TKE
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PBLL_O_E
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PEMOIST
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PDTDZ
+  REAL, DIMENSION(D%NIJT,D%NKT),INTENT(OUT) :: PD_M3_TH2_WR2_O_DDTDZ
+  REAL, DIMENSION(D%NIJT,D%NKT) :: ZWORK1,ZWORK2 ! working array
+  INTEGER :: IKB, IKE, JIJ,JK,IIJB,IIJE
 !
 REAL(KIND=JPRB) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:D_M3_TH2_WR2_O_DDTDZ',0,ZHOOK_HANDLE)
 IKB=D%NKTB
 IKE=D%NKTE
-IIE=D%NIEC
-IIB=D%NIBC
-IJE=D%NJEC
-IJB=D%NJBC
-!$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
-ZWORK1(IIB:IIE,IJB:IJE,1:D%NKT) = (PBLL_O_E(IIB:IIE,IJB:IJE,1:D%NKT)*PEMOIST(IIB:IIE,IJB:IJE,1:D%NKT))**2 & 
-*PDTDZ(IIB:IIE,IJB:IJE,1:D%NKT)/PD(IIB:IIE,IJB:IJE,1:D%NKT)*(2.-PREDTH1(IIB:IIE,IJB:IJE,1:D%NKT) & 
-*(1.5+PREDTH1(IIB:IIE,IJB:IJE,1:D%NKT)+PREDR1(IIB:IIE,IJB:IJE,1:D%NKT))/PD(IIB:IIE,IJB:IJE,1:D%NKT))
-!$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
+IIJE=D%NIJE
+IIJB=D%NIJB
+
+
+!$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
+ZWORK1(IIJB:IIJE,1:D%NKT) = (PBLL_O_E(IIJB:IIJE,1:D%NKT)*PEMOIST(IIJB:IIJE,1:D%NKT))**2 & 
+*PDTDZ(IIJB:IIJE,1:D%NKT)/PD(IIJB:IIJE,1:D%NKT)*(2.-PREDTH1(IIJB:IIJE,1:D%NKT) & 
+*(1.5+PREDTH1(IIJB:IIJE,1:D%NKT)+PREDR1(IIJB:IIJE,1:D%NKT))/PD(IIJB:IIJE,1:D%NKT))
+!$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
 CALL MZF_PHY(D,ZWORK1,ZWORK2)
-!$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
-PD_M3_TH2_WR2_O_DDTDZ(IIB:IIE,IJB:IJE,1:D%NKT) = 0.25*CSTURB%XCTV**2*PLEPS(IIB:IIE,IJB:IJE,1:D%NKT) & 
-                                               / PSQRT_TKE(IIB:IIE,IJB:IJE,1:D%NKT)/CSTURB%XCTD * ZWORK2(IIB:IIE,IJB:IJE,1:D%NKT)
-!$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
+!$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
+PD_M3_TH2_WR2_O_DDTDZ(IIJB:IIJE,1:D%NKT) = 0.25*CSTURB%XCTV**2*PLEPS(IIJB:IIJE,1:D%NKT) & 
+                                               / PSQRT_TKE(IIJB:IIJE,1:D%NKT)/CSTURB%XCTD * ZWORK2(IIJB:IIJE,1:D%NKT)
+!$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
 !
-PD_M3_TH2_WR2_O_DDTDZ(IIB:IIE,IJB:IJE,IKB-1)=PD_M3_TH2_WR2_O_DDTDZ(IIB:IIE,IJB:IJE,IKB)
-PD_M3_TH2_WR2_O_DDTDZ(IIB:IIE,IJB:IJE,IKE+1)=PD_M3_TH2_WR2_O_DDTDZ(IIB:IIE,IJB:IJE,IKE)
+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)
 !
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:D_M3_TH2_WR2_O_DDTDZ',1,ZHOOK_HANDLE)
 END SUBROUTINE D_M3_TH2_WR2_O_DDTDZ
@@ -1827,37 +1818,37 @@ END SUBROUTINE D_M3_TH2_WR2_O_DDTDZ
 SUBROUTINE M3_TH2_WTHR(D,CSTURB,PREDR1,PD,PLEPS,PSQRT_TKE,PBLL_O_E,PEMOIST,PDTDZ,PM3_TH2_WTHR)
   TYPE(DIMPHYEX_t),                   INTENT(IN) :: D
   TYPE(CSTURB_t),                     INTENT(IN) :: CSTURB
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PREDR1
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PD
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PLEPS
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PSQRT_TKE
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PBLL_O_E
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PEMOIST
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PDTDZ
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT),INTENT(OUT) :: PM3_TH2_WTHR
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT) :: ZWORK1,ZWORK2 ! working array
-  INTEGER :: IKB, IKE, JI,JJ,JK,IIB,IIE,IJB,IJE
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PREDR1
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PD
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PLEPS
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PSQRT_TKE
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PBLL_O_E
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PEMOIST
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PDTDZ
+  REAL, DIMENSION(D%NIJT,D%NKT),INTENT(OUT) :: PM3_TH2_WTHR
+  REAL, DIMENSION(D%NIJT,D%NKT) :: ZWORK1,ZWORK2 ! working array
+  INTEGER :: IKB, IKE, JIJ,JK,IIJB,IIJE
 !
 REAL(KIND=JPRB) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:M3_TH2_WTHR',0,ZHOOK_HANDLE)
 IKB=D%NKTB
 IKE=D%NKTE
-IIE=D%NIEC
-IIB=D%NIBC
-IJE=D%NJEC
-IJB=D%NJBC
-!$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
-ZWORK1(IIB:IIE,IJB:IJE,1:D%NKT) = PBLL_O_E(IIB:IIE,IJB:IJE,1:D%NKT)*PEMOIST(IIB:IIE,IJB:IJE,1:D%NKT) & 
-                                * PDTDZ(IIB:IIE,IJB:IJE,1:D%NKT)*(1.+PREDR1(IIB:IIE,IJB:IJE,1:D%NKT))/PD(IIB:IIE,IJB:IJE,1:D%NKT)
-!$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
+IIJE=D%NIJE
+IIJB=D%NIJB
+
+
+!$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
+ZWORK1(IIJB:IIJE,1:D%NKT) = PBLL_O_E(IIJB:IIJE,1:D%NKT)*PEMOIST(IIJB:IIJE,1:D%NKT) & 
+                                * PDTDZ(IIJB:IIJE,1:D%NKT)*(1.+PREDR1(IIJB:IIJE,1:D%NKT))/PD(IIJB:IIJE,1:D%NKT)
+!$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
 CALL MZF_PHY(D,ZWORK1,ZWORK2)
-!$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
-PM3_TH2_WTHR(IIB:IIE,IJB:IJE,1:D%NKT) = - 0.5*CSTURB%XCTV*PLEPS(IIB:IIE,IJB:IJE,1:D%NKT) & 
-                                       / PSQRT_TKE(IIB:IIE,IJB:IJE,1:D%NKT)/CSTURB%XCTD * ZWORK2(IIB:IIE,IJB:IJE,1:D%NKT)
-!$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
+!$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
+PM3_TH2_WTHR(IIJB:IIJE,1:D%NKT) = - 0.5*CSTURB%XCTV*PLEPS(IIJB:IIJE,1:D%NKT) & 
+                                       / PSQRT_TKE(IIJB:IIJE,1:D%NKT)/CSTURB%XCTD * ZWORK2(IIJB:IIJE,1:D%NKT)
+!$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
 !
-PM3_TH2_WTHR(IIB:IIE,IJB:IJE,IKB-1)=PM3_TH2_WTHR(IIB:IIE,IJB:IJE,IKB)
-PM3_TH2_WTHR(IIB:IIE,IJB:IJE,IKE+1)=PM3_TH2_WTHR(IIB:IIE,IJB:IJE,IKE)
+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)
 !
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:M3_TH2_WTHR',1,ZHOOK_HANDLE)
 END SUBROUTINE M3_TH2_WTHR
@@ -1865,39 +1856,39 @@ END SUBROUTINE M3_TH2_WTHR
 SUBROUTINE D_M3_TH2_WTHR_O_DDTDZ(D,CSTURB,PREDTH1,PREDR1,PD,PLEPS,PSQRT_TKE,PBLL_O_E,PEMOIST,PDTDZ,PD_M3_TH2_WTHR_O_DDTDZ)
   TYPE(DIMPHYEX_t),                   INTENT(IN) :: D
   TYPE(CSTURB_t),                     INTENT(IN) :: CSTURB
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PREDTH1
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PREDR1
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PD
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PLEPS
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PSQRT_TKE
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PBLL_O_E
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PEMOIST
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PDTDZ
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT),INTENT(OUT) :: PD_M3_TH2_WTHR_O_DDTDZ
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT) :: ZWORK1,ZWORK2 ! working array
-  INTEGER :: IKB, IKE, JI,JJ,JK,IIB,IIE,IJB,IJE
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PREDTH1
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PREDR1
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PD
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PLEPS
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PSQRT_TKE
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PBLL_O_E
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PEMOIST
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PDTDZ
+  REAL, DIMENSION(D%NIJT,D%NKT),INTENT(OUT) :: PD_M3_TH2_WTHR_O_DDTDZ
+  REAL, DIMENSION(D%NIJT,D%NKT) :: ZWORK1,ZWORK2 ! working array
+  INTEGER :: IKB, IKE, JIJ,JK,IIJB,IIJE
 !
 REAL(KIND=JPRB) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:D_M3_TH2_WTHR_O_DDTDZ',0,ZHOOK_HANDLE)
 IKB=D%NKTB
 IKE=D%NKTE
-IIE=D%NIEC
-IIB=D%NIBC
-IJE=D%NJEC
-IJB=D%NJBC
-!$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
-ZWORK1(IIB:IIE,IJB:IJE,1:D%NKT) = PBLL_O_E(IIB:IIE,IJB:IJE,1:D%NKT)*PEMOIST(IIB:IIE,IJB:IJE,1:D%NKT)* & 
-                 (1.+PREDR1(IIB:IIE,IJB:IJE,1:D%NKT))/PD(IIB:IIE,IJB:IJE,1:D%NKT) * (1. -PREDTH1(IIB:IIE,IJB:IJE,1:D%NKT)*& 
-                 (1.5+PREDTH1(IIB:IIE,IJB:IJE,1:D%NKT)+PREDR1(IIB:IIE,IJB:IJE,1:D%NKT))/PD(IIB:IIE,IJB:IJE,1:D%NKT))
-!$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
+IIJE=D%NIJE
+IIJB=D%NIJB
+
+
+!$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
+ZWORK1(IIJB:IIJE,1:D%NKT) = PBLL_O_E(IIJB:IIJE,1:D%NKT)*PEMOIST(IIJB:IIJE,1:D%NKT)* & 
+                 (1.+PREDR1(IIJB:IIJE,1:D%NKT))/PD(IIJB:IIJE,1:D%NKT) * (1. -PREDTH1(IIJB:IIJE,1:D%NKT)*& 
+                 (1.5+PREDTH1(IIJB:IIJE,1:D%NKT)+PREDR1(IIJB:IIJE,1:D%NKT))/PD(IIJB:IIJE,1:D%NKT))
+!$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
 CALL MZF_PHY(D,ZWORK1,ZWORK2)
-!$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
-PD_M3_TH2_WTHR_O_DDTDZ(IIB:IIE,IJB:IJE,1:D%NKT) = - 0.5*CSTURB%XCTV*PLEPS(IIB:IIE,IJB:IJE,1:D%NKT) & 
-                                                / PSQRT_TKE(IIB:IIE,IJB:IJE,1:D%NKT)/CSTURB%XCTD * ZWORK2(IIB:IIE,IJB:IJE,1:D%NKT) 
-!$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
+!$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
+PD_M3_TH2_WTHR_O_DDTDZ(IIJB:IIJE,1:D%NKT) = - 0.5*CSTURB%XCTV*PLEPS(IIJB:IIJE,1:D%NKT) & 
+                                                / PSQRT_TKE(IIJB:IIJE,1:D%NKT)/CSTURB%XCTD * ZWORK2(IIJB:IIJE,1:D%NKT) 
+!$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
 !
-PD_M3_TH2_WTHR_O_DDTDZ(IIB:IIE,IJB:IJE,IKB-1)=PD_M3_TH2_WTHR_O_DDTDZ(IIB:IIE,IJB:IJE,IKB)
-PD_M3_TH2_WTHR_O_DDTDZ(IIB:IIE,IJB:IJE,IKE+1)=PD_M3_TH2_WTHR_O_DDTDZ(IIB:IIE,IJB:IJE,IKE)
+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)
 !
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:D_M3_TH2_WTHR_O_DDTDZ',1,ZHOOK_HANDLE)
 END SUBROUTINE D_M3_TH2_WTHR_O_DDTDZ
@@ -1905,35 +1896,35 @@ END SUBROUTINE D_M3_TH2_WTHR_O_DDTDZ
 SUBROUTINE M3_THR_WTHR(D,CSTURB,PREDTH1,PREDR1,PD,PLEPS,PSQRT_TKE,PM3_THR_WTHR)
   TYPE(DIMPHYEX_t),                   INTENT(IN) :: D
   TYPE(CSTURB_t),                     INTENT(IN) :: CSTURB
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PREDTH1
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PREDR1
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PD
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PLEPS
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PSQRT_TKE
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT),INTENT(OUT) :: PM3_THR_WTHR
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT) :: ZWORK1,ZWORK2 ! working array
-  INTEGER :: IKB, IKE, JI,JJ,JK,IIB,IIE,IJB,IJE
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PREDTH1
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PREDR1
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PD
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PLEPS
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PSQRT_TKE
+  REAL, DIMENSION(D%NIJT,D%NKT),INTENT(OUT) :: PM3_THR_WTHR
+  REAL, DIMENSION(D%NIJT,D%NKT) :: ZWORK1,ZWORK2 ! working array
+  INTEGER :: IKB, IKE, JIJ,JK,IIJB,IIJE
 !
 REAL(KIND=JPRB) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:M3_THR_WTHR',0,ZHOOK_HANDLE)
 IKB=D%NKTB
 IKE=D%NKTE
-IIE=D%NIEC
-IIB=D%NIBC
-IJE=D%NJEC
-IJB=D%NJBC
-!$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
-ZWORK1(IIB:IIE,IJB:IJE,1:D%NKT) =  (1.+PREDTH1(IIB:IIE,IJB:IJE,1:D%NKT))* & 
-                                   (1.+PREDR1(IIB:IIE,IJB:IJE,1:D%NKT))/PD(IIB:IIE,IJB:IJE,1:D%NKT)
-!$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
+IIJE=D%NIJE
+IIJB=D%NIJB
+
+
+!$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
+ZWORK1(IIJB:IIJE,1:D%NKT) =  (1.+PREDTH1(IIJB:IIJE,1:D%NKT))* & 
+                                   (1.+PREDR1(IIJB:IIJE,1:D%NKT))/PD(IIJB:IIJE,1:D%NKT)
+!$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
 CALL MZF_PHY(D,ZWORK1,ZWORK2)
-!$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
-PM3_THR_WTHR(IIB:IIE,IJB:IJE,1:D%NKT) = 0.5*PLEPS(IIB:IIE,IJB:IJE,1:D%NKT)/PSQRT_TKE(IIB:IIE,IJB:IJE,1:D%NKT)/CSTURB%XCTD &
-                     * ZWORK2(IIB:IIE,IJB:IJE,1:D%NKT)
-!$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
+!$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
+PM3_THR_WTHR(IIJB:IIJE,1:D%NKT) = 0.5*PLEPS(IIJB:IIJE,1:D%NKT)/PSQRT_TKE(IIJB:IIJE,1:D%NKT)/CSTURB%XCTD &
+                     * ZWORK2(IIJB:IIJE,1:D%NKT)
+!$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
 !
-PM3_THR_WTHR(IIB:IIE,IJB:IJE,IKB-1)=PM3_THR_WTHR(IIB:IIE,IJB:IJE,IKB)
-PM3_THR_WTHR(IIB:IIE,IJB:IJE,IKE+1)=PM3_THR_WTHR(IIB:IIE,IJB:IJE,IKE)
+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)
 !
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:M3_THR_WTHR',1,ZHOOK_HANDLE)
 END SUBROUTINE M3_THR_WTHR
@@ -1941,38 +1932,38 @@ END SUBROUTINE M3_THR_WTHR
 SUBROUTINE D_M3_THR_WTHR_O_DDTDZ(D,CSTURB,PREDTH1,PREDR1,PD,PLEPS,PSQRT_TKE,PBLL_O_E,PETHETA,PD_M3_THR_WTHR_O_DDTDZ)
   TYPE(DIMPHYEX_t),                   INTENT(IN) :: D
   TYPE(CSTURB_t),                     INTENT(IN) :: CSTURB
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PREDTH1
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PREDR1
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PD
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PLEPS
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PSQRT_TKE
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PBLL_O_E
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PETHETA
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT),INTENT(OUT) :: PD_M3_THR_WTHR_O_DDTDZ
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT) :: ZWORK1,ZWORK2 ! working array
-  INTEGER :: IKB, IKE, JI,JJ,JK,IIB,IIE,IJB,IJE
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PREDTH1
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PREDR1
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PD
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PLEPS
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PSQRT_TKE
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PBLL_O_E
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PETHETA
+  REAL, DIMENSION(D%NIJT,D%NKT),INTENT(OUT) :: PD_M3_THR_WTHR_O_DDTDZ
+  REAL, DIMENSION(D%NIJT,D%NKT) :: ZWORK1,ZWORK2 ! working array
+  INTEGER :: IKB, IKE, JIJ,JK,IIJB,IIJE
 !
 REAL(KIND=JPRB) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:D_M3_THR_WTHR_O_DDTDZ',0,ZHOOK_HANDLE)
 IKB=D%NKTB
 IKE=D%NKTE
-IIE=D%NIEC
-IIB=D%NIBC
-IJE=D%NJEC
-IJB=D%NJBC
-!$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
-ZWORK1(IIB:IIE,IJB:IJE,1:D%NKT) = PETHETA(IIB:IIE,IJB:IJE,1:D%NKT)*PBLL_O_E(IIB:IIE,IJB:IJE,1:D%NKT)/PD(IIB:IIE,IJB:IJE,1:D%NKT) & 
-                             *(1.+PREDR1(IIB:IIE,IJB:IJE,1:D%NKT))*(1.-(1.+PREDTH1(IIB:IIE,IJB:IJE,1:D%NKT)) & 
-                             *(1.5+PREDTH1(IIB:IIE,IJB:IJE,1:D%NKT)+PREDR1(IIB:IIE,IJB:IJE,1:D%NKT))/PD(IIB:IIE,IJB:IJE,1:D%NKT))
-!$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
+IIJE=D%NIJE
+IIJB=D%NIJB
+
+
+!$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
+ZWORK1(IIJB:IIJE,1:D%NKT) = PETHETA(IIJB:IIJE,1:D%NKT)*PBLL_O_E(IIJB:IIJE,1:D%NKT)/PD(IIJB:IIJE,1:D%NKT) & 
+                             *(1.+PREDR1(IIJB:IIJE,1:D%NKT))*(1.-(1.+PREDTH1(IIJB:IIJE,1:D%NKT)) & 
+                             *(1.5+PREDTH1(IIJB:IIJE,1:D%NKT)+PREDR1(IIJB:IIJE,1:D%NKT))/PD(IIJB:IIJE,1:D%NKT))
+!$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
 CALL MZF_PHY(D,ZWORK1,ZWORK2)
-!$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
-PD_M3_THR_WTHR_O_DDTDZ(IIB:IIE,IJB:IJE,1:D%NKT) = 0.5*PLEPS(IIB:IIE,IJB:IJE,1:D%NKT)/PSQRT_TKE(IIB:IIE,IJB:IJE,1:D%NKT) & 
-                                                / CSTURB%XCTD * CSTURB%XCTV * ZWORK2(IIB:IIE,IJB:IJE,1:D%NKT)
-!$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
+!$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
+PD_M3_THR_WTHR_O_DDTDZ(IIJB:IIJE,1:D%NKT) = 0.5*PLEPS(IIJB:IIJE,1:D%NKT)/PSQRT_TKE(IIJB:IIJE,1:D%NKT) & 
+                                                / CSTURB%XCTD * CSTURB%XCTV * ZWORK2(IIJB:IIJE,1:D%NKT)
+!$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
 !
-PD_M3_THR_WTHR_O_DDTDZ(IIB:IIE,IJB:IJE,IKB-1)=PD_M3_THR_WTHR_O_DDTDZ(IIB:IIE,IJB:IJE,IKB)
-PD_M3_THR_WTHR_O_DDTDZ(IIB:IIE,IJB:IJE,IKE+1)=PD_M3_THR_WTHR_O_DDTDZ(IIB:IIE,IJB:IJE,IKE)
+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)
 !
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:D_M3_THR_WTHR_O_DDTDZ',1,ZHOOK_HANDLE)
 END SUBROUTINE D_M3_THR_WTHR_O_DDTDZ
@@ -1980,37 +1971,37 @@ END SUBROUTINE D_M3_THR_WTHR_O_DDTDZ
 SUBROUTINE M3_THR_WTH2(D,CSTURB,PREDR1,PD,PLEPS,PSQRT_TKE,PBLL_O_E,PETHETA,PDRDZ,PM3_THR_WTH2)
   TYPE(DIMPHYEX_t),                   INTENT(IN) :: D
   TYPE(CSTURB_t),                     INTENT(IN) :: CSTURB
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PREDR1
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PD
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PLEPS
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PSQRT_TKE
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PBLL_O_E
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PETHETA
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PDRDZ
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT),INTENT(OUT) :: PM3_THR_WTH2
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT) :: ZWORK1,ZWORK2 ! working array
-  INTEGER :: IKB, IKE, JI,JJ,JK,IIB,IIE,IJB,IJE
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PREDR1
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PD
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PLEPS
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PSQRT_TKE
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PBLL_O_E
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PETHETA
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PDRDZ
+  REAL, DIMENSION(D%NIJT,D%NKT),INTENT(OUT) :: PM3_THR_WTH2
+  REAL, DIMENSION(D%NIJT,D%NKT) :: ZWORK1,ZWORK2 ! working array
+  INTEGER :: IKB, IKE, JIJ,JK,IIJB,IIJE
 !
 REAL(KIND=JPRB) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:M3_THR_WTH2',0,ZHOOK_HANDLE)
 IKB=D%NKTB
 IKE=D%NKTE
-IIE=D%NIEC
-IIB=D%NIBC
-IJE=D%NJEC
-IJB=D%NJBC
-!$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
-ZWORK1(IIB:IIE,IJB:IJE,1:D%NKT) = (1.+PREDR1(IIB:IIE,IJB:IJE,1:D%NKT))*PBLL_O_E(IIB:IIE,IJB:IJE,1:D%NKT)* & 
-                                  PETHETA(IIB:IIE,IJB:IJE,1:D%NKT)*PDRDZ(IIB:IIE,IJB:IJE,1:D%NKT)/PD(IIB:IIE,IJB:IJE,1:D%NKT)
-!$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
+IIJE=D%NIJE
+IIJB=D%NIJB
+
+
+!$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
+ZWORK1(IIJB:IIJE,1:D%NKT) = (1.+PREDR1(IIJB:IIJE,1:D%NKT))*PBLL_O_E(IIJB:IIJE,1:D%NKT)* & 
+                                  PETHETA(IIJB:IIJE,1:D%NKT)*PDRDZ(IIJB:IIJE,1:D%NKT)/PD(IIJB:IIJE,1:D%NKT)
+!$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
 CALL MZF_PHY(D,ZWORK1,ZWORK2)
-!$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
-PM3_THR_WTH2(IIB:IIE,IJB:IJE,1:D%NKT) = - 0.25*PLEPS(IIB:IIE,IJB:IJE,1:D%NKT) & 
-                                    / PSQRT_TKE(IIB:IIE,IJB:IJE,1:D%NKT)/CSTURB%XCTD*CSTURB%XCTV * ZWORK2(IIB:IIE,IJB:IJE,1:D%NKT)
-!$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
+!$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
+PM3_THR_WTH2(IIJB:IIJE,1:D%NKT) = - 0.25*PLEPS(IIJB:IIJE,1:D%NKT) & 
+                                    / PSQRT_TKE(IIJB:IIJE,1:D%NKT)/CSTURB%XCTD*CSTURB%XCTV * ZWORK2(IIJB:IIJE,1:D%NKT)
+!$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
 !
-PM3_THR_WTH2(IIB:IIE,IJB:IJE,IKB-1)=PM3_THR_WTH2(IIB:IIE,IJB:IJE,IKB)
-PM3_THR_WTH2(IIB:IIE,IJB:IJE,IKE+1)=PM3_THR_WTH2(IIB:IIE,IJB:IJE,IKE)
+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)
 !
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:M3_THR_WTH2',1,ZHOOK_HANDLE)
 END SUBROUTINE M3_THR_WTH2
@@ -2018,40 +2009,40 @@ END SUBROUTINE M3_THR_WTH2
 SUBROUTINE D_M3_THR_WTH2_O_DDTDZ(D,CSTURB,PREDTH1,PREDR1,PD,PLEPS,PSQRT_TKE,PBLL_O_E,PETHETA,PDRDZ,PD_M3_THR_WTH2_O_DDTDZ)
   TYPE(DIMPHYEX_t),                   INTENT(IN) :: D
   TYPE(CSTURB_t),                     INTENT(IN) :: CSTURB
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PREDTH1
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PREDR1
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PD
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PLEPS
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PSQRT_TKE
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PBLL_O_E
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PETHETA
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PDRDZ
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT),INTENT(OUT) :: PD_M3_THR_WTH2_O_DDTDZ
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT) :: ZWORK1,ZWORK2 ! working array
-  INTEGER :: IKB, IKE, JI,JJ,JK,IIB,IIE,IJB,IJE
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PREDTH1
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PREDR1
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PD
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PLEPS
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PSQRT_TKE
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PBLL_O_E
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PETHETA
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PDRDZ
+  REAL, DIMENSION(D%NIJT,D%NKT),INTENT(OUT) :: PD_M3_THR_WTH2_O_DDTDZ
+  REAL, DIMENSION(D%NIJT,D%NKT) :: ZWORK1,ZWORK2 ! working array
+  INTEGER :: IKB, IKE, JIJ,JK,IIJB,IIJE
 !
 REAL(KIND=JPRB) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:D_M3_THR_WTH2_O_DDTDZ',0,ZHOOK_HANDLE)
 IKB=D%NKTB
 IKE=D%NKTE
-IIE=D%NIEC
-IIB=D%NIBC
-IJE=D%NJEC
-IJB=D%NJBC
-!$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
-ZWORK1(IIB:IIE,IJB:IJE,1:D%NKT) = -(1.+PREDR1(IIB:IIE,IJB:IJE,1:D%NKT))*(PBLL_O_E(IIB:IIE,IJB:IJE,1:D%NKT) & 
-                                 *PETHETA(IIB:IIE,IJB:IJE,1:D%NKT)/PD(IIB:IIE,IJB:IJE,1:D%NKT))**2&
-                                 *PDRDZ(IIB:IIE,IJB:IJE,1:D%NKT)&
-                                 *(1.5+PREDTH1(IIB:IIE,IJB:IJE,1:D%NKT)+PREDR1(IIB:IIE,IJB:IJE,1:D%NKT))
-!$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
+IIJE=D%NIJE
+IIJB=D%NIJB
+
+
+!$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
+ZWORK1(IIJB:IIJE,1:D%NKT) = -(1.+PREDR1(IIJB:IIJE,1:D%NKT))*(PBLL_O_E(IIJB:IIJE,1:D%NKT) & 
+                                 *PETHETA(IIJB:IIJE,1:D%NKT)/PD(IIJB:IIJE,1:D%NKT))**2&
+                                 *PDRDZ(IIJB:IIJE,1:D%NKT)&
+                                 *(1.5+PREDTH1(IIJB:IIJE,1:D%NKT)+PREDR1(IIJB:IIJE,1:D%NKT))
+!$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
 CALL MZF_PHY(D,ZWORK1,ZWORK2)
-!$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
-PD_M3_THR_WTH2_O_DDTDZ(IIB:IIE,IJB:IJE,1:D%NKT) = - 0.25*PLEPS(IIB:IIE,IJB:IJE,1:D%NKT) &
-                                 /PSQRT_TKE(IIB:IIE,IJB:IJE,1:D%NKT)/CSTURB%XCTD*CSTURB%XCTV**2 * ZWORK2(IIB:IIE,IJB:IJE,1:D%NKT) 
-!$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
+!$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
+PD_M3_THR_WTH2_O_DDTDZ(IIJB:IIJE,1:D%NKT) = - 0.25*PLEPS(IIJB:IIJE,1:D%NKT) &
+                                 /PSQRT_TKE(IIJB:IIJE,1:D%NKT)/CSTURB%XCTD*CSTURB%XCTV**2 * ZWORK2(IIJB:IIJE,1:D%NKT) 
+!$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
 !
-PD_M3_THR_WTH2_O_DDTDZ(IIB:IIE,IJB:IJE,IKB-1)=PD_M3_THR_WTH2_O_DDTDZ(IIB:IIE,IJB:IJE,IKB)
-PD_M3_THR_WTH2_O_DDTDZ(IIB:IIE,IJB:IJE,IKE+1)=PD_M3_THR_WTH2_O_DDTDZ(IIB:IIE,IJB:IJE,IKE)
+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)
 !
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:D_M3_THR_WTH2_O_DDTDZ',1,ZHOOK_HANDLE)
 END SUBROUTINE D_M3_THR_WTH2_O_DDTDZ
@@ -2059,38 +2050,38 @@ END SUBROUTINE D_M3_THR_WTH2_O_DDTDZ
 SUBROUTINE D_M3_THR_WTH2_O_DDRDZ(D,CSTURB,PREDTH1,PREDR1,PD,PLEPS,PSQRT_TKE,PBLL_O_E,PETHETA,PD_M3_THR_WTH2_O_DDRDZ)
   TYPE(DIMPHYEX_t),                   INTENT(IN) :: D
   TYPE(CSTURB_t),                     INTENT(IN) :: CSTURB
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PREDTH1
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PREDR1
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PD
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PLEPS
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PSQRT_TKE
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PBLL_O_E
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PETHETA
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT),INTENT(OUT) :: PD_M3_THR_WTH2_O_DDRDZ
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT) :: ZWORK1,ZWORK2 ! working array
-  INTEGER :: IKB, IKE, JI,JJ,JK,IIB,IIE,IJB,IJE
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PREDTH1
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PREDR1
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PD
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PLEPS
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PSQRT_TKE
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PBLL_O_E
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PETHETA
+  REAL, DIMENSION(D%NIJT,D%NKT),INTENT(OUT) :: PD_M3_THR_WTH2_O_DDRDZ
+  REAL, DIMENSION(D%NIJT,D%NKT) :: ZWORK1,ZWORK2 ! working array
+  INTEGER :: IKB, IKE, JIJ,JK,IIJB,IIJE
 !
 REAL(KIND=JPRB) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:D_M3_THR_WTH2_O_DDRDZ',0,ZHOOK_HANDLE)
 IKB=D%NKTB
 IKE=D%NKTE
-IIE=D%NIEC
-IIB=D%NIBC
-IJE=D%NJEC
-IJB=D%NJBC
-!$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
-ZWORK1(IIB:IIE,IJB:IJE,1:D%NKT) = PBLL_O_E(IIB:IIE,IJB:IJE,1:D%NKT)*PETHETA(IIB:IIE,IJB:IJE,1:D%NKT)/PD(IIB:IIE,IJB:IJE,1:D%NKT)&
-       *(-(1.+PREDR1(IIB:IIE,IJB:IJE,1:D%NKT))*PREDR1(IIB:IIE,IJB:IJE,1:D%NKT)/PD(IIB:IIE,IJB:IJE,1:D%NKT)&
-       *(1.5+PREDTH1(IIB:IIE,IJB:IJE,1:D%NKT)+PREDR1(IIB:IIE,IJB:IJE,1:D%NKT))+(1.+2.*PREDR1(IIB:IIE,IJB:IJE,1:D%NKT)))
-!$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
+IIJE=D%NIJE
+IIJB=D%NIJB
+
+
+!$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
+ZWORK1(IIJB:IIJE,1:D%NKT) = PBLL_O_E(IIJB:IIJE,1:D%NKT)*PETHETA(IIJB:IIJE,1:D%NKT)/PD(IIJB:IIJE,1:D%NKT)&
+       *(-(1.+PREDR1(IIJB:IIJE,1:D%NKT))*PREDR1(IIJB:IIJE,1:D%NKT)/PD(IIJB:IIJE,1:D%NKT)&
+       *(1.5+PREDTH1(IIJB:IIJE,1:D%NKT)+PREDR1(IIJB:IIJE,1:D%NKT))+(1.+2.*PREDR1(IIJB:IIJE,1:D%NKT)))
+!$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
 CALL MZF_PHY(D,ZWORK1,ZWORK2)
-!$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
-PD_M3_THR_WTH2_O_DDRDZ(IIB:IIE,IJB:IJE,1:D%NKT) = - 0.25*PLEPS(IIB:IIE,IJB:IJE,1:D%NKT)/PSQRT_TKE(IIB:IIE,IJB:IJE,1:D%NKT)& 
-                                                / CSTURB%XCTD*CSTURB%XCTV * ZWORK2(IIB:IIE,IJB:IJE,1:D%NKT)
-!$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
+!$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
+PD_M3_THR_WTH2_O_DDRDZ(IIJB:IIJE,1:D%NKT) = - 0.25*PLEPS(IIJB:IIJE,1:D%NKT)/PSQRT_TKE(IIJB:IIJE,1:D%NKT)& 
+                                                / CSTURB%XCTD*CSTURB%XCTV * ZWORK2(IIJB:IIJE,1:D%NKT)
+!$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
 !
-PD_M3_THR_WTH2_O_DDRDZ(IIB:IIE,IJB:IJE,IKB-1)=PD_M3_THR_WTH2_O_DDRDZ(IIB:IIE,IJB:IJE,IKB)
-PD_M3_THR_WTH2_O_DDRDZ(IIB:IIE,IJB:IJE,IKE+1)=PD_M3_THR_WTH2_O_DDRDZ(IIB:IIE,IJB:IJE,IKE)
+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)
 !
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:D_M3_THR_WTH2_O_DDRDZ',1,ZHOOK_HANDLE)
 END SUBROUTINE D_M3_THR_WTH2_O_DDRDZ
@@ -2098,35 +2089,35 @@ END SUBROUTINE D_M3_THR_WTH2_O_DDRDZ
 SUBROUTINE M3_THR_W2TH(D,CSTURB,PREDR1,PD,PLM,PLEPS,PTKE,PDRDZ,PM3_THR_W2TH)
   TYPE(DIMPHYEX_t),                   INTENT(IN) :: D
   TYPE(CSTURB_t),                     INTENT(IN) :: CSTURB
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PREDR1
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PD
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PLM
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PLEPS
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PTKE
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PDRDZ
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT),INTENT(OUT) :: PM3_THR_W2TH
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT) :: ZWORK1,ZWORK2 ! working array
-  INTEGER :: IKB, IKE, JI,JJ,JK,IIB,IIE,IJB,IJE
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PREDR1
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PD
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PLM
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PLEPS
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PTKE
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PDRDZ
+  REAL, DIMENSION(D%NIJT,D%NKT),INTENT(OUT) :: PM3_THR_W2TH
+  REAL, DIMENSION(D%NIJT,D%NKT) :: ZWORK1,ZWORK2 ! working array
+  INTEGER :: IKB, IKE, JIJ,JK,IIJB,IIJE
 !
 REAL(KIND=JPRB) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:M3_THR_W2TH',0,ZHOOK_HANDLE)
 IKB=D%NKTB
 IKE=D%NKTE
-IIE=D%NIEC
-IIB=D%NIBC
-IJE=D%NJEC
-IJB=D%NJBC
-!$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
-ZWORK1(IIB:IIE,IJB:IJE,1:D%NKT) = (1.+PREDR1(IIB:IIE,IJB:IJE,1:D%NKT))*PDRDZ(IIB:IIE,IJB:IJE,1:D%NKT)/PD(IIB:IIE,IJB:IJE,1:D%NKT)
-!$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
+IIJE=D%NIJE
+IIJB=D%NIJB
+
+
+!$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
+ZWORK1(IIJB:IIJE,1:D%NKT) = (1.+PREDR1(IIJB:IIJE,1:D%NKT))*PDRDZ(IIJB:IIJE,1:D%NKT)/PD(IIJB:IIJE,1:D%NKT)
+!$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
 CALL MZF_PHY(D,ZWORK1,ZWORK2)
-!$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
-PM3_THR_W2TH(IIB:IIE,IJB:IJE,1:D%NKT) = - 0.75*PLM(IIB:IIE,IJB:IJE,1:D%NKT)*PLEPS(IIB:IIE,IJB:IJE,1:D%NKT)& 
-                                      / PTKE(IIB:IIE,IJB:IJE,1:D%NKT) * CSTURB%XCTV * ZWORK2(IIB:IIE,IJB:IJE,1:D%NKT)
-!$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
+!$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
+PM3_THR_W2TH(IIJB:IIJE,1:D%NKT) = - 0.75*PLM(IIJB:IIJE,1:D%NKT)*PLEPS(IIJB:IIJE,1:D%NKT)& 
+                                      / PTKE(IIJB:IIJE,1:D%NKT) * CSTURB%XCTV * ZWORK2(IIJB:IIJE,1:D%NKT)
+!$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
 !
-PM3_THR_W2TH(IIB:IIE,IJB:IJE,IKB-1)=PM3_THR_W2TH(IIB:IIE,IJB:IJE,IKB)
-PM3_THR_W2TH(IIB:IIE,IJB:IJE,IKE+1)=PM3_THR_W2TH(IIB:IIE,IJB:IJE,IKE)
+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)
 !
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:M3_THR_W2TH',1,ZHOOK_HANDLE)
 END SUBROUTINE M3_THR_W2TH
@@ -2134,40 +2125,40 @@ END SUBROUTINE M3_THR_W2TH
 SUBROUTINE D_M3_THR_W2TH_O_DDTDZ(D,CSTURB,PREDTH1,PREDR1,PD,PLM,PLEPS,PTKE,PBLL_O_E,PDRDZ,PETHETA,PD_M3_THR_W2TH_O_DDTDZ)
   TYPE(DIMPHYEX_t),                   INTENT(IN) :: D
   TYPE(CSTURB_t),                     INTENT(IN) :: CSTURB
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PREDTH1
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PREDR1
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PD
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PLM
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PLEPS
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PTKE
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PBLL_O_E
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PDRDZ
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PETHETA
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT),INTENT(OUT) :: PD_M3_THR_W2TH_O_DDTDZ
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT) :: ZWORK1,ZWORK2 ! working array
-  INTEGER :: IKB, IKE, JI,JJ,JK,IIB,IIE,IJB,IJE
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PREDTH1
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PREDR1
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PD
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PLM
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PLEPS
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PTKE
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PBLL_O_E
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PDRDZ
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PETHETA
+  REAL, DIMENSION(D%NIJT,D%NKT),INTENT(OUT) :: PD_M3_THR_W2TH_O_DDTDZ
+  REAL, DIMENSION(D%NIJT,D%NKT) :: ZWORK1,ZWORK2 ! working array
+  INTEGER :: IKB, IKE, JIJ,JK,IIJB,IIJE
 !
 REAL(KIND=JPRB) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:D_M3_THR_W2TH_O_DDTDZ',0,ZHOOK_HANDLE)
 IKB=D%NKTB
 IKE=D%NKTE
-IIE=D%NIEC
-IIB=D%NIBC
-IJE=D%NJEC
-IJB=D%NJBC
-!$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
-ZWORK1(IIB:IIE,IJB:IJE,1:D%NKT) =  -PETHETA(IIB:IIE,IJB:IJE,1:D%NKT)*PBLL_O_E(IIB:IIE,IJB:IJE,1:D%NKT)*& 
-(1.+PREDR1(IIB:IIE,IJB:IJE,1:D%NKT))*PDRDZ(IIB:IIE,IJB:IJE,1:D%NKT)& 
-*(1.5+PREDTH1(IIB:IIE,IJB:IJE,1:D%NKT)+PREDR1(IIB:IIE,IJB:IJE,1:D%NKT))/PD(IIB:IIE,IJB:IJE,1:D%NKT)**2
-!$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
+IIJE=D%NIJE
+IIJB=D%NIJB
+
+
+!$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
+ZWORK1(IIJB:IIJE,1:D%NKT) =  -PETHETA(IIJB:IIJE,1:D%NKT)*PBLL_O_E(IIJB:IIJE,1:D%NKT)*& 
+(1.+PREDR1(IIJB:IIJE,1:D%NKT))*PDRDZ(IIJB:IIJE,1:D%NKT)& 
+*(1.5+PREDTH1(IIJB:IIJE,1:D%NKT)+PREDR1(IIJB:IIJE,1:D%NKT))/PD(IIJB:IIJE,1:D%NKT)**2
+!$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
 CALL MZF_PHY(D,ZWORK1,ZWORK2)
-!$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
-PD_M3_THR_W2TH_O_DDTDZ(IIB:IIE,IJB:IJE,1:D%NKT) = - 0.75*PLM(IIB:IIE,IJB:IJE,1:D%NKT)*PLEPS(IIB:IIE,IJB:IJE,1:D%NKT)&
-                                                / PTKE(IIB:IIE,IJB:IJE,1:D%NKT) * CSTURB%XCTV**2 * ZWORK1(IIB:IIE,IJB:IJE,1:D%NKT)
-!$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
+!$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
+PD_M3_THR_W2TH_O_DDTDZ(IIJB:IIJE,1:D%NKT) = - 0.75*PLM(IIJB:IIJE,1:D%NKT)*PLEPS(IIJB:IIJE,1:D%NKT)&
+                                                / PTKE(IIJB:IIJE,1:D%NKT) * CSTURB%XCTV**2 * ZWORK1(IIJB:IIJE,1:D%NKT)
+!$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
 !
-PD_M3_THR_W2TH_O_DDTDZ(IIB:IIE,IJB:IJE,IKB-1)=PD_M3_THR_W2TH_O_DDTDZ(IIB:IIE,IJB:IJE,IKB)
-PD_M3_THR_W2TH_O_DDTDZ(IIB:IIE,IJB:IJE,IKE+1)=PD_M3_THR_W2TH_O_DDTDZ(IIB:IIE,IJB:IJE,IKE)
+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)
 !
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:D_M3_THR_W2TH_O_DDTDZ',1,ZHOOK_HANDLE)
 END SUBROUTINE D_M3_THR_W2TH_O_DDTDZ
@@ -2175,37 +2166,37 @@ END SUBROUTINE D_M3_THR_W2TH_O_DDTDZ
 SUBROUTINE D_M3_THR_W2TH_O_DDRDZ(D,CSTURB,PREDTH1,PREDR1,PD,PLM,PLEPS,PTKE,PD_M3_THR_W2TH_O_DDRDZ)
   TYPE(DIMPHYEX_t),                   INTENT(IN) :: D
   TYPE(CSTURB_t),                     INTENT(IN) :: CSTURB
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PREDTH1
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PREDR1
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PD
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PLM
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PLEPS
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PTKE
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT),INTENT(OUT) :: PD_M3_THR_W2TH_O_DDRDZ
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT) :: ZWORK1,ZWORK2 ! working array
-  INTEGER :: IKB, IKE, JI,JJ,JK,IIB,IIE,IJB,IJE
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PREDTH1
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PREDR1
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PD
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PLM
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PLEPS
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PTKE
+  REAL, DIMENSION(D%NIJT,D%NKT),INTENT(OUT) :: PD_M3_THR_W2TH_O_DDRDZ
+  REAL, DIMENSION(D%NIJT,D%NKT) :: ZWORK1,ZWORK2 ! working array
+  INTEGER :: IKB, IKE, JIJ,JK,IIJB,IIJE
 !
 REAL(KIND=JPRB) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:D_M3_THR_W2TH_O_DDRDZ',0,ZHOOK_HANDLE)
 IKB=D%NKTB
 IKE=D%NKTE
-IIE=D%NIEC
-IIB=D%NIBC
-IJE=D%NJEC
-IJB=D%NJBC
-!$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
-ZWORK1(IIB:IIE,IJB:IJE,1:D%NKT) =  -(1.+PREDR1(IIB:IIE,IJB:IJE,1:D%NKT))*PREDR1(IIB:IIE,IJB:IJE,1:D%NKT)&
-* (1.5+PREDTH1(IIB:IIE,IJB:IJE,1:D%NKT)+PREDR1(IIB:IIE,IJB:IJE,1:D%NKT))/PD(IIB:IIE,IJB:IJE,1:D%NKT)**2          &
-        +(1.+2.*PREDR1(IIB:IIE,IJB:IJE,1:D%NKT))/PD(IIB:IIE,IJB:IJE,1:D%NKT)
-!$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
+IIJE=D%NIJE
+IIJB=D%NIJB
+
+
+!$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
+ZWORK1(IIJB:IIJE,1:D%NKT) =  -(1.+PREDR1(IIJB:IIJE,1:D%NKT))*PREDR1(IIJB:IIJE,1:D%NKT)&
+* (1.5+PREDTH1(IIJB:IIJE,1:D%NKT)+PREDR1(IIJB:IIJE,1:D%NKT))/PD(IIJB:IIJE,1:D%NKT)**2          &
+        +(1.+2.*PREDR1(IIJB:IIJE,1:D%NKT))/PD(IIJB:IIJE,1:D%NKT)
+!$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
 CALL MZF_PHY(D,ZWORK1,ZWORK2)
-!$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
-PD_M3_THR_W2TH_O_DDRDZ(IIB:IIE,IJB:IJE,1:D%NKT) = - 0.75*PLM(IIB:IIE,IJB:IJE,1:D%NKT)*PLEPS(IIB:IIE,IJB:IJE,1:D%NKT)&
-                                                / PTKE(IIB:IIE,IJB:IJE,1:D%NKT) * CSTURB%XCTV * ZWORK2(IIB:IIE,IJB:IJE,1:D%NKT)
-!$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=1:D%NKT)
+!$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
+PD_M3_THR_W2TH_O_DDRDZ(IIJB:IIJE,1:D%NKT) = - 0.75*PLM(IIJB:IIJE,1:D%NKT)*PLEPS(IIJB:IIJE,1:D%NKT)&
+                                                / PTKE(IIJB:IIJE,1:D%NKT) * CSTURB%XCTV * ZWORK2(IIJB:IIJE,1:D%NKT)
+!$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
 !
-PD_M3_THR_W2TH_O_DDRDZ(IIB:IIE,IJB:IJE,IKB-1)=PD_M3_THR_W2TH_O_DDRDZ(IIB:IIE,IJB:IJE,IKB)
-PD_M3_THR_W2TH_O_DDRDZ(IIB:IIE,IJB:IJE,IKE+1)=PD_M3_THR_W2TH_O_DDRDZ(IIB:IIE,IJB:IJE,IKE)
+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)
 !
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:D_M3_THR_W2TH_O_DDRDZ',1,ZHOOK_HANDLE)
 END SUBROUTINE D_M3_THR_W2TH_O_DDRDZ
@@ -2216,14 +2207,14 @@ END SUBROUTINE D_M3_THR_W2TH_O_DDRDZ
 SUBROUTINE PSI3(D,CSTURB,PREDR1,PREDTH1,PRED2R3,PRED2TH3,PRED2THR3,HTURBDIM,OUSERV,PPSI3)
   TYPE(DIMPHYEX_t),                   INTENT(IN) :: D
   TYPE(CSTURB_t),                     INTENT(IN) :: CSTURB
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PREDTH1
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PREDR1
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PRED2TH3
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PRED2R3
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PRED2THR3
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PREDTH1
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PREDR1
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PRED2TH3
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PRED2R3
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PRED2THR3
   CHARACTER(LEN=4),       INTENT(IN) :: HTURBDIM  ! 1DIM or 3DIM turb. scheme
   LOGICAL,                INTENT(IN) :: OUSERV    ! flag to use vapor
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT),INTENT(OUT) :: PPSI3
+  REAL, DIMENSION(D%NIJT,D%NKT),INTENT(OUT) :: PPSI3
 !
 REAL(KIND=JPRB) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:PSI3',0,ZHOOK_HANDLE)
@@ -2235,14 +2226,14 @@ END SUBROUTINE PSI3
 SUBROUTINE D_PSI3DRDZ_O_DDRDZ(D,CSTURB,PPSI3,PREDR1,PREDTH1,PRED2R3,PRED2THR3,HTURBDIM,OUSERV,PD_PSI3DRDZ_O_DDRDZ)
   TYPE(DIMPHYEX_t),                   INTENT(IN) :: D
   TYPE(CSTURB_t),                     INTENT(IN) :: CSTURB
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PPSI3
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PREDTH1
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PREDR1
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PRED2R3
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PRED2THR3
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PPSI3
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PREDTH1
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PREDR1
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PRED2R3
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PRED2THR3
   CHARACTER(LEN=4),       INTENT(IN) :: HTURBDIM  ! 1DIM or 3DIM turb. scheme
   LOGICAL,                INTENT(IN) :: OUSERV    ! flag to use vapor
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT),INTENT(OUT) :: PD_PSI3DRDZ_O_DDRDZ
+  REAL, DIMENSION(D%NIJT,D%NKT),INTENT(OUT) :: PD_PSI3DRDZ_O_DDRDZ
 
 REAL(KIND=JPRB) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:D_PSI3DRDZ_O_DDRDZ',0,ZHOOK_HANDLE)
@@ -2256,14 +2247,14 @@ END SUBROUTINE D_PSI3DRDZ_O_DDRDZ
 SUBROUTINE D_PSI3DTDZ_O_DDTDZ(D,CSTURB,PPSI3,PREDR1,PREDTH1,PRED2R3,PRED2THR3,HTURBDIM,OUSERV,PD_PSI3DTDZ_O_DDTDZ)
   TYPE(DIMPHYEX_t),                   INTENT(IN) :: D
   TYPE(CSTURB_t),                     INTENT(IN) :: CSTURB
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PPSI3
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PREDTH1
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PREDR1
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PRED2R3
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PRED2THR3
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PPSI3
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PREDTH1
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PREDR1
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PRED2R3
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PRED2THR3
   CHARACTER(LEN=4),       INTENT(IN) :: HTURBDIM  ! 1DIM or 3DIM turb. scheme
   LOGICAL,                INTENT(IN) :: OUSERV    ! flag to use vapor
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT),INTENT(OUT) :: PD_PSI3DTDZ_O_DDTDZ
+  REAL, DIMENSION(D%NIJT,D%NKT),INTENT(OUT) :: PD_PSI3DTDZ_O_DDTDZ
 !
 REAL(KIND=JPRB) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:D_PSI3DTDZ_O_DDTDZ',0,ZHOOK_HANDLE)
@@ -2275,15 +2266,15 @@ END SUBROUTINE D_PSI3DTDZ_O_DDTDZ
 SUBROUTINE D_PSI3DRDZ2_O_DDRDZ(D,CSTURB,PPSI3,PREDR1,PREDTH1,PRED2R3,PRED2THR3,PDRDZ,HTURBDIM,OUSERV,PD_PSI3DRDZ2_O_DDRDZ)
   TYPE(DIMPHYEX_t),                   INTENT(IN) :: D
   TYPE(CSTURB_t),                     INTENT(IN) :: CSTURB
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PPSI3
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PREDR1
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PREDTH1
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PRED2R3
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PRED2THR3
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PDRDZ
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PPSI3
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PREDR1
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PREDTH1
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PRED2R3
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PRED2THR3
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PDRDZ
   CHARACTER(LEN=4),       INTENT(IN) :: HTURBDIM  ! 1DIM or 3DIM turb. scheme
   LOGICAL,                INTENT(IN) :: OUSERV    ! flag to use vapor
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT),INTENT(OUT) :: PD_PSI3DRDZ2_O_DDRDZ
+  REAL, DIMENSION(D%NIJT,D%NKT),INTENT(OUT) :: PD_PSI3DRDZ2_O_DDRDZ
 !
 REAL(KIND=JPRB) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:D_PSI3DRDZ2_O_DDRDZ',0,ZHOOK_HANDLE)
@@ -2295,12 +2286,12 @@ END SUBROUTINE D_PSI3DRDZ2_O_DDRDZ
 SUBROUTINE M3_WR_WR2(D,CSTURB,PREDR1,PREDTH1,PD,PBLL_O_E,PEMOIST,PM3_WR_WR2)
   TYPE(DIMPHYEX_t),                   INTENT(IN) :: D
   TYPE(CSTURB_t),                     INTENT(IN) :: CSTURB
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PREDR1
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PREDTH1
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PD
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PBLL_O_E
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PEMOIST
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT),INTENT(OUT) :: PM3_WR_WR2
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PREDR1
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PREDTH1
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PD
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PBLL_O_E
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PEMOIST
+  REAL, DIMENSION(D%NIJT,D%NKT),INTENT(OUT) :: PM3_WR_WR2
 !
 REAL(KIND=JPRB) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:M3_WR_WR2',0,ZHOOK_HANDLE)
@@ -2312,13 +2303,13 @@ END SUBROUTINE M3_WR_WR2
 SUBROUTINE D_M3_WR_WR2_O_DDRDZ(D,CSTURB,PM3_WR_WR2,PREDR1,PREDTH1,PD,PBLL_O_E,PEMOIST,PD_M3_WR_WR2_O_DDRDZ)
   TYPE(DIMPHYEX_t),                   INTENT(IN) :: D
   TYPE(CSTURB_t),                     INTENT(IN) :: CSTURB
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PM3_WR_WR2
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PREDR1
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PREDTH1
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PD
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PBLL_O_E
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PEMOIST
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT),INTENT(OUT) :: PD_M3_WR_WR2_O_DDRDZ
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PM3_WR_WR2
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PREDR1
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PREDTH1
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PD
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PBLL_O_E
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PEMOIST
+  REAL, DIMENSION(D%NIJT,D%NKT),INTENT(OUT) :: PD_M3_WR_WR2_O_DDRDZ
 !
 REAL(KIND=JPRB) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:D_M3_WR_WR2_O_DDRDZ',0,ZHOOK_HANDLE)
@@ -2330,12 +2321,12 @@ END SUBROUTINE D_M3_WR_WR2_O_DDRDZ
 SUBROUTINE M3_WR_W2R(D,CSTURB,PREDR1,PREDTH1,PD,PKEFF,PTKE,PM3_WR_W2R)
   TYPE(DIMPHYEX_t),                   INTENT(IN) :: D
   TYPE(CSTURB_t),                     INTENT(IN) :: CSTURB
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PREDR1
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PREDTH1
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PD
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PKEFF
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PTKE
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT),INTENT(OUT) :: PM3_WR_W2R
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PREDR1
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PREDTH1
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PD
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PKEFF
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PTKE
+  REAL, DIMENSION(D%NIJT,D%NKT),INTENT(OUT) :: PM3_WR_W2R
 !
 REAL(KIND=JPRB) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:M3_WR_W2R',0,ZHOOK_HANDLE)
@@ -2347,14 +2338,14 @@ END SUBROUTINE M3_WR_W2R
 SUBROUTINE D_M3_WR_W2R_O_DDRDZ(D,CSTURB,PREDR1,PREDTH1,PD,PBLL_O_E,PEMOIST,PKEFF,PTKE,PD_M3_WR_W2R_O_DDRDZ)
   TYPE(DIMPHYEX_t),                   INTENT(IN) :: D
   TYPE(CSTURB_t),                     INTENT(IN) :: CSTURB
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PREDR1
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PREDTH1
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PD
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PBLL_O_E
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PEMOIST
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PKEFF
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PTKE
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT),INTENT(OUT) :: PD_M3_WR_W2R_O_DDRDZ
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PREDR1
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PREDTH1
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PD
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PBLL_O_E
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PEMOIST
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PKEFF
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PTKE
+  REAL, DIMENSION(D%NIJT,D%NKT),INTENT(OUT) :: PD_M3_WR_W2R_O_DDRDZ
 !
 REAL(KIND=JPRB) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:D_M3_WR_W2R_O_DDRDZ',0,ZHOOK_HANDLE)
@@ -2366,13 +2357,13 @@ END SUBROUTINE D_M3_WR_W2R_O_DDRDZ
 SUBROUTINE M3_WR_W2TH(D,CSTURB,PD,PKEFF,PTKE,PBLL_O_E,PETHETA,PDRDZ,PM3_WR_W2TH)
   TYPE(DIMPHYEX_t),                   INTENT(IN) :: D
   TYPE(CSTURB_t),                     INTENT(IN) :: CSTURB
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PD
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PKEFF
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PTKE
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PBLL_O_E
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PETHETA
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PDRDZ
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT),INTENT(OUT) :: PM3_WR_W2TH
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PD
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PKEFF
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PTKE
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PBLL_O_E
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PETHETA
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PDRDZ
+  REAL, DIMENSION(D%NIJT,D%NKT),INTENT(OUT) :: PM3_WR_W2TH
 !
 REAL(KIND=JPRB) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:M3_WR_W2TH',0,ZHOOK_HANDLE)
@@ -2384,14 +2375,14 @@ END SUBROUTINE M3_WR_W2TH
 SUBROUTINE D_M3_WR_W2TH_O_DDRDZ(D,CSTURB,PREDR1,PREDTH1,PD,PKEFF,PTKE,PBLL_O_E,PETHETA,PD_M3_WR_W2TH_O_DDRDZ)
   TYPE(DIMPHYEX_t),                   INTENT(IN) :: D
   TYPE(CSTURB_t),                     INTENT(IN) :: CSTURB
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PREDR1
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PREDTH1
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PD
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PKEFF
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PTKE
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PBLL_O_E
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PETHETA
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT),INTENT(OUT) :: PD_M3_WR_W2TH_O_DDRDZ
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PREDR1
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PREDTH1
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PD
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PKEFF
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PTKE
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PBLL_O_E
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PETHETA
+  REAL, DIMENSION(D%NIJT,D%NKT),INTENT(OUT) :: PD_M3_WR_W2TH_O_DDRDZ
 !
 REAL(KIND=JPRB) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:D_M3_WR_W2TH_O_DDRDZ',0,ZHOOK_HANDLE)
@@ -2403,16 +2394,16 @@ END SUBROUTINE D_M3_WR_W2TH_O_DDRDZ
 SUBROUTINE M3_WR_WTH2(D,CSTURB,PD,PKEFF,PTKE,PSQRT_TKE,PBLL_O_E,PBETA,PLEPS,PETHETA,PDRDZ,PM3_WR_WTH2)
   TYPE(DIMPHYEX_t),                   INTENT(IN) :: D
   TYPE(CSTURB_t),                     INTENT(IN) :: CSTURB
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PD
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PKEFF
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PTKE
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PSQRT_TKE
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PBLL_O_E
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PBETA
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PLEPS
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PETHETA
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PDRDZ
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT),INTENT(OUT) :: PM3_WR_WTH2
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PD
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PKEFF
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PTKE
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PSQRT_TKE
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PBLL_O_E
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PBETA
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PLEPS
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PETHETA
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PDRDZ
+  REAL, DIMENSION(D%NIJT,D%NKT),INTENT(OUT) :: PM3_WR_WTH2
 !
 REAL(KIND=JPRB) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:M3_WR_WTH2',0,ZHOOK_HANDLE)
@@ -2424,17 +2415,17 @@ END SUBROUTINE M3_WR_WTH2
 SUBROUTINE D_M3_WR_WTH2_O_DDRDZ(D,CSTURB,PREDR1,PREDTH1,PD,PKEFF,PTKE,PSQRT_TKE,PBLL_O_E,PBETA,PLEPS,PETHETA,PD_M3_WR_WTH2_O_DDRDZ)
   TYPE(DIMPHYEX_t),                   INTENT(IN) :: D
   TYPE(CSTURB_t),                     INTENT(IN) :: CSTURB
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PREDR1
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PREDTH1
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PD
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PKEFF
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PTKE
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PSQRT_TKE
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PBLL_O_E
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PBETA
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PLEPS
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PETHETA
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT),INTENT(OUT) :: PD_M3_WR_WTH2_O_DDRDZ
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PREDR1
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PREDTH1
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PD
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PKEFF
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PTKE
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PSQRT_TKE
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PBLL_O_E
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PBETA
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PLEPS
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PETHETA
+  REAL, DIMENSION(D%NIJT,D%NKT),INTENT(OUT) :: PD_M3_WR_WTH2_O_DDRDZ
 !
 REAL(KIND=JPRB) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:D_M3_WR_WTH2_O_DDRDZ',0,ZHOOK_HANDLE)
@@ -2446,15 +2437,15 @@ END SUBROUTINE D_M3_WR_WTH2_O_DDRDZ
 SUBROUTINE M3_WR_WTHR(D,CSTURB,PREDTH1,PD,PKEFF,PTKE,PSQRT_TKE,PBETA,PLEPS,PETHETA,PM3_WR_WTHR)
   TYPE(DIMPHYEX_t),                   INTENT(IN) :: D
   TYPE(CSTURB_t),                     INTENT(IN) :: CSTURB
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PREDTH1
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PD
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PKEFF
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PTKE
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PSQRT_TKE
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PBETA
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PLEPS
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PETHETA
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT),INTENT(OUT) :: PM3_WR_WTHR
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PREDTH1
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PD
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PKEFF
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PTKE
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PSQRT_TKE
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PBETA
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PLEPS
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PETHETA
+  REAL, DIMENSION(D%NIJT,D%NKT),INTENT(OUT) :: PM3_WR_WTHR
 !
 REAL(KIND=JPRB) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:M3_WR_WTHR',0,ZHOOK_HANDLE)
@@ -2466,13 +2457,13 @@ END SUBROUTINE M3_WR_WTHR
 SUBROUTINE D_M3_WR_WTHR_O_DDRDZ(D,CSTURB,PM3_WR_WTHR,PREDR1,PREDTH1,PD,PBLL_O_E,PEMOIST,PD_M3_WR_WTHR_O_DDRDZ)
   TYPE(DIMPHYEX_t),                   INTENT(IN) :: D
   TYPE(CSTURB_t),                     INTENT(IN) :: CSTURB
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PM3_WR_WTHR
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PREDR1
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PREDTH1
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PD
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PBLL_O_E
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PEMOIST
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT),INTENT(OUT) :: PD_M3_WR_WTHR_O_DDRDZ
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PM3_WR_WTHR
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PREDR1
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PREDTH1
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PD
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PBLL_O_E
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PEMOIST
+  REAL, DIMENSION(D%NIJT,D%NKT),INTENT(OUT) :: PD_M3_WR_WTHR_O_DDRDZ
 !
 REAL(KIND=JPRB) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:D_M3_WR_WTHR_O_DDRDZ',0,ZHOOK_HANDLE)
@@ -2484,14 +2475,14 @@ END SUBROUTINE D_M3_WR_WTHR_O_DDRDZ
 SUBROUTINE M3_R2_W2R(D,CSTURB,PREDR1,PREDTH1,PD,PDRDZ,PLM,PLEPS,PTKE,PM3_R2_W2R)
   TYPE(DIMPHYEX_t),                   INTENT(IN) :: D
   TYPE(CSTURB_t),                     INTENT(IN) :: CSTURB
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PREDR1
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PREDTH1
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PD
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PDRDZ
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PLM
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PLEPS
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PTKE
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(OUT) :: PM3_R2_W2R
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PREDR1
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PREDTH1
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PD
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PDRDZ
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PLM
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PLEPS
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PTKE
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(OUT) :: PM3_R2_W2R
 !
 REAL(KIND=JPRB) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:M3_R2_W2R',0,ZHOOK_HANDLE)
@@ -2503,14 +2494,14 @@ END SUBROUTINE M3_R2_W2R
 SUBROUTINE D_M3_R2_W2R_O_DDRDZ(D,CSTURB,PREDR1,PREDTH1,PD,PLM,PLEPS,PTKE,OUSERV,PD_M3_R2_W2R_O_DDRDZ)
   TYPE(DIMPHYEX_t),                   INTENT(IN) :: D
   TYPE(CSTURB_t),                     INTENT(IN) :: CSTURB
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PREDR1
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PREDTH1
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PD
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PLM
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PLEPS
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PTKE
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PREDR1
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PREDTH1
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PD
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PLM
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PLEPS
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PTKE
   LOGICAL,                INTENT(IN) :: OUSERV
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT),INTENT(OUT) :: PD_M3_R2_W2R_O_DDRDZ
+  REAL, DIMENSION(D%NIJT,D%NKT),INTENT(OUT) :: PD_M3_R2_W2R_O_DDRDZ
 !
 REAL(KIND=JPRB) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:D_M3_R2_W2R_O_DDRDZ',0,ZHOOK_HANDLE)
@@ -2522,12 +2513,12 @@ END SUBROUTINE D_M3_R2_W2R_O_DDRDZ
 SUBROUTINE M3_R2_WR2(D,CSTURB,PREDR1,PREDTH1,PD,PLEPS,PSQRT_TKE,PM3_R2_WR2)
   TYPE(DIMPHYEX_t),                   INTENT(IN) :: D
   TYPE(CSTURB_t),                     INTENT(IN) :: CSTURB
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PREDR1
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PREDTH1
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PD
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PLEPS
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PSQRT_TKE
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT),INTENT(OUT) :: PM3_R2_WR2
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PREDR1
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PREDTH1
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PD
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PLEPS
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PSQRT_TKE
+  REAL, DIMENSION(D%NIJT,D%NKT),INTENT(OUT) :: PM3_R2_WR2
 !
 REAL(KIND=JPRB) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:M3_R2_WR2',0,ZHOOK_HANDLE)
@@ -2539,14 +2530,14 @@ END SUBROUTINE M3_R2_WR2
 SUBROUTINE D_M3_R2_WR2_O_DDRDZ(D,CSTURB,PREDR1,PREDTH1,PD,PLEPS,PSQRT_TKE,PBLL_O_E,PEMOIST,PD_M3_R2_WR2_O_DDRDZ)
   TYPE(DIMPHYEX_t),                   INTENT(IN) :: D
   TYPE(CSTURB_t),                     INTENT(IN) :: CSTURB
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PREDR1
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PREDTH1
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PD
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PLEPS
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PSQRT_TKE
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PBLL_O_E
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PEMOIST
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT),INTENT(OUT) :: PD_M3_R2_WR2_O_DDRDZ
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PREDR1
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PREDTH1
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PD
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PLEPS
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PSQRT_TKE
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PBLL_O_E
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PEMOIST
+  REAL, DIMENSION(D%NIJT,D%NKT),INTENT(OUT) :: PD_M3_R2_WR2_O_DDRDZ
 !
 REAL(KIND=JPRB) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:D_M3_R2_WR2_O_DDRDZ',0,ZHOOK_HANDLE)
@@ -2558,14 +2549,14 @@ END SUBROUTINE D_M3_R2_WR2_O_DDRDZ
 SUBROUTINE M3_R2_W2TH(D,CSTURB,PD,PLM,PLEPS,PTKE,PBLL_O_E,PETHETA,PDRDZ,PM3_R2_W2TH)
   TYPE(DIMPHYEX_t),                   INTENT(IN) :: D
   TYPE(CSTURB_t),                     INTENT(IN) :: CSTURB
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PD
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PLM
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PLEPS
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PTKE
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PBLL_O_E
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PETHETA
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PDRDZ
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT),INTENT(OUT) :: PM3_R2_W2TH
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PD
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PLM
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PLEPS
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PTKE
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PBLL_O_E
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PETHETA
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PDRDZ
+  REAL, DIMENSION(D%NIJT,D%NKT),INTENT(OUT) :: PM3_R2_W2TH
 !
 REAL(KIND=JPRB) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:M3_R2_W2TH',0,ZHOOK_HANDLE)
@@ -2577,16 +2568,16 @@ END SUBROUTINE M3_R2_W2TH
 SUBROUTINE D_M3_R2_W2TH_O_DDRDZ(D,CSTURB,PREDR1,PREDTH1,PD,PLM,PLEPS,PTKE,PBLL_O_E,PETHETA,PDRDZ,PD_M3_R2_W2TH_O_DDRDZ)
   TYPE(DIMPHYEX_t),                   INTENT(IN) :: D
   TYPE(CSTURB_t),                     INTENT(IN) :: CSTURB
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PREDR1
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PREDTH1
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PD
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PLM
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PLEPS
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PTKE
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PBLL_O_E
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PETHETA
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PDRDZ
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT),INTENT(OUT) :: PD_M3_R2_W2TH_O_DDRDZ
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PREDR1
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PREDTH1
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PD
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PLM
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PLEPS
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PTKE
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PBLL_O_E
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PETHETA
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PDRDZ
+  REAL, DIMENSION(D%NIJT,D%NKT),INTENT(OUT) :: PD_M3_R2_W2TH_O_DDRDZ
 !
 REAL(KIND=JPRB) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:D_M3_R2_W2TH_O_DDRDZ',0,ZHOOK_HANDLE)
@@ -2598,13 +2589,13 @@ END SUBROUTINE D_M3_R2_W2TH_O_DDRDZ
 SUBROUTINE M3_R2_WTH2(D,CSTURB,PD,PLEPS,PSQRT_TKE,PBLL_O_E,PETHETA,PDRDZ,PM3_R2_WTH2)
   TYPE(DIMPHYEX_t),                   INTENT(IN) :: D
   TYPE(CSTURB_t),                     INTENT(IN) :: CSTURB
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PD
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PLEPS
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PSQRT_TKE
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PBLL_O_E
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PETHETA
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PDRDZ
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT),INTENT(OUT) :: PM3_R2_WTH2
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PD
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PLEPS
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PSQRT_TKE
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PBLL_O_E
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PETHETA
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PDRDZ
+  REAL, DIMENSION(D%NIJT,D%NKT),INTENT(OUT) :: PM3_R2_WTH2
 !
 REAL(KIND=JPRB) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:M3_R2_WTH2',0,ZHOOK_HANDLE)
@@ -2616,15 +2607,15 @@ END SUBROUTINE M3_R2_WTH2
 SUBROUTINE D_M3_R2_WTH2_O_DDRDZ(D,CSTURB,PREDR1,PREDTH1,PD,PLEPS,PSQRT_TKE,PBLL_O_E,PETHETA,PDRDZ,PD_M3_R2_WTH2_O_DDRDZ)
   TYPE(DIMPHYEX_t),                   INTENT(IN) :: D
   TYPE(CSTURB_t),                     INTENT(IN) :: CSTURB
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PREDR1
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PREDTH1
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PD
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PLEPS
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PSQRT_TKE
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PBLL_O_E
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PETHETA
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PDRDZ
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT),INTENT(OUT) :: PD_M3_R2_WTH2_O_DDRDZ
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PREDR1
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PREDTH1
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PD
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PLEPS
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PSQRT_TKE
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PBLL_O_E
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PETHETA
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PDRDZ
+  REAL, DIMENSION(D%NIJT,D%NKT),INTENT(OUT) :: PD_M3_R2_WTH2_O_DDRDZ
 !
 REAL(KIND=JPRB) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:D_M3_R2_WTH2_O_DDRDZ',0,ZHOOK_HANDLE)
@@ -2636,14 +2627,14 @@ END SUBROUTINE D_M3_R2_WTH2_O_DDRDZ
 SUBROUTINE M3_R2_WTHR(D,CSTURB,PREDTH1,PD,PLEPS,PSQRT_TKE,PBLL_O_E,PETHETA,PDRDZ,PM3_R2_WTHR)
   TYPE(DIMPHYEX_t),                   INTENT(IN) :: D
   TYPE(CSTURB_t),                     INTENT(IN) :: CSTURB
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PREDTH1
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PD
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PLEPS
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PSQRT_TKE
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PBLL_O_E
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PETHETA
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PDRDZ
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT),INTENT(OUT) :: PM3_R2_WTHR
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PREDTH1
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PD
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PLEPS
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PSQRT_TKE
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PBLL_O_E
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PETHETA
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PDRDZ
+  REAL, DIMENSION(D%NIJT,D%NKT),INTENT(OUT) :: PM3_R2_WTHR
 !
 REAL(KIND=JPRB) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:M3_R2_WTHR',0,ZHOOK_HANDLE)
@@ -2655,15 +2646,15 @@ END SUBROUTINE M3_R2_WTHR
 SUBROUTINE D_M3_R2_WTHR_O_DDRDZ(D,CSTURB,PREDR1,PREDTH1,PD,PLEPS,PSQRT_TKE,PBLL_O_E,PETHETA,PDRDZ,PD_M3_R2_WTHR_O_DDRDZ)
   TYPE(DIMPHYEX_t),                   INTENT(IN) :: D
   TYPE(CSTURB_t),                     INTENT(IN) :: CSTURB
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PREDR1
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PREDTH1
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PD
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PLEPS
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PSQRT_TKE
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PBLL_O_E
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PETHETA
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PDRDZ
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT),INTENT(OUT) :: PD_M3_R2_WTHR_O_DDRDZ
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PREDR1
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PREDTH1
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PD
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PLEPS
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PSQRT_TKE
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PBLL_O_E
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PETHETA
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PDRDZ
+  REAL, DIMENSION(D%NIJT,D%NKT),INTENT(OUT) :: PD_M3_R2_WTHR_O_DDRDZ
 !
 REAL(KIND=JPRB) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:D_M3_R2_WTHR_O_DDRDZ',0,ZHOOK_HANDLE)
@@ -2675,14 +2666,14 @@ END SUBROUTINE D_M3_R2_WTHR_O_DDRDZ
 SUBROUTINE D_M3_THR_WTHR_O_DDRDZ(D,CSTURB,PREDR1,PREDTH1,PD,PLEPS,PSQRT_TKE,PBLL_O_E,PEMOIST,PD_M3_THR_WTHR_O_DDRDZ)
   TYPE(DIMPHYEX_t),                   INTENT(IN) :: D
   TYPE(CSTURB_t),                     INTENT(IN) :: CSTURB
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PREDR1
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PREDTH1
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PD
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PLEPS
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PSQRT_TKE
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PBLL_O_E
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PEMOIST
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT),INTENT(OUT) :: PD_M3_THR_WTHR_O_DDRDZ
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PREDR1
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PREDTH1
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PD
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PLEPS
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PSQRT_TKE
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PBLL_O_E
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PEMOIST
+  REAL, DIMENSION(D%NIJT,D%NKT),INTENT(OUT) :: PD_M3_THR_WTHR_O_DDRDZ
 !
 REAL(KIND=JPRB) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:D_M3_THR_WTHR_O_DDRDZ',0,ZHOOK_HANDLE)
@@ -2694,14 +2685,14 @@ END SUBROUTINE D_M3_THR_WTHR_O_DDRDZ
 SUBROUTINE M3_THR_WR2(D,CSTURB,PREDTH1,PD,PLEPS,PSQRT_TKE,PBLL_O_E,PEMOIST,PDTDZ,PM3_THR_WR2)
   TYPE(DIMPHYEX_t),                   INTENT(IN) :: D
   TYPE(CSTURB_t),                     INTENT(IN) :: CSTURB
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PREDTH1
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PD
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PLEPS
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PSQRT_TKE
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PBLL_O_E
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PEMOIST
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PDTDZ
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT),INTENT(OUT) :: PM3_THR_WR2
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PREDTH1
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PD
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PLEPS
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PSQRT_TKE
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PBLL_O_E
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PEMOIST
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PDTDZ
+  REAL, DIMENSION(D%NIJT,D%NKT),INTENT(OUT) :: PM3_THR_WR2
 !
 REAL(KIND=JPRB) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:M3_THR_WR2',0,ZHOOK_HANDLE)
@@ -2713,15 +2704,15 @@ END SUBROUTINE M3_THR_WR2
 SUBROUTINE D_M3_THR_WR2_O_DDRDZ(D,CSTURB,PREDR1,PREDTH1,PD,PLEPS,PSQRT_TKE,PBLL_O_E,PEMOIST,PDTDZ,PD_M3_THR_WR2_O_DDRDZ)
   TYPE(DIMPHYEX_t),                   INTENT(IN) :: D
   TYPE(CSTURB_t),                     INTENT(IN) :: CSTURB
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PREDR1
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PREDTH1
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PD
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PLEPS
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PSQRT_TKE
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PBLL_O_E
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PEMOIST
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PDTDZ
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT),INTENT(OUT) :: PD_M3_THR_WR2_O_DDRDZ
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PREDR1
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PREDTH1
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PD
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PLEPS
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PSQRT_TKE
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PBLL_O_E
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PEMOIST
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PDTDZ
+  REAL, DIMENSION(D%NIJT,D%NKT),INTENT(OUT) :: PD_M3_THR_WR2_O_DDRDZ
 !
 REAL(KIND=JPRB) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:D_M3_THR_WR2_O_DDRDZ',0,ZHOOK_HANDLE)
@@ -2733,14 +2724,14 @@ END SUBROUTINE D_M3_THR_WR2_O_DDRDZ
 SUBROUTINE D_M3_THR_WR2_O_DDTDZ(D,CSTURB,PREDR1,PREDTH1,PD,PLEPS,PSQRT_TKE,PBLL_O_E,PEMOIST,PD_M3_THR_WR2_O_DDTDZ)
   TYPE(DIMPHYEX_t),                   INTENT(IN) :: D
   TYPE(CSTURB_t),                     INTENT(IN) :: CSTURB
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PREDR1
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PREDTH1
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PD
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PLEPS
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PSQRT_TKE
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PBLL_O_E
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PEMOIST
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT),INTENT(OUT) :: PD_M3_THR_WR2_O_DDTDZ
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PREDR1
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PREDTH1
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PD
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PLEPS
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PSQRT_TKE
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PBLL_O_E
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PEMOIST
+  REAL, DIMENSION(D%NIJT,D%NKT),INTENT(OUT) :: PD_M3_THR_WR2_O_DDTDZ
 !
 REAL(KIND=JPRB) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:D_M3_THR_WR2_O_DDTDZ',0,ZHOOK_HANDLE)
@@ -2752,13 +2743,13 @@ END SUBROUTINE D_M3_THR_WR2_O_DDTDZ
 SUBROUTINE M3_THR_W2R(D,CSTURB,PREDTH1,PD,PLM,PLEPS,PTKE,PDTDZ,PM3_THR_W2R)
   TYPE(DIMPHYEX_t),                   INTENT(IN) :: D
   TYPE(CSTURB_t),                     INTENT(IN) :: CSTURB
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PREDTH1
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PD
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PLM
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PLEPS
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PTKE
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PDTDZ
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT),INTENT(OUT) :: PM3_THR_W2R
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PREDTH1
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PD
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PLM
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PLEPS
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PTKE
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PDTDZ
+  REAL, DIMENSION(D%NIJT,D%NKT),INTENT(OUT) :: PM3_THR_W2R
 !
 REAL(KIND=JPRB) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:M3_THR_W2R',0,ZHOOK_HANDLE)
@@ -2770,16 +2761,16 @@ END SUBROUTINE M3_THR_W2R
 SUBROUTINE D_M3_THR_W2R_O_DDRDZ(D,CSTURB,PREDR1,PREDTH1,PD,PLM,PLEPS,PTKE,PBLL_O_E,PDTDZ,PEMOIST,PD_M3_THR_W2R_O_DDRDZ)
   TYPE(DIMPHYEX_t),                   INTENT(IN) :: D
   TYPE(CSTURB_t),                     INTENT(IN) :: CSTURB
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PREDR1
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PREDTH1
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PD
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PLM
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PLEPS
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PTKE
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PBLL_O_E
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PDTDZ
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PEMOIST
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT),INTENT(OUT) :: PD_M3_THR_W2R_O_DDRDZ
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PREDR1
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PREDTH1
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PD
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PLM
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PLEPS
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PTKE
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PBLL_O_E
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PDTDZ
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PEMOIST
+  REAL, DIMENSION(D%NIJT,D%NKT),INTENT(OUT) :: PD_M3_THR_W2R_O_DDRDZ
 !
 REAL(KIND=JPRB) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:D_M3_THR_W2R_O_DDRDZ',0,ZHOOK_HANDLE)
@@ -2791,13 +2782,13 @@ END SUBROUTINE D_M3_THR_W2R_O_DDRDZ
 SUBROUTINE D_M3_THR_W2R_O_DDTDZ(D,CSTURB,PREDR1,PREDTH1,PD,PLM,PLEPS,PTKE,PD_M3_THR_W2R_O_DDTDZ)
   TYPE(DIMPHYEX_t),                   INTENT(IN) :: D
   TYPE(CSTURB_t),                     INTENT(IN) :: CSTURB
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PREDR1
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PREDTH1
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PD
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PLM
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PLEPS
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PTKE
-  REAL, DIMENSION(D%NIT,D%NJT,D%NKT),INTENT(OUT) :: PD_M3_THR_W2R_O_DDTDZ
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PREDR1
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PREDTH1
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PD
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PLM
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PLEPS
+  REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PTKE
+  REAL, DIMENSION(D%NIJT,D%NKT),INTENT(OUT) :: PD_M3_THR_W2R_O_DDTDZ
 !
 REAL(KIND=JPRB) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:D_M3_THR_W2R_O_DDTDZ',0,ZHOOK_HANDLE)