diff --git a/src/MNH/advecmet.f90 b/src/MNH/advecmet.f90
index 0297798cf2b673b7a3e69eabf973e45f6394cb59..f16414b4293bd0d32dd32859089d51afd0460c4a 100644
--- a/src/MNH/advecmet.f90
+++ b/src/MNH/advecmet.f90
@@ -1,13 +1,8 @@
-!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 1994-2020 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
-!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt  
+!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
 !-----------------------------------------------------------------
-!--------------- special set of characters for RCS information
-!-----------------------------------------------------------------
-! $Source$ $Revision$
-! MASDEV4_7 adiab 2006/05/22 19:02:00
-!-----------------------------------------------------------------
 !     #######################
       MODULE MODI_ADVECMET 
 !     #######################
@@ -162,12 +157,10 @@ REAL, DIMENSION(:,:,:,:), INTENT(INOUT) :: PRRS
 !*       0.2   Declarations of local variables :
 !
 INTEGER :: JRR           ! Loop index for  moist variables
-INTEGER :: IKU
 !
 !  
 !-------------------------------------------------------------------------------
 !
-IKU=SIZE(XZHAT)
 !*       1.     COMPUTES THE ADVECTIVE TENDENCIES
 !     	        ---------------------------------
 !
@@ -181,7 +174,7 @@ PRTHS(:,:,:) = PRTHS(:,:,:)                            &
 IF (LBUDGET_TH) CALL BUDGET (PRTHS,4,'ADVY_BU_RTH')
 !
 PRTHS(:,:,:) = PRTHS(:,:,:)                            &
-              -DZF(1,IKU,1, PRWCT(:,:,:) * MZM (1,IKU,1,PTHT(:,:,:)) )
+              -DZF( PRWCT(:,:,:) * MZM (PTHT(:,:,:)) )
 IF (LBUDGET_TH) CALL BUDGET (PRTHS,4,'ADVZ_BU_RTH')
 !
                                         ! Case with KRR moist variables 
@@ -213,7 +206,7 @@ IF (LBUDGET_RH) CALL BUDGET (PRRS(:,:,:,7),12,'ADVY_BU_RRH')
 !
 DO JRR=1,KRR
   PRRS(:,:,:,JRR) = PRRS(:,:,:,JRR)                            &
-                   -DZF(1,IKU,1, PRWCT(:,:,:) * MZM (1,IKU,1,PRT(:,:,:,JRR)) )
+                   -DZF( PRWCT(:,:,:) * MZM (PRT(:,:,:,JRR)) )
 END DO
 !
 IF (LBUDGET_RV) CALL BUDGET (PRRS(:,:,:,1),6 ,'ADVZ_BU_RRV')
@@ -235,7 +228,7 @@ IF (SIZE(PTKET,1) /= 0) THEN
   IF (LBUDGET_TKE) CALL BUDGET (PRTKES,5,'ADVY_BU_RTKE')
 !
    PRTKES(:,:,:) = PRTKES(:,:,:)                           &
-                 -DZF(1,IKU,1, PRWCT(:,:,:) * MZM (1,IKU,1,PTKET(:,:,:)) )
+                 -DZF( PRWCT(:,:,:) * MZM (PTKET(:,:,:)) )
   IF (LBUDGET_TKE) CALL BUDGET (PRTKES,5,'ADVZ_BU_RTKE')
 END IF
 !
diff --git a/src/MNH/advecmet_4th.f90 b/src/MNH/advecmet_4th.f90
index b708b8cf0c500a9a1709ed7c1815f20b7ba34bb9..a0bd62e1558285c84c566d92d73161dc5b1888d6 100644
--- a/src/MNH/advecmet_4th.f90
+++ b/src/MNH/advecmet_4th.f90
@@ -1,13 +1,8 @@
-!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 2005-2020 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
-!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt  
+!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
 !-----------------------------------------------------------------
-!--------------- special set of characters for RCS information
-!-----------------------------------------------------------------
-! $Source$ $Revision$
-! MASDEV4_7 adiab 2006/05/22 19:00:38
-!-----------------------------------------------------------------
 !     ###############################
       MODULE MODI_ADVECMET_4TH
 !     ###############################
@@ -199,7 +194,6 @@ TYPE(HALO2LIST_ll), POINTER :: TPHALO2LIST ! list for diffusion
 INTEGER :: JRR           ! Loop index for  moist variables
 INTEGER:: IIB,IJB        ! Begining useful area  in x,y,z directions
 INTEGER:: IIE,IJE        ! End useful area in x,y,z directions
-INTEGER :: IKU
 !
 LOGICAL     :: GTKEALLOC                 ! true if TKE arrays are not zero-sized
 !
@@ -216,7 +210,6 @@ REAL, DIMENSION(SIZE(PTHT,1),SIZE(PTHT,2),SIZE(PTHT,3)) :: ZMEANX, ZMEANY ! flux
 CALL GET_INDICE_ll(IIB,IJB,IIE,IJE)
 !
 GTKEALLOC = SIZE(PTKET,1) /= 0
-IKU=SIZE(XZHAT)
 !
 !-------------------------------------------------------------------------------
 !
@@ -244,7 +237,7 @@ PRTHS(:,:,:) = PRTHS(:,:,:)                      &
 IF (LBUDGET_TH) CALL BUDGET (PRTHS,4,'ADVY_BU_RTH')
 !
 PRTHS(:,:,:) = PRTHS(:,:,:)                           &
-              -DZF(1,IKU,1, PRWCT(:,:,:) * MZM4(PTHT(:,:,:)) )
+              -DZF( PRWCT(:,:,:) * MZM4(PTHT(:,:,:)) )
 IF (LBUDGET_TH) CALL BUDGET (PRTHS,4,'ADVZ_BU_RTH')
 !
 ! Turbulence variables
@@ -267,7 +260,7 @@ IF ( GTKEALLOC ) THEN
   IF (LBUDGET_TKE) CALL BUDGET (PRTKES,5,'ADVY_BU_RTKE')
 !
    PRTKES(:,:,:) = PRTKES(:,:,:) 	                  &
-                 -DZF(1,IKU,1, PRWCT(:,:,:) * MZM4(PTKET(:,:,:)) )
+                 -DZF( PRWCT(:,:,:) * MZM4(PTKET(:,:,:)) )
   IF (LBUDGET_TKE) CALL BUDGET (PRTKES,5,'ADVZ_BU_RTKE')
 ENDIF
 !
@@ -304,7 +297,7 @@ DO JRR=1, KRR
   IF (JRR==7 .AND. LBUDGET_RH) CALL BUDGET (PRRS(:,:,:,7),12,'ADVY_BU_RRH')
 !
   PRRS(:,:,:,JRR) = PRRS(:,:,:,JRR)                            &
-                    -DZF(1,IKU,1, PRWCT(:,:,:) * MZM4(PRT(:,:,:,JRR)) )
+                    -DZF( PRWCT(:,:,:) * MZM4(PRT(:,:,:,JRR)) )
   IF (JRR==1 .AND. LBUDGET_RV) CALL BUDGET (PRRS(:,:,:,1),6 ,'ADVZ_BU_RRV')
   IF (JRR==2 .AND. LBUDGET_RC) CALL BUDGET (PRRS(:,:,:,2),7 ,'ADVZ_BU_RRC')
   IF (JRR==3 .AND. LBUDGET_RR) CALL BUDGET (PRRS(:,:,:,3),8 ,'ADVZ_BU_RRR')
diff --git a/src/MNH/advecscalar.f90 b/src/MNH/advecscalar.f90
index 0377dc0dbb963dd4fe64f4ad2f23769a948ed2e2..44e315a3dd7a875ac3135a8bd00a0f62fe1ead87 100644
--- a/src/MNH/advecscalar.f90
+++ b/src/MNH/advecscalar.f90
@@ -1,13 +1,8 @@
-!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 1994-2020 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
-!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt  
+!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
 !-----------------------------------------------------------------
-!--------------- special set of characters for RCS information
-!-----------------------------------------------------------------
-! $Source$ $Revision$
-! MASDEV4_7 adiab 2006/05/18 13:07:25
-!-----------------------------------------------------------------
 !     #######################
       MODULE MODI_ADVECSCALAR 
 !     #######################
@@ -129,7 +124,6 @@ REAL, DIMENSION(:,:,:,:), INTENT(INOUT) :: PRSVS
 !*       0.2   Declarations of local variables :
 !
 INTEGER :: JSV           ! Loop index for Scalar Variables
-INTEGER :: IKU
 !
 !  
 !-------------------------------------------------------------------------------
@@ -137,8 +131,6 @@ INTEGER :: IKU
 !*       1.     COMPUTES THE ADVECTIVE TENDENCIES
 !     	        ---------------------------------
 !
-IKU=SIZE(XZHAT)
-! 
                                         ! Case with KSV Scalar Variables
 DO JSV=1,KSV
   PRSVS(:,:,:,JSV) = PRSVS(:,:,:,JSV)                            &
@@ -162,7 +154,7 @@ END IF
 !
 DO JSV=1,KSV
   PRSVS(:,:,:,JSV) = PRSVS(:,:,:,JSV)                            &
-                    -DZF(1,IKU,1, PRWCT(:,:,:) * MZM (1,IKU,1, PSVT(:,:,:,JSV)) ) 
+                    -DZF( PRWCT(:,:,:) * MZM (PSVT(:,:,:,JSV)) )
 END DO
 IF (LBUDGET_SV) THEN
   DO JSV=1,KSV
diff --git a/src/MNH/advecscalar_4th.f90 b/src/MNH/advecscalar_4th.f90
index 1cf233594e2f27e4a1c1527b6e65998167c4b1f9..9fa8e7847713bf95c7a63f46a84f4018211238a3 100644
--- a/src/MNH/advecscalar_4th.f90
+++ b/src/MNH/advecscalar_4th.f90
@@ -1,13 +1,8 @@
-!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 2005-2020 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
-!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt  
+!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
 !-----------------------------------------------------------------
-!--------------- special set of characters for RCS information
-!-----------------------------------------------------------------
-! $Source$ $Revision$
-! MASDEV4_7 adiab 2006/05/18 13:07:25
-!-----------------------------------------------------------------
 !     ###############################
       MODULE MODI_ADVECSCALAR_4TH
 !     ###############################
@@ -161,7 +156,6 @@ TYPE(HALO2LIST_ll), POINTER :: TZHALO2LIST
 !
 INTEGER :: IGRID ! localisation on the model grid
 REAL, DIMENSION(SIZE(PSVT,1),SIZE(PSVT,2),SIZE(PSVT,3)) :: ZMEANX, ZMEANY ! fluxes
-INTEGER :: IKU
 !
 !-------------------------------------------------------------------------------
 !
@@ -169,7 +163,6 @@ INTEGER :: IKU
 !               ------------------------------
 !
 CALL GET_INDICE_ll(IIB,IJB,IIE,IJE)
-IKU=SIZE(XZHAT)
 !
 !-------------------------------------------------------------------------------
 !
@@ -200,7 +193,7 @@ DO JSV=1,KSV
   IF (LBUDGET_SV) CALL BUDGET (PRSVS(:,:,:,JSV),JSV+12,'ADVY_BU_RSV')
 !
   PRSVS(:,:,:,JSV) = PRSVS(:,:,:,JSV)                           &
-                    -DZF(1,IKU,1,  PRWCT(:,:,:) * MZM4(PSVT(:,:,:,JSV)) )
+                    -DZF( PRWCT(:,:,:) * MZM4(PSVT(:,:,:,JSV)) )
   IF (LBUDGET_SV) CALL BUDGET (PRSVS(:,:,:,JSV),JSV+12,'ADVZ_BU_RSV')
 ENDDO
 !
diff --git a/src/MNH/advection_uvw.f90 b/src/MNH/advection_uvw.f90
index c1f96a8ef0263529bd48391b6810d0797613a5c8..cb088d7356359c68790720e7ebd0ba8c763bb853 100644
--- a/src/MNH/advection_uvw.f90
+++ b/src/MNH/advection_uvw.f90
@@ -1,4 +1,4 @@
-!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 1994-2020 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
 !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
@@ -184,7 +184,6 @@ REAL, DIMENSION(:,:,:), ALLOCATABLE :: ZMZM_RHODJ
 INTEGER :: ISPLIT              ! Number of splitting loops
 INTEGER :: JSPL                ! Loop index
 REAL    :: ZTSTEP              ! Sub Time step 
-INTEGER :: IIU, IJU, IKU ! array sizes
 !
 INTEGER                     :: IINFO_ll    ! return code of parallel routine
 TYPE(LIST_ll), POINTER      :: TZFIELD_ll  ! list of fields to exchange
@@ -301,15 +300,10 @@ CALL MNH_GET_ZT4D(ISPL, IZRWSB, IZRWSE)
 !
 IKE = SIZE(PWT,3) - JPVEXT
 !
-IIU = SIZE(PWT,1)
-IJU = SIZE(PWT,2)
-IKU = SIZE(PWT,3)
-!
-!
 #ifndef MNH_OPENACC
 ZMXM_RHODJ = MXM(PRHODJ)
 ZMYM_RHODJ = MYM(PRHODJ)
-ZMZM_RHODJ = MZM(1,IKU,1,PRHODJ)
+ZMZM_RHODJ = MZM(PRHODJ)
 #else
 CALL MXM_DEVICE(PRHODJ,ZMXM_RHODJ)
 CALL MYM_DEVICE(PRHODJ,ZMYM_RHODJ)
diff --git a/src/MNH/advection_uvw_cen.f90 b/src/MNH/advection_uvw_cen.f90
index fdc6cd0e28f9b796ae202d95effb97319760b1fa..31cdeeae716c3ab246577ab203467280886f714e 100644
--- a/src/MNH/advection_uvw_cen.f90
+++ b/src/MNH/advection_uvw_cen.f90
@@ -1,4 +1,4 @@
-!MNH_LIC Copyright 2013-2019 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 2013-2020 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
 !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
@@ -180,8 +180,6 @@ REAL, DIMENSION(:,:,:), allocatable :: ZMZM_RHODJ
 !
 INTEGER                     :: IINFO_ll    ! return code of parallel routine
 TYPE(LIST_ll), POINTER      :: TZFIELDS_ll ! list of fields to exchange
-INTEGER :: IKU
-INTEGER :: IIB,IIE,IJB,IJE,IKB,IKE ! index values for the physical subdomain
 #ifdef MNH_OPENACC
 INTEGER :: IZ1, IZ2
 #endif
@@ -251,15 +249,10 @@ CALL INIT_ON_HOST_AND_DEVICE(ZMZM_RHODJ,-3e97,'ADVECTION_UVW_CEN::ZMZM_RHODJ')
 CALL MNH_GET_ZT3D(IZ1, IZ2)
 #endif
 !
-CALL GET_INDICE_ll (IIB,IJB,IIE,IJE)
-IKU = SIZE(XZHAT)
-IKB=1+JPVEXT
-IKE=IKU-JPVEXT
-!
 #ifndef MNH_OPENACC
 ZMXM_RHODJ = MXM(PRHODJ)
 ZMYM_RHODJ = MYM(PRHODJ)
-ZMZM_RHODJ = MZM(1,IKU,1,PRHODJ)
+ZMZM_RHODJ = MZM(PRHODJ)
 #else
 CALL MXM_DEVICE(PRHODJ,ZMXM_RHODJ)
 CALL MYM_DEVICE(PRHODJ,ZMYM_RHODJ)
diff --git a/src/MNH/advecuvw.f90 b/src/MNH/advecuvw.f90
index d0f32702bebfbc3090a8e438bd0242811be8f712..087ca0ecfbcaa4594dc2592cc07f4d7f7640a1c1 100644
--- a/src/MNH/advecuvw.f90
+++ b/src/MNH/advecuvw.f90
@@ -1,13 +1,8 @@
-!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 1994-2020 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
-!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt  
+!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
 !-----------------------------------------------------------------
-!--------------- special set of characters for RCS information
-!-----------------------------------------------------------------
-! $Source$ $Revision$
-! MASDEV4_7 adiab 2006/05/18 13:07:25
-!-----------------------------------------------------------------
 !     ####################
       MODULE MODI_ADVECUVW 
 !     ####################
@@ -134,13 +129,8 @@ REAL, DIMENSION(:,:,:),   INTENT(IN)    :: PRWCT     ! of momentum
 !
 REAL, DIMENSION(:,:,:),   INTENT(INOUT) :: PRUS, PRVS, PRWS ! Sources of Momentum
 !
-INTEGER :: IKU
-!
-!  
 !-------------------------------------------------------------------------------
 !
-IKU=SIZE(XZHAT)
-!
 !*       1.     COMPUTES THE ADVECTIVE TENDANCIES
 !	        ---------------------------------
 !
@@ -153,7 +143,7 @@ PRUS(:,:,:) = PRUS(:,:,:)                              &
 IF (LBUDGET_U)  CALL BUDGET (PRUS,1,'ADVY_BU_RU')
 !
 PRUS(:,:,:) = PRUS(:,:,:)                              &
-             -DZF(1,IKU,1, MXM(PRWCT(:,:,:))*MZM(1,IKU,1,PUT(:,:,:)) )
+             -DZF( MXM(PRWCT(:,:,:))*MZM(PUT(:,:,:)) )
 IF (LBUDGET_U)  CALL BUDGET (PRUS,1,'ADVZ_BU_RU')
 !
 !
@@ -166,20 +156,20 @@ PRVS(:,:,:) = PRVS(:,:,:)                              &
 IF (LBUDGET_V)  CALL BUDGET (PRVS,2,'ADVY_BU_RV')
 !
 PRVS(:,:,:) = PRVS(:,:,:)                              &
-             -DZF(1,IKU,1, MYM(PRWCT(:,:,:))*MZM(1,IKU,1,PVT(:,:,:)) )
+             -DZF( MYM(PRWCT(:,:,:))*MZM(PVT(:,:,:)) )
 IF (LBUDGET_V)  CALL BUDGET (PRVS,2,'ADVZ_BU_RV')
 !
 !
 PRWS(:,:,:) = PRWS(:,:,:)                              &
-             -DXF( MZM(1,IKU,1,PRUCT(:,:,:))*MXM(PWT(:,:,:)) ) 
+             -DXF( MZM(PRUCT(:,:,:))*MXM(PWT(:,:,:)) )
 IF (LBUDGET_W)  CALL BUDGET (PRWS,3,'ADVX_BU_RW')
 !
 PRWS(:,:,:) = PRWS(:,:,:)                              &
-             -DYF( MZM(1,IKU,1,PRVCT(:,:,:))*MYM(PWT(:,:,:)) ) 
+             -DYF( MZM(PRVCT(:,:,:))*MYM(PWT(:,:,:)) )
 IF (LBUDGET_W)  CALL BUDGET (PRWS,3,'ADVY_BU_RW')
 !
 PRWS(:,:,:) = PRWS(:,:,:)                              &
-             -DZM(1,IKU,1, MZF(1,IKU,1,PRWCT(:,:,:))*MZF(1,IKU,1,PWT(:,:,:)) )
+             -DZM( MZF(PRWCT(:,:,:))*MZF(PWT(:,:,:)) )
 IF (LBUDGET_W)  CALL BUDGET (PRWS,3,'ADVZ_BU_RW')
 !
 !-------------------------------------------------------------------------------
diff --git a/src/MNH/advecuvw_2nd.f90 b/src/MNH/advecuvw_2nd.f90
index 9b0999450cbd6da96e0c9b934fb38d51e9a47bde..a8313c2f5e94de2a323694ca77fb9c364b3eab6f 100644
--- a/src/MNH/advecuvw_2nd.f90
+++ b/src/MNH/advecuvw_2nd.f90
@@ -1,13 +1,8 @@
-!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 1994-2020 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
-!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt  
+!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
 !-----------------------------------------------------------------
-!--------------- special set of characters for RCS information
-!-----------------------------------------------------------------
-! $Source$ $Revision$
-! MASDEV4_7 adiab 2006/05/18 13:07:25
-!-----------------------------------------------------------------
 !     ####################
       MODULE MODI_ADVECUVW_2ND 
 !     ####################
@@ -117,13 +112,8 @@ REAL, DIMENSION(:,:,:),   INTENT(IN)    :: PRWCT     ! of momentum
 !
 REAL, DIMENSION(:,:,:),   INTENT(INOUT) :: PRUS, PRVS, PRWS ! Sources of Momentum
 !
-INTEGER :: IKU
-!
-!  
 !-------------------------------------------------------------------------------
 !
-IKU=SIZE(XZHAT)
-!
 !*       1.     COMPUTES THE ADVECTIVE TENDANCIES
 !	        ---------------------------------
 !
@@ -134,7 +124,7 @@ PRUS(:,:,:) = PRUS(:,:,:)                              &
              -DYF( MXM(PRVCT(:,:,:))*MYM(PUT(:,:,:)) ) 
 !
 PRUS(:,:,:) = PRUS(:,:,:)                              &
-             -DZF(1,IKU,1, MXM(PRWCT(:,:,:))*MZM(1,IKU,1,PUT(:,:,:)) )
+             -DZF( MXM(PRWCT(:,:,:))*MZM(PUT(:,:,:)) )
 !
 !
 PRVS(:,:,:) = PRVS(:,:,:)                              &
@@ -144,17 +134,17 @@ PRVS(:,:,:) = PRVS(:,:,:)                              &
              -DYM( MYF(PRVCT(:,:,:))*MYF(PVT(:,:,:)) )  
 !
 PRVS(:,:,:) = PRVS(:,:,:)                              &
-             -DZF(1,IKU,1, MYM(PRWCT(:,:,:))*MZM(1,IKU,1,PVT(:,:,:)) )
+             -DZF( MYM(PRWCT(:,:,:))*MZM(PVT(:,:,:)) )
 !
 !
 PRWS(:,:,:) = PRWS(:,:,:)                              &
-             -DXF( MZM(1,IKU,1,PRUCT(:,:,:))*MXM(PWT(:,:,:)) ) 
+             -DXF( MZM(PRUCT(:,:,:))*MXM(PWT(:,:,:)) )
 !
 PRWS(:,:,:) = PRWS(:,:,:)                              &
-             -DYF( MZM(1,IKU,1,PRVCT(:,:,:))*MYM(PWT(:,:,:)) ) 
+             -DYF( MZM(PRVCT(:,:,:))*MYM(PWT(:,:,:)) )
 !
 PRWS(:,:,:) = PRWS(:,:,:)                              &
-             -DZM(1,IKU,1, MZF(1,IKU,1,PRWCT(:,:,:))*MZF(1,IKU,1,PWT(:,:,:)) )
+             -DZM( MZF(PRWCT(:,:,:))*MZF(PWT(:,:,:)) )
 !
 !-------------------------------------------------------------------------------
 !
diff --git a/src/MNH/advecuvw_4th.f90 b/src/MNH/advecuvw_4th.f90
index c7dc02979b1e6b27f225c854ce57f7c04cc202d8..c2a340ffe8ab39817529e94173ae285102ac3eb8 100644
--- a/src/MNH/advecuvw_4th.f90
+++ b/src/MNH/advecuvw_4th.f90
@@ -208,12 +208,6 @@ TYPE(HALO2LIST_ll), POINTER :: TPHALO2LIST ! list for diffusion
 !
 !*       0.2   Declarations of local variables :
 !
-INTEGER:: IIB,IJB        ! Begining useful area  in x,y,z directions
-INTEGER:: IIE,IJE        ! End useful area in x,y,z directions
-#ifndef MNH_OPENACC
-INTEGER :: IKU
-#endif
-!
 TYPE(HALO2LIST_ll), POINTER :: TZHALO2LIST
 !
 INTEGER :: IGRID ! localisation on the model grid
@@ -265,16 +259,6 @@ IF (MPPDB_INITIALIZED) THEN
 END IF
 !-------------------------------------------------------------------------------
 !
-!*       1.     COMPUTES THE DOMAIN DIMENSIONS
-!               ------------------------------
-!
-CALL GET_INDICE_ll(IIB,IJB,IIE,IJE)
-!
-#ifndef MNH_OPENACC
-IKU=SIZE(XZHAT)
-#endif
-!-------------------------------------------------------------------------------
-!
 !*       2.     CALL THE ADVEC_4TH_ORDER_ALGO ROUTINE FOR MOMENTUM
 !               --------------------------------------------------
 !
@@ -295,7 +279,7 @@ PRUS(:,:,:) = PRUS(:,:,:)                          &
              -DYF( MXM(PRVCT(:,:,:))*ZMEANY(:,:,:) ) 
 !
 PRUS(:,:,:) = PRUS(:,:,:)                             &
-             -DZF(1,IKU,1, MXM(PRWCT(:,:,:))*MZM4(PUT(:,:,:)) )
+             -DZF( MXM(PRWCT(:,:,:))*MZM4(PUT(:,:,:)) )
 #else
 call mxf_device(PRUCT,ZTEMP1)
 !$acc kernels
@@ -344,7 +328,7 @@ PRVS(:,:,:) = PRVS(:,:,:)                          &
              -DYM( MYF(PRVCT(:,:,:))*ZMEANY(:,:,:) )  
 !
 PRVS(:,:,:) = PRVS(:,:,:)                             &
-             -DZF(1,IKU,1, MYM(PRWCT(:,:,:))*MZM4(PVT(:,:,:)) )
+             -DZF( MYM(PRWCT(:,:,:))*MZM4(PVT(:,:,:)) )
 #else
 call mym_device(PRUCT,ZTEMP1)
 !$acc kernels
@@ -389,13 +373,13 @@ IGRID = 4
 !
 #ifndef MNH_OPENACC
 PRWS(:,:,:) = PRWS(:,:,:)                          &
-             -DXF( MZM(1,IKU,1,PRUCT(:,:,:))*ZMEANX(:,:,:) ) 
+             -DXF( MZM(PRUCT(:,:,:))*ZMEANX(:,:,:) )
 !
 PRWS(:,:,:) = PRWS(:,:,:)                          &
-             -DYF( MZM(1,IKU,1,PRVCT(:,:,:))*ZMEANY(:,:,:) ) 
+             -DYF( MZM(PRVCT(:,:,:))*ZMEANY(:,:,:) )
 !
 PRWS(:,:,:) = PRWS(:,:,:)                             &
-             -DZM(1,IKU,1, MZF(1,IKU,1,PRWCT(:,:,:))*MZF4(PWT(:,:,:)) )
+             -DZM( MZF(PRWCT(:,:,:))*MZF4(PWT(:,:,:)) )
 #else
 call mzm_device(PRUCT,ZTEMP1)
 !$acc kernels
diff --git a/src/MNH/advecuvw_weno_k.f90 b/src/MNH/advecuvw_weno_k.f90
index d506dd3dfb9b7136bc9ea8c41f774564a59f7a99..96c6a85e5e6ea000a1a2508d7b2bc815c3fca85a 100644
--- a/src/MNH/advecuvw_weno_k.f90
+++ b/src/MNH/advecuvw_weno_k.f90
@@ -1,8 +1,8 @@
-!MNH_LIC Copyright 2013-2019 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 2013-2020 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
 !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
-!-------------------------------------------------------------------------------
+!-----------------------------------------------------------------
 !     ###########################
       MODULE MODI_ADVECUVW_WENO_K
 !     ###########################
@@ -127,9 +127,7 @@ REAL, DIMENSION(:,:,:), allocatable :: ZMEAN, ZWORK
 REAL, DIMENSION(:,:,:) :: ZMEAN, ZWORK
 #endif
 !
-INTEGER :: K_SCHEME
 INTEGER :: IKU
-INTEGER :: IWORK
 #ifdef MNH_OPENACC
 INTEGER :: IZFPOS1, IZFPOS2, IZFPOS3
 INTEGER :: IZFNEG1, IZFNEG2, IZFNEG3
@@ -186,7 +184,7 @@ CASE(1) ! WENO 1
 !
   PRUS = PRUS - DYF(UP_MY(PUT,MXM(PRVCT)))
 !
-  PRUS = PRUS - DZF(1,IKU,1,UP_MZ(PUT,MXM(PRWCT)))
+  PRUS = PRUS - DZF(UP_MZ(PUT,MXM(PRWCT)))
 !
 ! V component
 !
@@ -194,15 +192,15 @@ CASE(1) ! WENO 1
 !
   PRVS = PRVS - DYM(UP_VY(PVT,MYF(PRVCT)))
 !
-  PRVS = PRVS - DZF(1,IKU,1,UP_MZ(PVT,MYM(PRWCT)))
+  PRVS = PRVS - DZF(UP_MZ(PVT,MYM(PRWCT)))
 !
 ! W component
 !
-  PRWS = PRWS - DXF(UP_MX(PWT,MZM(1,IKU,1,PRUCT)))
+  PRWS = PRWS - DXF(UP_MX(PWT,MZM(PRUCT)))
 !
-  PRWS = PRWS - DYF(UP_MY(PWT,MZM(1,IKU,1,PRVCT)))
+  PRWS = PRWS - DYF(UP_MY(PWT,MZM(PRVCT)))
 !
-  PRWS = PRWS - DZM(1,IKU,1,UP_WZ(PWT,MZF(1,IKU,1,PRWCT)))
+  PRWS = PRWS - DZM(UP_WZ(PWT,MZF(PRWCT)))
 #else
 !
 !  U component
@@ -301,7 +299,7 @@ CASE(3) ! WENO 3
     PRUS = PRUS - DYF(ZMEAN)
   END IF
 !
-  PRUS = PRUS - DZF(1,IKU,1,WENO_K_2_MZ(PUT, MXM(PRWCT)))
+  PRUS = PRUS - DZF(WENO_K_2_MZ(PUT, MXM(PRWCT)))
 !
 ! V component
 !
@@ -314,22 +312,22 @@ CASE(3) ! WENO 3
     CALL ADVEC_WENO_K_2_VY(HLBCY, PVT, ZWORK, ZMEAN, TZHALO2_VT%HALO2)
     PRVS = PRVS - DYM(ZMEAN)
 !
-    PRVS = PRVS - DZF(1,IKU,1,WENO_K_2_MZ(PVT, MYM(PRWCT)))
+    PRVS = PRVS - DZF(WENO_K_2_MZ(PVT, MYM(PRWCT)))
   END IF
 !
 ! W component
 !
-  ZWORK = MZM(1,IKU,1,PRUCT)
+  ZWORK = MZM(PRUCT)
   CALL ADVEC_WENO_K_2_MX(HLBCX, PWT, ZWORK, ZMEAN, TZHALO2_WT%HALO2)
   PRWS = PRWS - DXF(ZMEAN)
 !
   IF (.NOT.L2D) THEN
-    ZWORK = MZM(1,IKU,1,PRVCT)
+    ZWORK = MZM(PRVCT)
     CALL ADVEC_WENO_K_2_MY(HLBCY, PWT, ZWORK, ZMEAN, TZHALO2_WT%HALO2)
     PRWS = PRWS - DYF(ZMEAN)
   END IF
 !
-  PRWS = PRWS - DZM(1,IKU,1,WENO_K_2_WZ(PWT,MZF(1,IKU,1,PRWCT)))
+  PRWS = PRWS - DZM(WENO_K_2_WZ(PWT,MZF(PRWCT)))
 #else
   CALL MNH_GET_ZT3D(IZFPOS1,IZFPOS2,IZFNEG1,IZFNEG2,IZBPOS1,IZBPOS2,IZBNEG1,IZBNEG2,IZOMP1,IZOMP2,IZOMN1,IZOMN2)
 !
@@ -463,7 +461,7 @@ CASE(5) ! WENO 5
 !
   ZMEAN = WENO_K_3_MZ(PUT, MXM(PRWCT))
   CALL GET_HALO(ZMEAN)! Update HALO - maybe not necessary (T.Lunet)
-  PRUS = PRUS - DZF(1,IKU,1,ZMEAN) 
+  PRUS = PRUS - DZF(ZMEAN)
 !
 ! V component, only called in 3D case
 !
@@ -481,27 +479,27 @@ CASE(5) ! WENO 5
 !
     ZMEAN = WENO_K_3_MZ(PVT, MYM(PRWCT))
     CALL GET_HALO(ZMEAN)! Update HALO - maybe not necessary (T.Lunet)
-    PRVS = PRVS - DZF(1,IKU,1,ZMEAN) 
+    PRVS = PRVS - DZF(ZMEAN)
 !
   END IF
 !
 ! W component
 !
-  ZWORK = MZM(1,IKU,1,PRUCT)
+  ZWORK = MZM(PRUCT)
   CALL ADVEC_WENO_K_3_MX(HLBCX, PWT, ZWORK, ZMEAN)
   CALL GET_HALO(ZMEAN)! Update HALO
   PRWS = PRWS - DXF(ZMEAN)
 !
   IF (.NOT.L2D) THEN! 3D Case
-    ZWORK = MZM(1,IKU,1,PRVCT)
+    ZWORK = MZM(PRVCT)
     CALL ADVEC_WENO_K_3_MY(HLBCY, PWT, ZWORK, ZMEAN)
     CALL GET_HALO(ZMEAN)! Update HALO
     PRWS = PRWS - DYF(ZMEAN)
   END IF
 !
-  ZMEAN = WENO_K_3_WZ(PWT,MZF(1,IKU,1,PRWCT))
+  ZMEAN = WENO_K_3_WZ(PWT,MZF(PRWCT))
   CALL GET_HALO(ZMEAN)! Update HALO - maybe not necessary (T.Lunet)
-  PRWS = PRWS - DZM(1,IKU,1,ZMEAN)
+  PRWS = PRWS - DZM(ZMEAN)
 #else
   CALL MNH_GET_ZT3D(IZFPOS1,IZFPOS2,IZFPOS3,IZFNEG1,IZFNEG2,IZFNEG3,IZBPOS1, &
                     IZBPOS2,IZBPOS3,IZBNEG1,IZBNEG2,IZBNEG3,IZOMP1,IZOMP2,IZOMP3,IZOMN1,IZOMN2,IZOMN3)
diff --git a/src/MNH/anel_balancen.f90 b/src/MNH/anel_balancen.f90
index 21c83f052591ee0cf8e0540429d0a661075c3a58..743c5b5c7f57048cb103e29372c2e9748c70dd21 100644
--- a/src/MNH/anel_balancen.f90
+++ b/src/MNH/anel_balancen.f90
@@ -1,4 +1,4 @@
-!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 1994-2020 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
 !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
@@ -233,7 +233,7 @@ CALL MPPDB_CHECK3D(XWT,"anel_balancen3.1-after update halo::XWT",PRECISION)
 !
 ZRU(:,:,:) = MXM(XRHODJ) * XUT(:,:,:)
 ZRV(:,:,:) = MYM(XRHODJ) * XVT(:,:,:)
-ZRW(:,:,:) = MZM(1,IKU,1,XRHODJ) * XWT(:,:,:)
+ZRW(:,:,:) = MZM(XRHODJ) * XWT(:,:,:)
 ZTH(:,:,:) = XTHT(:,:,:)
 ALLOCATE(ZRR(SIZE(XRHODJ,1),SIZE(XRHODJ,2),SIZE(XRHODJ,3),SIZE(XRT,4)))
 ZRR(:,:,:,:) = XRT(:,:,:,:)
@@ -288,7 +288,7 @@ DEALLOCATE(ZBFY,ZTRIGSX,ZTRIGSY,ZRR,ZBF_SXP2_YP1_Z)
 !20131112 appli update_halo_ll and associated operations
 XUT(:,:,:) = ZRU(:,:,:) / MXM(XRHODJ)
 XVT(:,:,:) = ZRV(:,:,:) / MYM(XRHODJ)
-XWT(:,:,:) = ZRW(:,:,:) / MZM(1,IKU,1,XRHODJ)
+XWT(:,:,:) = ZRW(:,:,:) / MZM(XRHODJ)
 !20131112 appli update_halo_ll to XUT,XVT,XWT
 CALL ADD3DFIELD_ll( TZFIELDS_ll, XUT, 'ANEL_BALANCE_n::XUT' )
 CALL ADD3DFIELD_ll( TZFIELDS_ll, XVT, 'ANEL_BALANCE_n::XVT' )
diff --git a/src/MNH/anti_diff.f90 b/src/MNH/anti_diff.f90
index d2dd37c190ac49f5609a93e584eaacb99e87d2ce..56372bfeccbfd1529118443c2bcef1ecc3f89675 100644
--- a/src/MNH/anti_diff.f90
+++ b/src/MNH/anti_diff.f90
@@ -1,13 +1,8 @@
-!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 1995-2020 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
-!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt  
+!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
 !-----------------------------------------------------------------
-!--------------- special set of characters for RCS information
-!-----------------------------------------------------------------
-! $Source$ $Revision$
-! MASDEV4_7 adiab 2006/12/12 15:06:20
-!-----------------------------------------------------------------
 !     ##########################
       MODULE MODI_ANTI_DIFF 
 !     ##########################
@@ -156,44 +151,44 @@ IKE=IKU-JPVEXT
            (MXM(PAS(:,:,:))+ZEPSILON) 
   ZB(:,:,:)=PRAVCT(:,:,:)*DYM(PAS(:,:,:)/PRHODJ(:,:,:))/      &
            (MYM(PAS(:,:,:))+ZEPSILON) 
-  ZC(:,:,:)=PRAWCT(:,:,:)*DZM(1,IKU,1,PAS(:,:,:)/PRHODJ(:,:,:))/      &
-           (MZM(1,IKU,1,PAS(:,:,:))+ZEPSILON) 
+  ZC(:,:,:)=PRAWCT(:,:,:)*DZM(PAS(:,:,:)/PRHODJ(:,:,:))/      &
+           (MZM(PAS(:,:,:))+ZEPSILON)
 !
 !       1.2 Calculation antidiffusion velocities  
 !           ------------------------------------
 !
 ! u-component antidiffusive velocity
 !
-  PRAUCT(:,:,:)=PTSTEP/2.* (                                         & 
+  PRAUCT(:,:,:)=PTSTEP/2.* (                                      &
                           ZA*(                                    &
                                      MXM(PRHODJ)*SIGN(1.,PRAUCT)  &
                                     /ZDBLTST-                     &
                                      PRAUCT                       &
                                     )-                            &
-                          PRAUCT*MXM(MYF(ZB)+MZF(1,IKU,1,ZC))             &
+                          PRAUCT*MXM(MYF(ZB)+MZF(ZC))             &
                         )
 !  
 ! v-component antidiffusive velocity
 !
-  PRAVCT(:,:,:)=PTSTEP/2.* (                                         & 
+  PRAVCT(:,:,:)=PTSTEP/2.* (                                      &
                           ZB*(                                    &
                                      MYM(PRHODJ)*SIGN(1.,PRAVCT)  &
                                     /ZDBLTST-                     &
                                      PRAVCT                       &
                                     )-                            &
-                          PRAVCT*MYM(MXF(ZA)+MZF(1,IKU,1,ZC))             &
+                          PRAVCT*MYM(MXF(ZA)+MZF(ZC))             &
                         )
 !  
 !  
 ! w-component antidiffusive velocity
 !
-  PRAWCT(:,:,:)=PTSTEP/2.* (                                         & 
+  PRAWCT(:,:,:)=PTSTEP/2.* (                                      &
                           ZC*(                                    &
-                                     MZM(1,IKU,1,PRHODJ)*SIGN(1.,PRAWCT)  &
+                                     MZM(PRHODJ)*SIGN(1.,PRAWCT)  &
                                     /ZDBLTST-                     &
                                      PRAWCT                       &
                                      )-                           &
-                          PRAWCT*MZM(1,IKU,1,MXF(ZA)+MYF(ZB))             &
+                          PRAWCT*MZM(MXF(ZA)+MYF(ZB))             &
                         )
 ! 
 !       1.3 Limit of the antidiffusive velocities to satisfy CFL<1
diff --git a/src/MNH/compute_exner_from_ground.f90 b/src/MNH/compute_exner_from_ground.f90
index cbb64d0376d42b3af52447f12503b78531513f23..60225dbf11bd04c14b13258431b8ffbfcc084e8d 100644
--- a/src/MNH/compute_exner_from_ground.f90
+++ b/src/MNH/compute_exner_from_ground.f90
@@ -1,4 +1,4 @@
-!MNH_LIC Copyright 1996-2019 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 1996-2020 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
 !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
@@ -150,7 +150,7 @@ ZGSCPD = XG/XCPD
 !*       2.   COMPUTATION OF THE EXNER FUNCTION AT FLUX POINTS
 !             ------------------------------------------------
 !
-ZZM=MZF(1,IKU,1,PZFLUX)
+ZZM=MZF(PZFLUX)
 PEXNFLUX(:,:,IKB)=PEXNSURF2D(:,:)
 IF (LCARTESIAN .OR. LTHINSHELL) THEN
   ZD1=0.
diff --git a/src/MNH/compute_exner_from_top.f90 b/src/MNH/compute_exner_from_top.f90
index e195e725de1cf4e020487bbf3f2de6e052415b76..4048672a15b4470c3aa6d6987e61d26f8d219b36 100644
--- a/src/MNH/compute_exner_from_top.f90
+++ b/src/MNH/compute_exner_from_top.f90
@@ -1,4 +1,4 @@
-!MNH_LIC Copyright 1996-2019 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 1996-2020 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
 !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
@@ -149,7 +149,7 @@ ZGSCPD = XG/XCPD
 !*       2.   COMPUTATION OF THE EXNER FUNCTION AT FLUX POINTS
 !             ------------------------------------------------
 !
-ZZM=MZF(1,IKU,1,PZFLUX)
+ZZM=MZF(PZFLUX)
 PEXNFLUX(:,:,IKE+1)=PEXNTOP2D(:,:)
 IF (LCARTESIAN .OR. LTHINSHELL) THEN
   ZD1=0.
diff --git a/src/MNH/compute_r00.f90 b/src/MNH/compute_r00.f90
index 326ad848a66ed48e11a8d2e72c33669d74e77d53..f04fff457b412175924dfa7147d68667846ae4f9 100644
--- a/src/MNH/compute_r00.f90
+++ b/src/MNH/compute_r00.f90
@@ -1,4 +1,4 @@
-!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 1994-2020 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
 !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
@@ -113,7 +113,6 @@ LOGICAL                            :: GSTART
 INTEGER                            :: INBR_START
 REAL                               :: ZXMAX,ZYMAX,ZZMAX  ! domain extrema
 INTEGER, DIMENSION(100)            :: NBRFILES 
-INTEGER                            :: IKU
 TYPE(TFIELDDATA)                   :: TZFIELD
 TYPE(TFILEDATA),POINTER            :: TZTRACFILE
 !
@@ -124,7 +123,6 @@ TYPE(TFILEDATA),POINTER            :: TZTRACFILE
 !
 TZTRACFILE => NULL()
 ZSPVAL=-1.E+11
-IKU=SIZE(XZHAT)
 !
 !-------------------------------------------------------------------------------
 !
@@ -193,7 +191,7 @@ ZXOR=0.5 * (XXHAT(2)+XXHAT(3))
 ZYOR=0.5 * (XYHAT(2)+XYHAT(3))
 ZDX= XXHAT(3)-XXHAT(2)
 ZDY= XYHAT(3)-XYHAT(2)
-ZZL=MZF(1,IKU,1,XZZ)
+ZZL=MZF(XZZ)
 ZZL(:,:,NKU)=2*XZZ(:,:,NKU)-ZZL(:,:,NKU-1)
 ZXMAX=ZXOR+(NIU-3)*ZDX
 ZYMAX=ZYOR+(NJU-3)*ZDY
diff --git a/src/MNH/contrav.f90 b/src/MNH/contrav.f90
index 5c3162db80108722eabed6b7d328dac4523efe87..bcfab6069af65f513ca497c7095c97acb9e0ebed 100644
--- a/src/MNH/contrav.f90
+++ b/src/MNH/contrav.f90
@@ -1,4 +1,4 @@
-!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 1994-2020 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
 !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
@@ -95,9 +95,6 @@ END MODULE MODI_CONTRAV
 !!
 !!    EXTERNAL 
 !!    --------
-!!      MXF, MYF, MZM         : Shuman functions (mean operators)
-!!       
-!!      Module MODI_SHUMAN    : Interface for Shuman functions   
 !!
 !!
 !!    IMPLICIT ARGUMENTS
@@ -137,7 +134,6 @@ USE MODD_GRID_n, ONLY: XZZ
 USE MODD_ARGSLIST_ll, ONLY : HALO2LIST_ll
 USE MODE_ll
 !
-USE MODI_SHUMAN
 USE MODI_GET_HALO
 !
 USE MODE_MPPDB
diff --git a/src/MNH/convection.f90 b/src/MNH/convection.f90
index 2738ac854fe50aabff8b02554b43b0c6f41b6c79..f80a0c0890a70519dac4d25e2daf92f70a644258 100644
--- a/src/MNH/convection.f90
+++ b/src/MNH/convection.f90
@@ -1,4 +1,4 @@
-!MNH_LIC Copyright 1998-2019 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 1998-2020 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
 !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
@@ -396,9 +396,9 @@ END IF
 !*       1.  Center all fields on thermo levels
 !            ----------------------------------
 !
-ZWORK(:,:,:) = MZF(1,IKU,1, PZZ(:,:,:) ) 
+ZWORK(:,:,:) = MZF( PZZ(:,:,:) )
 ZZZ(:,:,:)   = ZWORK(:,:,:) 
-ZWORK(:,:,:) = MZF(1,IKU,1, PWT(:,:,:) ) 
+ZWORK(:,:,:) = MZF( PWT(:,:,:) )
 ZWT(:,:,:)   = ZWORK(:,:,:)
 ZWORK(:,:,:) = MXF( PUT(:,:,:) ) 
 ZUT(:,:,:)   = ZWORK(:,:,:)
diff --git a/src/MNH/dflux_corr.f90 b/src/MNH/dflux_corr.f90
index 20b2b79cbce459f9f3a16947abb5d81c2246d97f..fec030ec7aa25c9434f803dea97a2853cf983a1d 100644
--- a/src/MNH/dflux_corr.f90
+++ b/src/MNH/dflux_corr.f90
@@ -1,4 +1,4 @@
-!MNH_LIC Copyright 1998-2019 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 1998-2020 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
 !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
@@ -204,7 +204,7 @@ PFY(:,:,:) = (0.5+SIGN(0.5,PRVCT(:,:,:)))*MIN( PFY(:,:,:),ZFOUT(:,:,:) )  &
 ZFOUT(:,:,2:IKU) = -ZBETAOUT(:,:,1:IKU-1) ! Second limiter
 ZFOUT(:,:,1)     = 0.0
 !
-PFZ(:,:,:) = PRWCT(:,:,:) * MZM (1,IKU,1,PAT(:,:,:))  
+PFZ(:,:,:) = PRWCT(:,:,:) * MZM (PAT(:,:,:))
 PFZ(:,:,:) = (0.5+SIGN(0.5,PRWCT(:,:,:)))*MIN( PFZ(:,:,:),ZFOUT(:,:,:) )  &
             +(0.5-SIGN(0.5,PRWCT(:,:,:)))*MAX( PFZ(:,:,:),ZBETAOUT(:,:,:) )
 !
diff --git a/src/MNH/diagnos_les_mf.f90 b/src/MNH/diagnos_les_mf.f90
index 31fa13da74a1fc2c0444f1495a15a465801a4214..f537b04f36ac1617a2b8590e1deee9cdd8d0ed52 100644
--- a/src/MNH/diagnos_les_mf.f90
+++ b/src/MNH/diagnos_les_mf.f90
@@ -1,4 +1,4 @@
-!MNH_LIC Copyright 2009-2019 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 2009-2020 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
 !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
@@ -151,83 +151,83 @@ CALL SECOND_MNH2(ZTIME1)
 
     
     ZWORK(:,:,:)=RESHAPE(PWTHMF(:,:),(/ KIU,KJU,KKU /) )
-    CALL LES_VER_INT(MZF(1,KKU,1,ZWORK)  ,ZTHLMFFLX_LES  )
+    CALL LES_VER_INT(MZF(ZWORK)  ,ZTHLMFFLX_LES  )
     CALL LES_MEAN_ll(ZTHLMFFLX_LES,LLES_CURRENT_CART_MASK, &
                     X_LES_SUBGRID_WTHLMF(:,NLES_CURRENT_TCOUNT,1))
     
     ZWORK(:,:,:)=RESHAPE(PWRTMF(:,:),(/ KIU,KJU,KKU /) )
-    CALL LES_VER_INT( MZF(1,KKU,1,ZWORK)  ,ZRTMFFLX_LES  )
+    CALL LES_VER_INT( MZF(ZWORK)  ,ZRTMFFLX_LES  )
     CALL LES_MEAN_ll (ZRTMFFLX_LES , LLES_CURRENT_CART_MASK,          &
                     X_LES_SUBGRID_WRTMF(:,NLES_CURRENT_TCOUNT,1)     )
                     
     ZWORK(:,:,:)=RESHAPE(PWUMF(:,:),(/ KIU,KJU,KKU /) )
-    CALL LES_VER_INT( MZF(1,KKU,1,ZWORK)  ,ZUMFFLX_LES  )
+    CALL LES_VER_INT( MZF(ZWORK)  ,ZUMFFLX_LES  )
     CALL LES_MEAN_ll (ZUMFFLX_LES , LLES_CURRENT_CART_MASK,              &
                     X_LES_SUBGRID_WUMF(:,NLES_CURRENT_TCOUNT,1)     )
                     
     ZWORK(:,:,:)=RESHAPE(PWVMF(:,:),(/ KIU,KJU,KKU /) )
-    CALL LES_VER_INT( MZF(1,KKU,1,ZWORK)  ,ZVMFFLX_LES  )
+    CALL LES_VER_INT( MZF(ZWORK)  ,ZVMFFLX_LES  )
     CALL LES_MEAN_ll (ZVMFFLX_LES , LLES_CURRENT_CART_MASK,                   &
                     X_LES_SUBGRID_WVMF(:,NLES_CURRENT_TCOUNT,1)     )
                     
     ZWORK(:,:,:)=RESHAPE(PWTHVMF(:,:),(/ KIU,KJU,KKU /) )
-    CALL LES_VER_INT( MZF(1,KKU,1,ZWORK)  ,ZTHVMFFLX_LES  )
+    CALL LES_VER_INT( MZF(ZWORK)  ,ZTHVMFFLX_LES  )
     CALL LES_MEAN_ll (ZTHVMFFLX_LES , LLES_CURRENT_CART_MASK,    &
                     X_LES_SUBGRID_WTHVMF(:,NLES_CURRENT_TCOUNT,1)     )
                     
 
     ZWORK(:,:,:)=RESHAPE(PTHL_UP(:,:),(/ KIU,KJU,KKU /) )
-    CALL LES_VER_INT( MZF(1,KKU,1,ZWORK)  ,ZTHLUP_MF_LES  )
+    CALL LES_VER_INT( MZF(ZWORK)  ,ZTHLUP_MF_LES  )
     CALL LES_MEAN_ll (ZTHLUP_MF_LES , LLES_CURRENT_CART_MASK,    &
                    X_LES_SUBGRID_THLUP_MF(:,NLES_CURRENT_TCOUNT,1)     )
                    
     ZWORK(:,:,:)=RESHAPE(PRT_UP(:,:),(/ KIU,KJU,KKU /) )
-    CALL LES_VER_INT( MZF(1,KKU,1,ZWORK)  ,ZRTUP_MF_LES  )
+    CALL LES_VER_INT( MZF(ZWORK)  ,ZRTUP_MF_LES  )
     CALL LES_MEAN_ll (ZRTUP_MF_LES , LLES_CURRENT_CART_MASK,       &
                     X_LES_SUBGRID_RTUP_MF(:,NLES_CURRENT_TCOUNT,1)     )
                     
     ZWORK(:,:,:)=RESHAPE(PRV_UP(:,:),(/ KIU,KJU,KKU /) )
-    CALL LES_VER_INT( MZF(1,KKU,1,ZWORK)  ,ZRVUP_MF_LES  )
+    CALL LES_VER_INT( MZF(ZWORK)  ,ZRVUP_MF_LES  )
     CALL LES_MEAN_ll (ZRVUP_MF_LES , LLES_CURRENT_CART_MASK,       &
                     X_LES_SUBGRID_RVUP_MF(:,NLES_CURRENT_TCOUNT,1)     )
                     
     ZWORK(:,:,:)=RESHAPE(PRC_UP(:,:),(/ KIU,KJU,KKU /) )
-    CALL LES_VER_INT( MZF(1,KKU,1,ZWORK)  ,ZRCUP_MF_LES  )
+    CALL LES_VER_INT( MZF(ZWORK)  ,ZRCUP_MF_LES  )
     CALL LES_MEAN_ll (ZRCUP_MF_LES , LLES_CURRENT_CART_MASK,        &
                     X_LES_SUBGRID_RCUP_MF(:,NLES_CURRENT_TCOUNT,1)     )
                     
     ZWORK(:,:,:)=RESHAPE(PRI_UP(:,:),(/ KIU,KJU,KKU /) )
-    CALL LES_VER_INT( MZF(1,KKU,1,ZWORK)  ,ZRIUP_MF_LES  )
+    CALL LES_VER_INT( MZF(ZWORK)  ,ZRIUP_MF_LES  )
     CALL LES_MEAN_ll (ZRIUP_MF_LES , LLES_CURRENT_CART_MASK,        &
                     X_LES_SUBGRID_RIUP_MF(:,NLES_CURRENT_TCOUNT,1)     )            
                     
     ZWORK(:,:,:)=RESHAPE(PEMF(:,:),(/ KIU,KJU,KKU /) )
-    CALL LES_VER_INT( MZF(1,KKU,1,ZWORK)  ,ZEMF_MF_LES  )
+    CALL LES_VER_INT( MZF(ZWORK)  ,ZEMF_MF_LES  )
     CALL LES_MEAN_ll (ZEMF_MF_LES , LLES_CURRENT_CART_MASK,       &
                    X_LES_SUBGRID_MASSFLUX(:,NLES_CURRENT_TCOUNT,1)     )
                    
     ZWORK(:,:,:)=RESHAPE(PDETR(:,:),(/ KIU,KJU,KKU /) )
-    CALL LES_VER_INT( MZF(1,KKU,1,ZWORK)  ,ZDETR_MF_LES  )
+    CALL LES_VER_INT( MZF(ZWORK)  ,ZDETR_MF_LES  )
     CALL LES_MEAN_ll (ZDETR_MF_LES , LLES_CURRENT_CART_MASK,       &
                    X_LES_SUBGRID_DETR(:,NLES_CURRENT_TCOUNT,1)         )
                    
     ZWORK(:,:,:)=RESHAPE(PENTR(:,:),(/ KIU,KJU,KKU /) )
-    CALL LES_VER_INT( MZF(1,KKU,1,ZWORK)  ,ZENTR_MF_LES  )
+    CALL LES_VER_INT( MZF(ZWORK)  ,ZENTR_MF_LES  )
     CALL LES_MEAN_ll (ZENTR_MF_LES , LLES_CURRENT_CART_MASK,       &
                    X_LES_SUBGRID_ENTR(:,NLES_CURRENT_TCOUNT,1)     )
                    
     ZWORK(:,:,:)=RESHAPE(PW_UP(:,:),(/ KIU,KJU,KKU /) )
-    CALL LES_VER_INT( MZF(1,KKU,1,ZWORK)  ,ZWUP_MF_LES  )
+    CALL LES_VER_INT( MZF(ZWORK)  ,ZWUP_MF_LES  )
     CALL LES_MEAN_ll (ZWUP_MF_LES , LLES_CURRENT_CART_MASK,       &
                    X_LES_SUBGRID_WUP_MF(:,NLES_CURRENT_TCOUNT,1)     )
                    
     ZWORK(:,:,:)=RESHAPE(PFRAC_UP(:,:),(/ KIU,KJU,KKU /) )
-    CALL LES_VER_INT( MZF(1,KKU,1,ZWORK)  ,ZFRACUP_MF_LES  )
+    CALL LES_VER_INT( MZF(ZWORK)  ,ZFRACUP_MF_LES  )
     CALL LES_MEAN_ll (ZFRACUP_MF_LES , LLES_CURRENT_CART_MASK,       &
                    X_LES_SUBGRID_FRACUP(:,NLES_CURRENT_TCOUNT,1)     )
                    
     ZWORK(:,:,:)=RESHAPE(PTHV_UP(:,:),(/ KIU,KJU,KKU /) )
-    CALL LES_VER_INT( MZF(1,KKU,1,ZWORK)  ,ZTHVUP_MF_LES  )
+    CALL LES_VER_INT( MZF(ZWORK)  ,ZTHVUP_MF_LES  )
     CALL LES_MEAN_ll (ZTHVUP_MF_LES , LLES_CURRENT_CART_MASK,       &
                    X_LES_SUBGRID_THVUP_MF(:,NLES_CURRENT_TCOUNT,1)     )
                    
diff --git a/src/MNH/dyn_sources.f90 b/src/MNH/dyn_sources.f90
index d832d614fbad8afb4075ff1fb6b456897dc14c00..3972eae3c41a1702aa2c2c30fae8978658d54933 100644
--- a/src/MNH/dyn_sources.f90
+++ b/src/MNH/dyn_sources.f90
@@ -1,4 +1,4 @@
-!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 1994-2020 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
 !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
@@ -236,28 +236,28 @@ IF ((.NOT.L1D).AND.(.NOT.LCARTESIAN) )  THEN
 !
   ELSE                           !  NO THINSHELL approximation
 !
-    ZWORK3(:,:,:) = 1.0 / ( XRADIUS + MZF(1,IKU,1,PZZ(:,:,:)) )
+    ZWORK3(:,:,:) = 1.0 / ( XRADIUS + MZF(PZZ(:,:,:)) )
     ZWORK1(:,:,:) = SPREAD( PCURVX(:,:),DIM=3,NCOPIES=IKU )
     ZWORK2(:,:,:) = SPREAD( PCURVY(:,:),DIM=3,NCOPIES=IKU )
     CALL MPPDB_CHECK3DM("DYN_SOURCES:ZWORK3,ZWORK1,ZWORK2",PRECISION,&
                       & ZWORK3,ZWORK1,ZWORK2,&
                       & MXM( MYF(ZRVT*PVT) * ZWORK2 * ZWORK3 ) , &
-                      & MXM( ( MYF(PVT) * ZWORK1 - MZF(1,IKU,1,PWT) ) * ZWORK3 ) ,&
-                      & MYF(PVT) * ZWORK1 - MZF(1,IKU,1,PWT) , &
-                      & MYF(PVT) , MZF(1,IKU,1,PWT) , MXM(PWT) , MYM(PWT) )
-    CALL MPPDB_CHECK3DM("DYN_SOURCES:SUITE",PRECISION,&
+                      & MXM( ( MYF(PVT) * ZWORK1 - MZF(PWT) ) * ZWORK3 ) ,&
+                      & MYF(PVT) * ZWORK1 - MZF(PWT) , &
+                      & MYF(PVT) , MZF(PWT) , MXM(PWT) , MYM(PWT) )
+    CALL MPPDB_CHECK3DM("DYN_SOOURCES:SUITE",PRECISION,&
          &  MXM(ZRVT),MXM(PVT),MXM(PWT),MXM(ZWORK1),MXM(ZWORK2),MXM(ZWORK3)  )
 !
     PRUS(:,:,:) = PRUS                                              &
     + MXM( MYF(ZRVT*PVT) * ZWORK2 * ZWORK3 )                        &
-    + ZRUT * MXM( ( MYF(PVT) * ZWORK1 - MZF(1,IKU,1,PWT) ) * ZWORK3 ) 
+    + ZRUT * MXM( ( MYF(PVT) * ZWORK1 - MZF(PWT) ) * ZWORK3 )
 !
     PRVS(:,:,:) = PRVS                                              &
     - MYM( MXF(ZRUT*PUT) * ZWORK1 * ZWORK3 )                        &
-    - ZRVT * MYM( (MXF(PUT) * ZWORK2 + MZF(1,IKU,1,PWT) ) * ZWORK3 )
+    - ZRVT * MYM( (MXF(PUT) * ZWORK2 + MZF(PWT) ) * ZWORK3 )
 !
     PRWS(:,:,:) = PRWS                                              &
-    +MZM(1,IKU,1, ( MXF(ZRUT*PUT) + MYF(ZRVT*PVT) ) * ZWORK3 ) 
+    +MZM( ( MXF(ZRUT*PUT) + MYF(ZRVT*PVT) ) * ZWORK3 )
 !
   END IF
 !
@@ -284,11 +284,11 @@ IF (LCORIO)   THEN
     ZWORK1(:,:,:) = SPREAD( PCORIOX(:,:),DIM=3,NCOPIES=IKU) * PRHODJ(:,:,:) 
     ZWORK2(:,:,:) = SPREAD( PCORIOY(:,:),DIM=3,NCOPIES=IKU) * PRHODJ(:,:,:)
 !
-    PRUS(:,:,:) = PRUS - MXM( ZWORK2 * MZF(1,IKU,1,PWT) ) 
+    PRUS(:,:,:) = PRUS - MXM( ZWORK2 * MZF(PWT) )
 !
-    PRVS(:,:,:) = PRVS - MYM( ZWORK1 * MZF(1,IKU,1,PWT) )
+    PRVS(:,:,:) = PRVS - MYM( ZWORK1 * MZF(PWT) )
 !
-    PRWS(:,:,:) = PRWS + MZM( 1,IKU,1,ZWORK2 * MXF(PUT) + ZWORK1 * MYF(PVT) )
+    PRWS(:,:,:) = PRWS + MZM( ZWORK2 * MXF(PUT) + ZWORK1 * MYF(PVT) )
 !
   END IF
 !
@@ -330,8 +330,8 @@ IF( .NOT.L1D ) THEN
 !
     PRTHS(:,:,:) = PRTHS(:,:,:) +  PRHODJ(:,:,:)                             &
       * ( ( XRD + XRV * PRT(:,:,:,1) ) * ZCPD_OV_RD / ZWORK1(:,:,:)  - 1. )  &
-      * PTHT(:,:,:)/PEXNREF(:,:,:)*MZF(1,IKU,1,PWT(:,:,:))*(ZG_OV_CPD/PTHVREF(:,:,:) &
-      -ZD1*4./7.*PEXNREF(:,:,:)/( XRADIUS+MZF(1,IKU,1,PZZ(:,:,:)) ))
+      * PTHT(:,:,:)/PEXNREF(:,:,:)*MZF(PWT(:,:,:))*(ZG_OV_CPD/PTHVREF(:,:,:) &
+      -ZD1*4./7.*PEXNREF(:,:,:)/( XRADIUS+MZF(PZZ(:,:,:)) ))
 !
   END IF
 !
diff --git a/src/MNH/eddy_fluxn.f90 b/src/MNH/eddy_fluxn.f90
index e2b92e8a98420147be2a4c3807d0e875b003b1eb..9dab9b12ce76bfe752b4bc0609a2e8f4f2f28611 100644
--- a/src/MNH/eddy_fluxn.f90
+++ b/src/MNH/eddy_fluxn.f90
@@ -1,6 +1,6 @@
-!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 2004-2020 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
-!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt  
+!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
 !-----------------------------------------------------------------
 !     #######################
@@ -232,7 +232,7 @@ ZBETA(:,:,:) = GX_M_U(1,IKU,1,ZCORIOZ(:,:,:),XDXX,XDZZ,XDZX)
 ZCORIOZ(:,:,:)= MXM(ZCORIOZ(:,:,:))
 ! Dry Brunt Vaisal frequency
 
-ZWORK32(:,:,:)=DZM(1,IKU,1,PTHM(:,:,:))/ MZM(1,IKU,1,PTHM(:,:,:))
+ZWORK32(:,:,:)=DZM(PTHM(:,:,:))/ MZM(PTHM(:,:,:))
 DO JK=1,(IKE+1)
    DO JJ=1,(IJE+1)
       DO JI=1,(IIE+1)
diff --git a/src/MNH/endstep.f90 b/src/MNH/endstep.f90
index 9a3da2c5443fb7d07a7e43c62891df3b1d1e7ea9..2906923ac0435622452e3ca2cf5cf1d678e3e619 100644
--- a/src/MNH/endstep.f90
+++ b/src/MNH/endstep.f90
@@ -1,12 +1,8 @@
-!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 1994-2020 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
-!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt  
+!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
 !-----------------------------------------------------------------
-!--------------- special set of characters for RCS information
-!-----------------------------------------------------------------
-! $Source: /srv/cvsroot/MNH-VX-Y-Z/src/MNH/endstep.f90,v $ $Revision: 1.2.2.2.2.2.16.1.2.5 $ $Date: 2014/04/22 14:31:38 $
-!-----------------------------------------------------------------
 !     ###################
       MODULE MODI_ENDSTEP
 !     ###################
@@ -280,14 +276,12 @@ REAL, DIMENSION(:,:),     INTENT(INOUT) :: PZWS                  ! significant w
 !*      0.2  DECLARATIONS OF LOCAL VARIABLES
 !
 INTEGER:: JSV                  ! loop counters
-INTEGER :: IKU
 INTEGER :: IIB, IIE  ! index of first and last inner mass points along x
 INTEGER :: IJB, IJE  ! index of first and last inner mass points along y
 !
 !------------------------------------------------------------------------------
 !
 CALL GET_INDICE_ll (IIB,IJB,IIE,IJE)
-IKU=SIZE(XZHAT)
 !
 !*      1.   ASSELIN FILTER
 !
@@ -544,7 +538,7 @@ IF (LBU_ENABLE) THEN
 !
   IF (LBUDGET_U)   CALL BUDGET (PUS*MXM(PRHODJ)/PTSTEP,1,'ENDF_BU_RU')
   IF (LBUDGET_V)   CALL BUDGET (PVS*MYM(PRHODJ)/PTSTEP,2,'ENDF_BU_RV')
-  IF (LBUDGET_W)   CALL BUDGET (PWS*MZM(1,IKU,1,PRHODJ)/PTSTEP,3,'ENDF_BU_RW')
+  IF (LBUDGET_W)   CALL BUDGET (PWS*MZM(PRHODJ)/PTSTEP,3,'ENDF_BU_RW')
   IF (LBUDGET_TH)  CALL BUDGET (PTHS*PRHODJ/PTSTEP,4,'ENDF_BU_RTH')
   IF (LBUDGET_TKE) CALL BUDGET (PTKES*PRHODJ/PTSTEP,5,'ENDF_BU_RTKE')
   IF (LBUDGET_RV)  CALL BUDGET (PRS(:,:,:,1)*PRHODJ/PTSTEP,6,'ENDF_BU_RRV')
diff --git a/src/MNH/exchange.f90 b/src/MNH/exchange.f90
index b6d8bb8b3a90378304d730c19fbdfeecb932cef2..2f606e359c72593604d6fca4d0a4af618391341d 100644
--- a/src/MNH/exchange.f90
+++ b/src/MNH/exchange.f90
@@ -1,4 +1,4 @@
-!MNH_LIC Copyright 1998-2019 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 1998-2020 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
 !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
@@ -130,14 +130,12 @@ REAL, DIMENSION(:,:,:,:), INTENT(INOUT) :: PRRS,PRSVS         !
 INTEGER   :: IINFO_ll              ! return code of parallel routine
 INTEGER   :: JRR,JSV              ! loop counters
 !
-INTEGER   :: IKU
 INTEGER   :: ILUOUT         ! logical unit numbers of output-listing
 INTEGER   :: IRESP          ! IRESP  : return-code if a problem appears
                                     !in LFI subroutines at the open of the file
 REAL      :: ZRATIO, ZMASSTOT, ZMASSPOS
 !------------------------------------------------------------------------------
 !
-IKU=SIZE(XZHAT)
 ILUOUT = TLUOUT%NLU
 !
 !*       1.     TRANSFORMS THE SOURCE TERMS INTO PROGNOSTIC VARIABLES
@@ -147,7 +145,7 @@ ILUOUT = TLUOUT%NLU
 !
 PRUS(:,:,:) = PRUS(:,:,:)*PTSTEP / MXM(PRHODJ)
 PRVS(:,:,:) = PRVS(:,:,:)*PTSTEP / MYM(PRHODJ)
-PRWS(:,:,:) = PRWS(:,:,:)*PTSTEP / MZM(1,IKU,1,PRHODJ)
+PRWS(:,:,:) = PRWS(:,:,:)*PTSTEP / MZM(PRHODJ)
 !
 !        1.b Meteorological scalar variables
 !
diff --git a/src/MNH/fct_met.f90 b/src/MNH/fct_met.f90
index 653b238a2235d29b15a741ebfa791eb13b544a65..b484dc59300c87cdd2ab214e74ec5fc03daffcef 100644
--- a/src/MNH/fct_met.f90
+++ b/src/MNH/fct_met.f90
@@ -1,13 +1,8 @@
-!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 1994-2020 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
-!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt  
+!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
 !-----------------------------------------------------------------
-!--------------- special set of characters for RCS information
-!-----------------------------------------------------------------
-! $Source$ $Revision$
-! MASDEV4_7 newsrc 2006/06/06 12:00:47
-!-----------------------------------------------------------------
 !     ######################
       MODULE MODI_FCT_MET
 !     ######################
@@ -153,10 +148,8 @@ REAL, DIMENSION(SIZE(PTHT,1),SIZE(PTHT,2),SIZE(PTHT,3)) ::  &
 REAL                                                    :: ZMINR,ZMINTKE
                                                   ! Absolute minimum values of
                                                   ! water substances, TKE
-INTEGER :: IKU                                                  
 !-------------------------------------------------------------------------------
 !
-IKU=SIZE(XZHAT)
 !*       1.   FLUX-CORRECTED TRANSPORT ADVECTION SCHEME for the HMET group
 !
 !
@@ -175,7 +168,7 @@ IKU=SIZE(XZHAT)
   IF (LBUDGET_TH) CALL BUDGET (PRTHS,4,'ADVY_BU_RTH')
 !
   PRTHS(:,:,:) = PRTHS(:,:,:)                            &
-                - DZF(1,IKU,1,PRWCT(:,:,:)*MZM (1,IKU,1,PTHT(:,:,:)))     
+                - DZF(PRWCT(:,:,:)*MZM (PTHT(:,:,:)))
   IF (LBUDGET_TH) CALL BUDGET (PRTHS,4,'ADVZ_BU_RTH')
 !
 !*       1.2 No condensation case: Vapor ---> advected by a FCT scheme
@@ -196,7 +189,7 @@ IKU=SIZE(XZHAT)
     IF (LBUDGET_RV)                          & 
                               CALL BUDGET (PRRS(:,:,:,1),6 ,'ADVY_BU_RRV')
 !
-    PRRS(:,:,:,1) = PRRS(:,:,:,1) - DZF(1,IKU,1,ZFZ(:,:,:))
+    PRRS(:,:,:,1) = PRRS(:,:,:,1) - DZF(ZFZ(:,:,:))
     IF (LBUDGET_RV)                          &
                               CALL BUDGET (PRRS(:,:,:,1),6 ,'ADVZ_BU_RRV')
   END IF 
@@ -212,7 +205,7 @@ IKU=SIZE(XZHAT)
 !
   ZFX(:,:,:) = PRUCT(:,:,:) * MXM (PRT(:,:,:,2))    !
   ZFY(:,:,:) = PRVCT(:,:,:) * MYM (PRT(:,:,:,2))    ! CENtred scheme for rc
-  ZFZ(:,:,:) = PRWCT(:,:,:) * MZM (1,IKU,1,PRT(:,:,:,2))    !
+  ZFZ(:,:,:) = PRWCT(:,:,:) * MZM (PRT(:,:,:,2))    !
 !
   ZRTFX(:,:,:) = ZRTFX(:,:,:) - ZFX(:,:,:)        !
   ZRTFY(:,:,:) = ZRTFY(:,:,:) - ZFY(:,:,:)        !  rv fluxes deduction
@@ -228,8 +221,8 @@ IKU=SIZE(XZHAT)
   IF (LBUDGET_RV) CALL BUDGET (PRRS(:,:,:,1),6 ,'ADVY_BU_RRV')
   IF (LBUDGET_RC) CALL BUDGET (PRRS(:,:,:,2),7 ,'ADVY_BU_RRC')
 !
-  PRRS(:,:,:,1) = PRRS(:,:,:,1) - DZF(1,IKU,1,ZRTFZ(:,:,:))
-  PRRS(:,:,:,2) = PRRS(:,:,:,2) - DZF(1,IKU,1,  ZFZ(:,:,:))
+  PRRS(:,:,:,1) = PRRS(:,:,:,1) - DZF(ZRTFZ(:,:,:))
+  PRRS(:,:,:,2) = PRRS(:,:,:,2) - DZF(  ZFZ(:,:,:))
   IF (LBUDGET_RV) CALL BUDGET (PRRS(:,:,:,1),6 ,'ADVZ_BU_RRV')
   IF (LBUDGET_RC) CALL BUDGET (PRRS(:,:,:,2),7 ,'ADVZ_BU_RRC')
 !
@@ -248,7 +241,7 @@ IKU=SIZE(XZHAT)
 !
   ZFX(:,:,:) = PRUCT(:,:,:) * MXM (PRT(:,:,:,2))    !
   ZFY(:,:,:) = PRVCT(:,:,:) * MYM (PRT(:,:,:,2))    ! CENtred scheme for rc
-  ZFZ(:,:,:) = PRWCT(:,:,:) * MZM (1,IKU,1,PRT(:,:,:,2))    !
+  ZFZ(:,:,:) = PRWCT(:,:,:) * MZM (PRT(:,:,:,2))    !
 !
   ZRTFX(:,:,:) = ZRTFX(:,:,:) - ZFX(:,:,:)        !
   ZRTFY(:,:,:) = ZRTFY(:,:,:) - ZFY(:,:,:)        ! rv+ri fluxes deduction
@@ -260,13 +253,13 @@ IKU=SIZE(XZHAT)
   PRRS(:,:,:,2) = PRRS(:,:,:,2) - DYF(  ZFY(:,:,:))
   IF (LBUDGET_RC) CALL BUDGET (PRRS(:,:,:,2),7 ,'ADVY_BU_RRC')
 !
-  PRRS(:,:,:,2) = PRRS(:,:,:,2) - DZF(1,IKU,1,  ZFZ(:,:,:))
+  PRRS(:,:,:,2) = PRRS(:,:,:,2) - DZF(  ZFZ(:,:,:))
   IF (LBUDGET_RC) CALL BUDGET (PRRS(:,:,:,2),7 ,'ADVZ_BU_RRC')
 !
 !
   ZFX(:,:,:) = PRUCT(:,:,:) * MXM (PRT(:,:,:,4))    !
   ZFY(:,:,:) = PRVCT(:,:,:) * MYM (PRT(:,:,:,4))    ! CENtred scheme for ri
-  ZFZ(:,:,:) = PRWCT(:,:,:) * MZM (1,IKU,1,PRT(:,:,:,4))    !
+  ZFZ(:,:,:) = PRWCT(:,:,:) * MZM (PRT(:,:,:,4))    !
 !
   ZRTFX(:,:,:) = ZRTFX(:,:,:) - ZFX(:,:,:)        !
   ZRTFY(:,:,:) = ZRTFY(:,:,:) - ZFY(:,:,:)        !  rv fluxes deduction
@@ -282,8 +275,8 @@ IKU=SIZE(XZHAT)
   IF (LBUDGET_RV) CALL BUDGET (PRRS(:,:,:,1),6 ,'ADVY_BU_RRV')
   IF (LBUDGET_RI) CALL BUDGET (PRRS(:,:,:,4),9 ,'ADVY_BU_RRI')
 !
-  PRRS(:,:,:,1) = PRRS(:,:,:,1) - DZF(1,IKU,1,ZRTFZ(:,:,:))
-  PRRS(:,:,:,4) = PRRS(:,:,:,4) - DZF(1,IKU,1,  ZFZ(:,:,:))
+  PRRS(:,:,:,1) = PRRS(:,:,:,1) - DZF(ZRTFZ(:,:,:))
+  PRRS(:,:,:,4) = PRRS(:,:,:,4) - DZF(  ZFZ(:,:,:))
   IF (LBUDGET_RV) CALL BUDGET (PRRS(:,:,:,1),6 ,'ADVZ_BU_RRV')
   IF (LBUDGET_RI) CALL BUDGET (PRRS(:,:,:,4),9 ,'ADVZ_BU_RRI')
 !
@@ -303,7 +296,7 @@ IKU=SIZE(XZHAT)
   PRRS(:,:,:,3) = PRRS(:,:,:,3) - DYF(  ZFY(:,:,:)) 
   IF (LBUDGET_RR) CALL BUDGET (PRRS(:,:,:,3),8 ,'ADVY_BU_RRR')
 !
-  PRRS(:,:,:,3) = PRRS(:,:,:,3) - DZF(1,IKU,1,  ZFZ(:,:,:)) 
+  PRRS(:,:,:,3) = PRRS(:,:,:,3) - DZF(  ZFZ(:,:,:))
   IF (LBUDGET_RR) CALL BUDGET (PRRS(:,:,:,3),8 ,'ADVZ_BU_RRR')
 !
   END IF
@@ -332,7 +325,7 @@ IKU=SIZE(XZHAT)
     IF (JRR==7.AND.LBUDGET_RH) &
                                     CALL BUDGET (PRRS(:,:,:,7),12,'ADVY_BU_RRH')
 !
-    PRRS(:,:,:,JRR) = PRRS(:,:,:,JRR) - DZF(1,IKU,1,ZFZ(:,:,:))
+    PRRS(:,:,:,JRR) = PRRS(:,:,:,JRR) - DZF(ZFZ(:,:,:))
     IF (JRR==5.AND.LBUDGET_RS) &
                                     CALL BUDGET (PRRS(:,:,:,5),10,'ADVZ_BU_RRS')
     IF (JRR==6.AND.LBUDGET_RG) &
@@ -359,7 +352,7 @@ IKU=SIZE(XZHAT)
     PRTKES(:,:,:) = PRTKES(:,:,:) - DYF(ZFY(:,:,:))   
     IF (LBUDGET_TKE) CALL BUDGET (PRTKES,5,'ADVY_BU_RTKE')
 !
-    PRTKES(:,:,:) = PRTKES(:,:,:) - DZF(1,IKU,1,ZFZ(:,:,:)) 
+    PRTKES(:,:,:) = PRTKES(:,:,:) - DZF(ZFZ(:,:,:))
     IF (LBUDGET_TKE) CALL BUDGET (PRTKES,5,'ADVZ_BU_RTKE')
 !
   END IF
diff --git a/src/MNH/fct_scalar.f90 b/src/MNH/fct_scalar.f90
index 75df108044a26b5c9eb00a7b39b305cb10b9268e..b37661bd07186a752728456cac52f6e92992c3f7 100644
--- a/src/MNH/fct_scalar.f90
+++ b/src/MNH/fct_scalar.f90
@@ -1,13 +1,8 @@
-!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 1994-2020 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
-!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt  
+!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
 !-----------------------------------------------------------------
-!--------------- special set of characters for RCS information
-!-----------------------------------------------------------------
-! $Source$ $Revision$
-! MASDEV4_7 adiab 2006/06/06 12:01:31
-!-----------------------------------------------------------------
 !     ######################
       MODULE MODI_FCT_SCALAR
 !     ######################
@@ -140,11 +135,9 @@ INTEGER                                  :: JSV
 !
 REAL, DIMENSION(SIZE(PSVT,1),SIZE(PSVT,2),SIZE(PSVT,3))  &
                      :: ZFX  ,ZFY  ,ZFZ    ! Advective flux components for each
-INTEGER :: IKU                     
 !
 !-------------------------------------------------------------------------------
 !
-IKU=SIZE(XZHAT)
 !*       1.   FLUX-CORRECTED TRANSPORT ADVECTION SCHEME for the HSV group
 !
 !
@@ -163,7 +156,7 @@ IKU=SIZE(XZHAT)
     IF (LBUDGET_SV)                               &
                             CALL BUDGET (PRSVS(:,:,:,JSV),JSV+12,'ADVY_BU_RSV')
 !
-    PRSVS(:,:,:,JSV) = PRSVS(:,:,:,JSV) - DZF(1,IKU,1,ZFZ(:,:,:)) 
+    PRSVS(:,:,:,JSV) = PRSVS(:,:,:,JSV) - DZF(ZFZ(:,:,:))
     IF (LBUDGET_SV)                               &
                             CALL BUDGET (PRSVS(:,:,:,JSV),JSV+12,'ADVZ_BU_RSV')
   END DO
diff --git a/src/MNH/flash_geom_elec.f90 b/src/MNH/flash_geom_elec.f90
index 55b5db9c4bf12ca54f13e17b2b6cdec2357bd3db..3cd873895ccd911ef791e4700cda3fde6ded209a 100644
--- a/src/MNH/flash_geom_elec.f90
+++ b/src/MNH/flash_geom_elec.f90
@@ -1,4 +1,4 @@
-!MNH_LIC Copyright 2010-2019 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 2010-2020 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
 !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
@@ -181,7 +181,6 @@ REAL, DIMENSION(:,:), OPTIONAL, INTENT(IN) :: PSEA  ! Land-sea mask
 INTEGER :: IIB, IIE  ! index values of the first and last inner mass points along x
 INTEGER :: IJB, IJE  ! index values of the first and last inner mass points along y
 INTEGER :: IKB, IKE  ! index values of the first and last inner mass points along z
-INTEGER :: IKU
 INTEGER :: II, IJ, IK, IL, IM, IPOINT  ! loop indexes
 INTEGER :: IX, IY, IZ
 INTEGER :: IXOR, IYOR  ! origin of the extended subdomain
@@ -336,7 +335,6 @@ CALL MYPROC_ELEC_ll(IPROC)
 CALL GET_INDICE_ll (IIB,IJB,IIE,IJE)
 IKB = 1 + JPVEXT
 IKE = SIZE(PRT,3) - JPVEXT
-IKU = SIZE(PRT,3)
 !
 ! global indexes of the local subdomains origin
 CALL GET_GLOBALDIMS_ll (NIMAX_ll,NJMAX_ll)
@@ -383,7 +381,7 @@ IF (GEFIRSTCALL) THEN
 !
   ZXMASS(IIB:IIE) = 0.5 * (XXHAT(IIB:IIE) + XXHAT(IIB+1:IIE+1))
   ZYMASS(IJB:IJE) = 0.5 * (XYHAT(IJB:IJE) + XYHAT(IJB+1:IJE+1))
-  ZZMASS = MZF(1,IKU,1,PZZ)
+  ZZMASS = MZF(PZZ)
   ZPRES_COEF = EXP(ZZMASS/8400.)
   ZSCOORD_SEG(:,:,:) = 0.0
   ISAVE_STATUS = 1
diff --git a/src/MNH/forcing.f90 b/src/MNH/forcing.f90
index e2cecf24f85cd243ddd7b10f06b5c875f2b40592..3163cb1ae95584c7e7a318bf245560f5d3229ab1 100644
--- a/src/MNH/forcing.f90
+++ b/src/MNH/forcing.f90
@@ -1,4 +1,4 @@
-!MNH_LIC Copyright 1995-2019 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 1995-2020 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
 !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
@@ -474,7 +474,7 @@ ELSE
 !
   ALLOCATE(ZZA(SIZE(PWT,1),SIZE(PWT,2),SIZE(PWT,3)))
   ALLOCATE(ZZF(SIZE(PWT,1),SIZE(PWT,2),SIZE(PWT,3)))
-  ZZA(:,:,:)   = MZF(1,IKU,1, PZZ(:,:,:) )
+  ZZA(:,:,:)   = MZF( PZZ(:,:,:) )
   ZZA(:,:,IKU) = 2.0*PZZ(:,:,IKU) - ZZA(:,:,IKU-1)
   ZDZHAT_INV_IKU = 1.0 / ( PZHAT(IKU)-PZHAT(IKU-1) )
 !
@@ -544,7 +544,7 @@ ELSE
   END DO
   CALL GET_HALO(ZWF)
 !
-  ZZF(:,:,:)   = MZF(1,IKU,1, PZZ(:,:,:) )
+  ZZF(:,:,:)   = MZF( PZZ(:,:,:) )
   ZZF(:,:,IKU) = 2.0*PZZ(:,:,IKU)-ZZF(:,:,IKU-1)
 !
   DO JL=1,IKU-1
@@ -583,7 +583,7 @@ END IF
 !!
 !! Ligne to add if you want W in Pa/s in namelist instead of m/s (omega = - w/(rho*g))
 !!
-!ZWF(:,:,:) = - ZWF(:,:,:)/(XG*MZM(1,IKU,1,(PRHODJ(:,:,:)/PJ(:,:,:))))
+!ZWF(:,:,:) = - ZWF(:,:,:)/(XG*MZM((PRHODJ(:,:,:)/PJ(:,:,:))))
 !
 !!============================
 !
@@ -634,49 +634,49 @@ ALLOCATE(ZRWCF(SIZE(PWT,1),SIZE(PWT,2),SIZE(PWT,3)))
 !*       4.1    integration of vertical motion (upstream scheme)
 !
 IF (LVERT_MOTION_FRC) THEN
-  ZDZZ(:,:,:) = DZM(1,IKU,1,MZF(1,IKU,1,PZZ(:,:,:)))
+  ZDZZ(:,:,:) = DZM(MZF(PZZ(:,:,:)))
   ZDZZ(:,:,IKU) = PZZ(:,:,IKU) - PZZ(:,:,IKU-1) ! same delta z in IKU and IKU -1
 !
-  ZRWCF(:,:,:) =   ZWF(:,:,:) * MZM(1,IKU,1,PRHODJ(:,:,:)) / ZDZZ(:,:,:)
+  ZRWCF(:,:,:) =   ZWF(:,:,:) * MZM(PRHODJ(:,:,:)) / ZDZZ(:,:,:)
   ZRWCF(:,:,1) = - ZRWCF(:,:,3)     ! Mirror hypothesis
 !
 ! forced vertical transport of U and V
 !
-  ZDZZ(:,:,:) = MXF(ZRWCF(:,:,:)) *DZM(1,IKU,1,PUT(:,:,:))
+  ZDZZ(:,:,:) = MXF(ZRWCF(:,:,:)) *DZM(PUT(:,:,:))
   PRUS(:,:,:) = PRUS(:,:,:) - UPSTREAM_Z(ZDZZ(:,:,:),ZRWCF(:,:,:))
-  ZDZZ(:,:,:) = MYF(ZRWCF(:,:,:)) *DZM(1,IKU,1,PVT(:,:,:))
+  ZDZZ(:,:,:) = MYF(ZRWCF(:,:,:)) *DZM(PVT(:,:,:))
   PRVS(:,:,:) = PRVS(:,:,:) - UPSTREAM_Z(ZDZZ(:,:,:),ZRWCF(:,:,:))
 !
 ! forced vertical transport of W
 !
   IF( .NOT.L1D ) THEN
-    ZDZZ(:,:,:) = MZF(1,IKU,1,ZRWCF(:,:,:)) *DZF(1,IKU,1,PWT(:,:,:))
+    ZDZZ(:,:,:) = MZF(ZRWCF(:,:,:)) *DZF(PWT(:,:,:))
     PRWS(:,:,:) = PRWS(:,:,:) - UPSTREAM_Z(ZDZZ(:,:,:),ZRWCF(:,:,:))
   END IF
 !
 ! forced vertical transport of THETA
 !
-  ZDZZ(:,:,:) = ZRWCF(:,:,:)  *DZM(1,IKU,1,PTHT(:,:,:))
+  ZDZZ(:,:,:) = ZRWCF(:,:,:)  *DZM(PTHT(:,:,:))
   PRTHS(:,:,:) = PRTHS(:,:,:) - UPSTREAM_Z(ZDZZ(:,:,:),ZRWCF(:,:,:))
 !
 ! forced vertical transport of TKE (if allocated)
 !
   IF( SIZE(PTKET) == SIZE(ZDZZ) ) THEN
-    ZDZZ(:,:,:) = ZRWCF(:,:,:)  *DZM(1,IKU,1,PTKET(:,:,:))
+    ZDZZ(:,:,:) = ZRWCF(:,:,:)  *DZM(PTKET(:,:,:))
     PRTKES(:,:,:) = PRTKES(:,:,:) - UPSTREAM_Z(ZDZZ(:,:,:),ZRWCF(:,:,:))
   END IF
 !
 ! forced vertical transport of water variables
 !
   DO JL = 1 , SIZE(PRRS,4)
-    ZDZZ(:,:,:) = ZRWCF(:,:,:) *DZM(1,IKU,1,PRT(:,:,:,JL))
+    ZDZZ(:,:,:) = ZRWCF(:,:,:) *DZM(PRT(:,:,:,JL))
     PRRS(:,:,:,JL) = PRRS(:,:,:,JL) - UPSTREAM_Z(ZDZZ(:,:,:),ZRWCF(:,:,:))
   END DO
 !
 ! forced vertical transport of scalar variables
 !
   DO JL = 1 , SIZE(PRSVS,4)
-    ZDZZ(:,:,:) = ZRWCF(:,:,:) *DZM(1,IKU,1,PSVT(:,:,:,JL))
+    ZDZZ(:,:,:) = ZRWCF(:,:,:) *DZM(PSVT(:,:,:,JL))
     PRSVS(:,:,:,JL) = PRSVS(:,:,:,JL) - UPSTREAM_Z(ZDZZ(:,:,:),ZRWCF(:,:,:))
   END DO
 !
@@ -757,7 +757,7 @@ PVFRC_PAST(:,:,:) = ZVF(:,:,:)
 !
 IF( LRELAX_THRV_FRC .OR. LRELAX_UV_FRC ) THEN
 !
-  ZDZZ(:,:,:) = DZM(1,IKU,1,MZF(1,IKU,1,PZZ(:,:,:)))
+  ZDZZ(:,:,:) = DZM(MZF(PZZ(:,:,:)))
   ZDZZ(:,:,IKU) = PZZ(:,:,IKU) - PZZ(:,:,IKU-1)
 !
 ! define the mask where the relaxation is to be applied
@@ -772,7 +772,7 @@ IF( LRELAX_THRV_FRC .OR. LRELAX_UV_FRC ) THEN
 !callabortstop
       CALL PRINT_MSG(NVERB_FATAL,'GEN','FORCING','wrong CRELAX_HEIGHT_TYPE option')
   END SELECT
-  WHERE ( MZF(1,IKU,1,PZZ(:,:,:)) .LE. XRELAX_HEIGHT_FRC )
+  WHERE ( MZF(PZZ(:,:,:)) .LE. XRELAX_HEIGHT_FRC )
     GRELAX_MASK_FRC = .FALSE.
   END WHERE
 !
diff --git a/src/MNH/gdiv.f90 b/src/MNH/gdiv.f90
index f11b44f7ce0296f6025e7e9de8cb0b7f39cb0438..b22065908c6e897d61706999fd1374582060f1d4 100644
--- a/src/MNH/gdiv.f90
+++ b/src/MNH/gdiv.f90
@@ -1,13 +1,8 @@
-!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 1994-2020 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
-!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt  
+!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
 !-----------------------------------------------------------------
-!--------------- special set of characters for RCS information
-!-----------------------------------------------------------------
-! $Source$ $Revision$
-! MASDEV4_7 operators 2006/05/18 13:07:25
-!-----------------------------------------------------------------
 !     ################
       MODULE MODI_GDIV
 !     ################
@@ -71,13 +66,6 @@ END MODULE MODI_GDIV
 !!    EXTERNAL
 !!    --------
 !!      SUBROUTINE CONTRAV : compute the contavariant components 
-!!    Shuman operators :
-!!      FUNCTION DXF : compute finite difference along x for a variable 
-!!    localized at a flux side
-!!      FUNCTION DYF : compute finite difference along y for a variable 
-!!    localized at a flux side
-!!      FUNCTION DZF : compute finite difference along z for a variable 
-!!    localized at a flux side
 !!
 !!    IMPLICIT ARGUMENTS
 !!    ------------------ 
@@ -114,7 +102,6 @@ END MODULE MODI_GDIV
 !
 USE MODD_PARAMETERS
 USE MODD_CONF
-USE MODI_SHUMAN
 USE MODI_CONTRAV
 !
 USE MODE_ll
diff --git a/src/MNH/gradient_m.f90 b/src/MNH/gradient_m.f90
index 83e300c0e8478390c7fcea1c24609bf0d45f68a7..c89981bd1d1e7f8b8c803a9a2aa9199326454470 100644
--- a/src/MNH/gradient_m.f90
+++ b/src/MNH/gradient_m.f90
@@ -1,4 +1,4 @@
-!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 1994-2020 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
 !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
@@ -270,7 +270,7 @@ REAL, DIMENSION(SIZE(PA,1),SIZE(PA,2),SIZE(PA,3)) :: PGX_M_M ! result mass point
 !
 IF (.NOT. LFLAT) THEN 
   PGX_M_M(:,:,:)= (DXF(MXM(PA(:,:,:)))   -                     &
-                   MZF(KKA,KKU,KL,MXF(PDZX)*DZM(KKA,KKU,KL,PA(:,:,:)) &
+                   MZF(MXF(PDZX)*DZM(PA(:,:,:)) &
                   /PDZZ(:,:,:)) )        /MXF(PDXX(:,:,:))
 ELSE
   PGX_M_M(:,:,:)=DXF(MXM(PA(:,:,:))) / MXF(PDXX(:,:,:)) 
@@ -442,7 +442,7 @@ REAL, DIMENSION(SIZE(PA,1),SIZE(PA,2),SIZE(PA,3)) :: PGY_M_M ! result mass point
 !
 !
 IF (.NOT. LFLAT) THEN 
-  PGY_M_M(:,:,:)= (DYF(MYM(PA))-MZF(KKA,KKU,KL,MYF(PDZY)*DZM(KKA,KKU,KL,PA)&
+  PGY_M_M(:,:,:)= (DYF(MYM(PA))-MZF(MYF(PDZY)*DZM(PA)&
                 /PDZZ) ) /MYF(PDYY)
 ELSE
   PGY_M_M(:,:,:)= DYF(MYM(PA))/MYF(PDYY)
@@ -604,7 +604,7 @@ REAL, DIMENSION(SIZE(PA,1),SIZE(PA,2),SIZE(PA,3)) :: PGZ_M_M ! result mass point
 !*       1.    DEFINITION of GZ_M_M
 !              --------------------
 !
-PGZ_M_M(:,:,:)= MZF(KKA,KKU,KL, DZM(KKA,KKU,KL,PA(:,:,:))/PDZZ(:,:,:) )
+PGZ_M_M(:,:,:)= MZF( DZM(PA(:,:,:))/PDZZ(:,:,:) )
 !
 !----------------------------------------------------------------------------
 !
diff --git a/src/MNH/gradient_u.f90 b/src/MNH/gradient_u.f90
index 0adafdab8283d6d583010b20bb6ae06f3507ae23..75a2582602668aaaa94b2fd335a521805ebbf4bf 100644
--- a/src/MNH/gradient_u.f90
+++ b/src/MNH/gradient_u.f90
@@ -1,4 +1,4 @@
-!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 1994-2020 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
 !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
@@ -186,7 +186,7 @@ REAL, DIMENSION(SIZE(PA,1),SIZE(PA,2),SIZE(PA,3)) :: PGX_U_M ! result mass point
 !
 IF (.NOT. LFLAT) THEN
   PGX_U_M(:,:,:)= ( DXF(PA)        -                 &
-                    MZF(KKA,KKU,KL,MXF(PDZX*DZM(KKA,KKU,KL,PA)) / PDZZ )  &
+                    MZF(MXF(PDZX*DZM(PA)) / PDZZ )  &
                   ) / MXF(PDXX)
 ELSE
   PGX_U_M(:,:,:)= DXF(PA) /  MXF(PDXX)
@@ -362,7 +362,7 @@ REAL, DIMENSION(SIZE(PA,1),SIZE(PA,2),SIZE(PA,3)) :: PGY_U_UV ! result UV point
 !              ---------------------
 !
 IF (.NOT. LFLAT) THEN
-  PGY_U_UV(:,:,:)=  (DYM(PA)- MZF(KKA,KKU,KL, MYM( DZM(KKA,KKU,KL,PA)/&
+  PGY_U_UV(:,:,:)=  (DYM(PA)- MZF( MYM( DZM(PA)/&
                  MXM(PDZZ) ) *MXM(PDZY) )   ) / MXM(PDYY)
 ELSE
   PGY_U_UV(:,:,:)= DYM(PA) / MXM(PDYY)
@@ -530,7 +530,7 @@ REAL, DIMENSION(SIZE(PA,1),SIZE(PA,2),SIZE(PA,3)) :: PGZ_U_UW ! result UW point
 !*       1.    DEFINITION of GZ_U_UW
 !              ---------------------
 !
-PGZ_U_UW(:,:,:)= DZM(KKA,KKU,KL,PA) / MXM(PDZZ)
+PGZ_U_UW(:,:,:)= DZM(PA) / MXM(PDZZ)
 !
 !----------------------------------------------------------------------------
 !
diff --git a/src/MNH/gradient_uv.f90 b/src/MNH/gradient_uv.f90
index b7c3e35fa1d9117c3c412ecc17cc77c32a5dd83a..c350c786fe23460f169175ced2d0a1872795d07d 100644
--- a/src/MNH/gradient_uv.f90
+++ b/src/MNH/gradient_uv.f90
@@ -1,13 +1,8 @@
-!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 1994-2020 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
-!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt  
+!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
 !-----------------------------------------------------------------
-!--------------- special set of characters for RCS information
-!-----------------------------------------------------------------
-! $Source$ $Revision$
-! MASDEV4_7 operators 2006/05/18 13:07:25
-!-----------------------------------------------------------------
 !     #######################
       MODULE MODI_GRADIENT_UV
 !     #######################
@@ -133,7 +128,7 @@ REAL, DIMENSION(SIZE(PA,1),SIZE(PA,2),SIZE(PA,3)) :: PGX_UV_V ! result V point
 !
 IF (.NOT. LFLAT) THEN
   PGX_UV_V(:,:,:)= ( DXF(PA)        -                         &
-                    MZF(KKA,KKU,KL, MXF( MYM(PDZX)*DZM(KKA,KKU,KL,PA)/MYM(PDZZ) ) ) &
+                    MZF( MXF( MYM(PDZX)*DZM(PA)/MYM(PDZZ) ) ) &
                    ) / MXF(MYM(PDXX))
 ELSE
   PGX_UV_V(:,:,:)= DXF(PA) /  MXF(MYM(PDXX))
@@ -237,7 +232,7 @@ REAL, DIMENSION(SIZE(PA,1),SIZE(PA,2),SIZE(PA,3)) :: PGY_UV_U ! result U point
 !
 IF (.NOT. LFLAT) THEN
   PGY_UV_U(:,:,:)= ( DYF(PA)        -                         &
-                    MZF(KKA,KKU,KL, MYF( MXM(PDZY)*DZM(KKA,KKU,KL,PA)/MXM(PDZZ) ) ) &
+                    MZF( MYF( MXM(PDZY)*DZM(PA)/MXM(PDZZ) ) ) &
                    ) / MYF(MXM(PDYY))
 ELSE
   PGY_UV_U(:,:,:)= DYF(PA) / MYF(MXM(PDYY))
diff --git a/src/MNH/gradient_uw.f90 b/src/MNH/gradient_uw.f90
index 5ef1c9622f649501ad3f610d1430d9c72c8e7a7a..d9ec4ec0ec7945d6ec8491da07dd7c6a19c8a733 100644
--- a/src/MNH/gradient_uw.f90
+++ b/src/MNH/gradient_uw.f90
@@ -1,13 +1,8 @@
-!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 1994-2020 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
-!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt  
+!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
 !-----------------------------------------------------------------
-!--------------- special set of characters for RCS information
-!-----------------------------------------------------------------
-! $Source$ $Revision$
-! MASDEV4_7 operators 2006/05/18 13:07:25
-!-----------------------------------------------------------------
 !     #######################
       MODULE MODI_GRADIENT_UW
 !     #######################
@@ -132,10 +127,10 @@ REAL, DIMENSION(SIZE(PA,1),SIZE(PA,2),SIZE(PA,3)) :: PGX_UW_W ! result W point
 !
 IF (.NOT. LFLAT) THEN
   PGX_UW_W(:,:,:)= ( DXF(PA)        -                          &
-                    MZF(KKA,KKU,KL, MXF(MZF(KKA,KKU,KL, PDZX)*DZF(KKA,KKU,KL,PA)) / MZF(KKA,KKU,KL,PDZZ) )  &
-                  ) / MXF(MZM(KKA,KKU,KL,PDXX))
+                    MZF( MXF(MZF( PDZX)*DZF(PA)) / MZF(PDZZ) )  &
+                  ) / MXF(MZM(PDXX))
 ELSE
-  PGX_UW_W(:,:,:)= DXF(PA) /  MXF(MZM(KKA,KKU,KL,PDXX))
+  PGX_UW_W(:,:,:)= DXF(PA) /  MXF(MZM(PDXX))
 END IF
 !
 !----------------------------------------------------------------------------
@@ -222,7 +217,7 @@ REAL, DIMENSION(SIZE(PA,1),SIZE(PA,2),SIZE(PA,3)) :: PGZ_UW_U ! result U point
 !*       1.    DEFINITION of GZ_UW_U
 !              ---------------------
 !
-PGZ_UW_U(:,:,:)= DZF(KKA,KKU,KL,PA) / MXM(MZF(KKA,KKU,KL,PDZZ))
+PGZ_UW_U(:,:,:)= DZF(PA) / MXM(MZF(PDZZ))
 !
 !----------------------------------------------------------------------------
 !
diff --git a/src/MNH/gradient_v.f90 b/src/MNH/gradient_v.f90
index 40fefe5fe0879b3f03a19a1772ed70b02cea25fb..bedeb9ded157d38ff291658c202eaa30336ff280 100644
--- a/src/MNH/gradient_v.f90
+++ b/src/MNH/gradient_v.f90
@@ -1,4 +1,4 @@
-!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 1994-2020 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
 !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
@@ -188,7 +188,7 @@ REAL, DIMENSION(SIZE(PA,1),SIZE(PA,2),SIZE(PA,3)) :: PGY_V_M ! result mass point
 !
 IF (.NOT. LFLAT) THEN
   PGY_V_M(:,:,:)= (DYF(PA)        -                      &
-                   MZF(KKA,KKU,KL, MYF(PDZY*DZM(KKA,KKU,KL,PA))/PDZZ )         &
+                   MZF( MYF(PDZY*DZM(PA))/PDZZ )         &
                   ) / MYF(PDYY)
 ELSE
   PGY_V_M(:,:,:)= DYF(PA) / MYF(PDYY)
@@ -363,7 +363,7 @@ REAL, DIMENSION(SIZE(PA,1),SIZE(PA,2),SIZE(PA,3)) :: PGX_V_UV ! result UV point
 !              ---------------------
 !
 IF (.NOT. LFLAT) THEN
-  PGX_V_UV(:,:,:)= ( DXM(PA)- MZF(KKA,KKU,KL, MXM( DZM(KKA,KKU,KL,PA)/&
+  PGX_V_UV(:,:,:)= ( DXM(PA)- MZF( MXM( DZM(PA)/&
                     MYM(PDZZ) ) *MYM(PDZX) )   )   / MYM(PDXX)
 ELSE
   PGX_V_UV(:,:,:)= DXM(PA) / MYM(PDXX)
@@ -534,7 +534,7 @@ REAL, DIMENSION(SIZE(PA,1),SIZE(PA,2),SIZE(PA,3)) :: PGZ_V_VW ! result VW point
 !*       1.    DEFINITION of GZ_V_VW
 !              ---------------------
 !
-PGZ_V_VW(:,:,:)= DZM(KKA,KKU,KL,PA) / MYM(PDZZ)
+PGZ_V_VW(:,:,:)= DZM(PA) / MYM(PDZZ)
 !
 !----------------------------------------------------------------------------
 !
diff --git a/src/MNH/gradient_vw.f90 b/src/MNH/gradient_vw.f90
index 6d82cb972c21769d5c8ee2c1f63d7825b7598b37..c9016aa32b17fb2b3c4ed5841e62481a8afe3546 100644
--- a/src/MNH/gradient_vw.f90
+++ b/src/MNH/gradient_vw.f90
@@ -1,13 +1,8 @@
-!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 1994-2020 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
-!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt  
+!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
 !-----------------------------------------------------------------
-!--------------- special set of characters for RCS information
-!-----------------------------------------------------------------
-! $Source$ $Revision$
-! MASDEV4_7 operators 2006/05/18 13:07:25
-!-----------------------------------------------------------------
 !     #######################
       MODULE MODI_GRADIENT_VW
 !     #######################
@@ -132,10 +127,10 @@ REAL, DIMENSION(SIZE(PA,1),SIZE(PA,2),SIZE(PA,3)) :: PGY_VW_W ! result W point
 !
 IF (.NOT. LFLAT) THEN
   PGY_VW_W(:,:,:)= ( DYF(PA)        -                          &
-                    MZF(KKA,KKU,KL, MYF(MZF(KKA,KKU,KL,PDZY)*DZF(KKA,KKU,KL,PA)) / MZF(KKA,KKU,KL,PDZZ) )  &
-                  ) / MYF(MZM(KKA,KKU,KL,PDYY))
+                    MZF( MYF(MZF(PDZY)*DZF(PA)) / MZF(PDZZ) )  &
+                  ) / MYF(MZM(PDYY))
 ELSE
-  PGY_VW_W(:,:,:)= DYF(PA) /  MYF(MZM(KKA,KKU,KL,PDYY))
+  PGY_VW_W(:,:,:)= DYF(PA) /  MYF(MZM(PDYY))
 END IF
 !
 !----------------------------------------------------------------------------
@@ -222,7 +217,7 @@ REAL, DIMENSION(SIZE(PA,1),SIZE(PA,2),SIZE(PA,3)) :: PGZ_VW_V ! result V point
 !*       1.    DEFINITION of GZ_VW_V
 !              ---------------------
 !
-PGZ_VW_V(:,:,:)= DZF(KKA,KKU,KL,PA) / MYM(MZF(KKA,KKU,KL,PDZZ))
+PGZ_VW_V(:,:,:)= DZF(PA) / MYM(MZF(PDZZ))
 !
 !----------------------------------------------------------------------------
 !
diff --git a/src/MNH/gradient_w.f90 b/src/MNH/gradient_w.f90
index c73b40743e5947a3f826881c45bf3c94c8da2abb..c90eec3a52d979e5ff6ecaf5a1cd64a7719aa672 100644
--- a/src/MNH/gradient_w.f90
+++ b/src/MNH/gradient_w.f90
@@ -1,4 +1,4 @@
-!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 1994-2020 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
 !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
@@ -173,7 +173,7 @@ REAL, DIMENSION(SIZE(PA,1),SIZE(PA,2),SIZE(PA,3)) :: PGZ_W_M ! result mass point
 !*       1.    DEFINITION of GZ_W_M
 !              --------------------
 !
-PGZ_W_M(:,:,:)= DZF(KKA,KKU,KL,PA(:,:,:))/(MZF(KKA,KKU,KL,PDZZ(:,:,:)))
+PGZ_W_M(:,:,:)= DZF(PA(:,:,:))/(MZF(PDZZ(:,:,:)))
 !
 !----------------------------------------------------------------------------
 !
@@ -311,11 +311,11 @@ REAL, DIMENSION(SIZE(PA,1),SIZE(PA,2),SIZE(PA,3)) :: PGX_W_UW ! result UW point
 !              ---------------------
 !
 IF (.NOT. LFLAT) THEN
-  PGX_W_UW(:,:,:)= DXM(PA(:,:,:))/(MZM(KKA,KKU,KL,PDXX(:,:,:)))    &
-                 -DZM(KKA,KKU,KL,MXM(MZF(KKA,KKU,KL,PA(:,:,:))))*PDZX(:,:,:)  &
-                  /( MZM(KKA,KKU,KL,PDXX(:,:,:))*MXM(PDZZ(:,:,:)) )
+  PGX_W_UW(:,:,:)= DXM(PA(:,:,:))/(MZM(PDXX(:,:,:)))    &
+                 -DZM(MXM(MZF(PA(:,:,:))))*PDZX(:,:,:)  &
+                  /( MZM(PDXX(:,:,:))*MXM(PDZZ(:,:,:)) )
 ELSE
-  PGX_W_UW(:,:,:)= DXM(PA(:,:,:))/(MZM(KKA,KKU,KL,PDXX(:,:,:)))
+  PGX_W_UW(:,:,:)= DXM(PA(:,:,:))/(MZM(PDXX(:,:,:)))
 END IF
 !
 !----------------------------------------------------------------------------
@@ -477,11 +477,11 @@ REAL, DIMENSION(SIZE(PA,1),SIZE(PA,2),SIZE(PA,3)) :: PGY_W_VW ! result VW point
 !              ---------------------
 !
 IF (.NOT. LFLAT) THEN
-  PGY_W_VW(:,:,:)= DYM(PA(:,:,:))/(MZM(KKA,KKU,KL,PDYY(:,:,:)))    &
-                 -DZM(KKA,KKU,KL,MYM(MZF(KKA,KKU,KL,PA(:,:,:))))*PDZY(:,:,:)  &
-                  /( MZM(KKA,KKU,KL,PDYY(:,:,:))*MYM(PDZZ(:,:,:)) )
+  PGY_W_VW(:,:,:)= DYM(PA(:,:,:))/(MZM(PDYY(:,:,:)))    &
+                 -DZM(MYM(MZF(PA(:,:,:))))*PDZY(:,:,:)  &
+                  /( MZM(PDYY(:,:,:))*MYM(PDZZ(:,:,:)) )
 ELSE
-  PGY_W_VW(:,:,:)= DYM(PA(:,:,:))/(MZM(KKA,KKU,KL,PDYY(:,:,:)))
+  PGY_W_VW(:,:,:)= DYM(PA(:,:,:))/(MZM(PDYY(:,:,:)))
 END IF
 !
 !----------------------------------------------------------------------------
diff --git a/src/MNH/gravity.f90 b/src/MNH/gravity.f90
index 2d43fa8a49f4dca6755803b1c994f3114b5d5690..d89641e9fa862d42df09ce812e6277430952df7e 100644
--- a/src/MNH/gravity.f90
+++ b/src/MNH/gravity.f90
@@ -1,4 +1,4 @@
-!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 1994-2020 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
 !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
@@ -140,7 +140,6 @@ REAL, DIMENSION(:,:,:),   INTENT(OUT)   :: PRWS      ! Sources of Momentum
 REAL       ::  ZRV_OV_RD    ! = RV / RD
 INTEGER    ::  JWATER       ! loop index on the different types of water
 REAL, DIMENSION(:,:,:), allocatable :: ZWORK1, ZWORK2
-INTEGER :: IKU
 !
 !
 !-------------------------------------------------------------------------------
@@ -164,8 +163,6 @@ allocate( zwork2(size( ptht, 1 ), size( ptht, 2 ), size( ptht, 3 ) ) )
 !*       1.     COMPUTES THE GRAVITY TERM
 !	        -------------------------
 !
-IKU=SIZE(PTHT,3)
-!
 IF( L1D ) THEN     ! no buoyancy for 1D case
 !$acc kernels
   PRWS(:,:,:) = 0.
@@ -214,7 +211,7 @@ ELSE
 !   compute the gravity term
 !
 #ifndef MNH_OPENACC
-  PRWS(:,:,:) = XG * MZM(1,IKU,1, ( (ZWORK2/PTHVREF) - 1. ) * PRHODJ )
+  PRWS(:,:,:) = XG * MZM( ( (ZWORK2/PTHVREF) - 1. ) * PRHODJ )
 #else
 !$acc kernels
   ZWORK1(:,:,:) = ( ( ZWORK2(:,:,:) / PTHVREF(:,:,:) ) - 1. ) * PRHODJ(:,:,:)
diff --git a/src/MNH/ini_field_elec.f90 b/src/MNH/ini_field_elec.f90
index a4fa7cd9bdf038b73c0cd2c6a88a0ebb9357fba3..c5dcbb79a30d93761faecc41871205996584c396 100644
--- a/src/MNH/ini_field_elec.f90
+++ b/src/MNH/ini_field_elec.f90
@@ -1,4 +1,4 @@
-!MNH_LIC Copyright 2002-2019 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 2002-2020 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
 !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
@@ -100,7 +100,6 @@ CHARACTER(LEN=4), DIMENSION(2) :: ZLBCY  ! y-direction LBC type
 !
 INTEGER :: JK     ! loop over the vertical levels
 INTEGER :: IINFO_ll ! 
-INTEGER :: IKB,IKE,IKU      ! Indices for the first and last point along vertical
 !
 REAL, DIMENSION(:,:,:), ALLOCATABLE :: ZZMASS, ZWORK, ZWORK1, ZWORK2
 !
@@ -112,9 +111,6 @@ TYPE(LIST_ll),POINTER  :: TZFIELDS_ll ! list of fields to exchange
 !*      1.    INITIALIZATIONS
 !             ---------------
 ! 
-IKB = 1 + JPVEXT
-IKE = SIZE(PZZ,3) - JPVEXT
-IKU = SIZE(PZZ,3)
 ZLBCX = 'OPEN'  ! forced LBC
 ZLBCY = 'OPEN'  ! forced LBC
 !
@@ -172,7 +168,7 @@ XEFIELDW(:,:,SIZE(PDZZ,3)) = 2. * XEFIELDW(:,:,SIZE(PDZZ,3)-1) -  &
                                   XEFIELDW(:,:,SIZE(PDZZ,3)-2)
 
 ! Computing the mobility of small positive (negative) ions at Mass-point
-ZZMASS = MZF(1,IKU,1, PZZ )   ! altitude at mass point
+ZZMASS = MZF( PZZ )   ! altitude at mass point
 
 DO JK = 2,SIZE(PZZ,3)-1
   XMOBIL_POS(:,:,JK) = XF_POS * EXP( XEXPMOB* ZZMASS(:,:,JK) )
diff --git a/src/MNH/ini_spawn_lsn.f90 b/src/MNH/ini_spawn_lsn.f90
index 75354a3f53f1b94993a020d953d37ad8232e4f84..3e31fdc9bb522c60f03c41674d8d2fdb8d1fceef 100644
--- a/src/MNH/ini_spawn_lsn.f90
+++ b/src/MNH/ini_spawn_lsn.f90
@@ -1,4 +1,4 @@
-!MNH_LIC Copyright 1997-2019 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 1997-2020 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
 !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
@@ -501,9 +501,9 @@ IF ( GVERT_INTERP ) THEN
   !
   IKU = SIZE(PZZ,3)
   !
-  ZZLS2=MZF(1,IKU,1,ZZLS1)
+  ZZLS2=MZF(ZZLS1)
   ZZLS2(:,:,IKU)=2.*ZZLS2(:,:,IKU-1)-ZZLS2(:,:,IKU-2)
-  ZZSS=MZF(1,IKU,1,PZZ)
+  ZZSS=MZF(PZZ)
   ZZSS(:,:,IKU)=2.*ZZSS(:,:,IKU-1)-ZZSS(:,:,IKU-2)
   !
   CALL COEF_VER_INTERP_LIN(ZZLS2,ZZSS,IKLIN,ZCOEFLIN)
@@ -707,7 +707,7 @@ IF ( GVERT_INTERP ) THEN
   !
   ZZLS1=MYM(ZZLS2)
   ZZLS1(:,1,:)=2.*ZZLS1(:,2,:)-ZZLS1(:,3,:)
-  ZZSS=MZF(1,IKU,1,PZZ)
+  ZZSS=MZF(PZZ)
   ZZSS(:,:,IKU)=2.*ZZSS(:,:,IKU-1)-ZZSS(:,:,IKU-2)
   ZZSS=MYM(ZZSS)
   ZZSS(:,1,:)=2.*ZZSS(:,2,:)-ZZSS(:,3,:)
diff --git a/src/MNH/ini_tke_eps.f90 b/src/MNH/ini_tke_eps.f90
index f0aba674f3ec36a83f1284b8fa33713cfd7af53f..c76c795b5e67772a14cd56384910110c2a55a010 100644
--- a/src/MNH/ini_tke_eps.f90
+++ b/src/MNH/ini_tke_eps.f90
@@ -1,4 +1,4 @@
-!MNH_LIC Copyright 1995-2019 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 1995-2020 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
 !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
@@ -117,7 +117,7 @@ TYPE(LIST_ll), POINTER                      :: TPINITHALO3D_ll ! pointer for the
 !
 !*       0.2    Declaration of local variables
 !
-INTEGER ::         IKB,IKE,IKU! index value for the first and last inner
+INTEGER ::         IKB,IKE    ! index value for the first and last inner
                               ! mass points
 INTEGER ::         JKK        ! vertical loop index
 REAL, DIMENSION(SIZE(PUT,1),SIZE(PUT,2),SIZE(PUT,3)) :: ZDELTZ ! vertical
@@ -128,7 +128,6 @@ REAL, DIMENSION(SIZE(PUT,1),SIZE(PUT,2),SIZE(PUT,3)) :: ZDELTZ ! vertical
 ! 
 IKB=1+JPVEXT
 IKE=SIZE(PTHT,3)-JPVEXT
-IKU=SIZE(PTHT,3)
 !
 !*       1.     TKE DETERMINATION
 !               -----------------
@@ -150,9 +149,9 @@ IF (HGETTKET == 'INIT' ) THEN
   !
   ! determines TKE
   PTKET(:,:,:)=(XLINI**2/XCED)*(  &
-                  XCMFS*( DZF(1,IKU,1,MXF(MZM(1,IKU,1,PUT)))**2                  &
-                         +DZF(1,IKU,1,MYF(MZM(1,IKU,1,PVT)))**2) / ZDELTZ        &
-                 -(XG/PTHVREF)*XCSHF*DZF(1,IKU,1,MZM(1,IKU,1,PTHT))              &
+                  XCMFS*( DZF(MXF(MZM(PUT)))**2                  &
+                         +DZF(MYF(MZM(PVT)))**2) / ZDELTZ        &
+                 -(XG/PTHVREF)*XCSHF*DZF(MZM(PTHT))              &
                                ) / ZDELTZ
   ! positivity control
   WHERE (PTKET < XTKEMIN) PTKET=XTKEMIN
diff --git a/src/MNH/initial_guess.f90 b/src/MNH/initial_guess.f90
index f7d74b6474576d655d59f7a7d6a9d30d128a749a..cc86efe6508b07f4f65b235a08400aa6f59e3c8c 100644
--- a/src/MNH/initial_guess.f90
+++ b/src/MNH/initial_guess.f90
@@ -1,13 +1,8 @@
-!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 1994-2020 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
-!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt  
+!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
 !-----------------------------------------------------------------
-!--------------- special set of characters for RCS information
-!-----------------------------------------------------------------
-! $Source$ $Revision$ $Date$
-!-----------------------------------------------------------------
-!-----------------------------------------------------------------
 !     #########################
       MODULE MODI_INITIAL_GUESS
 !     #########################
@@ -188,12 +183,10 @@ REAL, DIMENSION(:,:,:,:), INTENT(IN)  :: PRT, PSVT
 !*       0.2   declarations of local variables
 !
 INTEGER                               :: JRR, JSV
-INTEGER                               :: IKU
 REAL                                  :: ZINVTSTEP
 !
 !-------------------------------------------------------------------------------
 !
-IKU=SIZE(XZHAT)
 !*       1.     COMPUTES THE INVERSE OF THE APPLICABLE TIMESTEP
 !   	        -----------------------------------------------
 !
@@ -207,7 +200,7 @@ ZINVTSTEP = 1./PTSTEP
 ! forward-in-time time-marching scheme
 PRUS = PUT * ZINVTSTEP * MXM(PRHODJ)
 PRVS = PVT * ZINVTSTEP * MYM(PRHODJ)
-PRWS = PWT * ZINVTSTEP * MZM(1,IKU,1,PRHODJ)
+PRWS = PWT * ZINVTSTEP * MZM(PRHODJ)
 !
 ! *** meteorological variables
 !
diff --git a/src/MNH/interp3d.f90 b/src/MNH/interp3d.f90
index b5c2faa9db31d4193d7dae0c2f67abba16c4af5b..d6a05a70bba723815e295e7c8738e1f9a8e423b9 100644
--- a/src/MNH/interp3d.f90
+++ b/src/MNH/interp3d.f90
@@ -1,14 +1,11 @@
-!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 1997-2020 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
-!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt  
+!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
 !-----------------------------------------------------------------
-!--------------- special set of characters for RCS information
-!-----------------------------------------------------------------
-! $Source$ $Revision$
-!-----------------------------------------------------------------
+!###################
 MODULE MODI_INTERP3D
-!#################################
+!###################
 !
 INTERFACE
       SUBROUTINE INTERP3D(PFIELD,KGRID,PSVAL,PPLEV,PFIELDAP)
@@ -88,7 +85,6 @@ INTEGER      :: IIE,IJE,IPU      ! End of usefull area
 INTEGER      :: IIB,IJB,IKB      ! Begining of usefull area 
 REAL, DIMENSION(SIZE(XPABST,1),SIZE(XPABST,2),SIZE(XPABST,3)) :: ZPTH  ! pressure for grid points corresponding to KGRID type 
 REAL  :: ZREF,ZXP,ZXM,ZDIXEPS ! pressure values and epsilon value
-INTEGER :: IKU
 !-------------------------------------------------------------------------------
 !
 !*         1.    
@@ -96,7 +92,6 @@ INTEGER :: IKU
 CALL GET_INDICE_ll (IIB,IJB,IIE,IJE)
 IPU=SIZE(PFIELDAP,3)
 IKB=1 +JPVEXT
-IKU=SIZE(XZHAT)
 ZDIXEPS=10.*EPSILON(1.)
 !
 SELECT CASE (KGRID)
@@ -109,7 +104,7 @@ SELECT CASE (KGRID)
     ZPTH(:,:,:)=MYM(XPABST(:,:,:))
     ZPTH(:,1,:)=2.*ZPTH(:,2,:) - ZPTH(:,3,:)
   CASE(4)
-    ZPTH(:,:,:)=MZM(1,IKU,1,XPABST(:,:,:))
+    ZPTH(:,:,:)=MZM(XPABST(:,:,:))
     ZPTH(:,:,1)=2.*ZPTH(:,:,2) - ZPTH(:,:,3)
 END SELECT
 !
diff --git a/src/MNH/ion_drift.f90 b/src/MNH/ion_drift.f90
index 73edec604ea8572b9418b0181fabd74761dfcc78..b3187ca833f755e9a0ad1ab341f829d89d26c633 100644
--- a/src/MNH/ion_drift.f90
+++ b/src/MNH/ion_drift.f90
@@ -1,4 +1,4 @@
-!MNH_LIC Copyright 2010-2019 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 2010-2020 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
 !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
@@ -74,7 +74,6 @@ REAL, DIMENSION(:,:,:,:),       INTENT(INOUT) :: PSVT
 INTEGER :: IIB, IIE  ! index of first and last inner mass points along x
 INTEGER :: IJB, IJE  ! index of first and last inner mass points along y
 INTEGER :: IKB, IKE  ! index of first and last inner mass points along z
-INTEGER :: IKU
 REAL, DIMENSION(SIZE(PSVT,1),SIZE(PSVT,2),SIZE(PSVT,3)) :: ZDRIFTX
 REAL, DIMENSION(SIZE(PSVT,1),SIZE(PSVT,2),SIZE(PSVT,3)) :: ZDRIFTY
 REAL, DIMENSION(SIZE(PSVT,1),SIZE(PSVT,2),SIZE(PSVT,3)) :: ZDRIFTZ
@@ -95,7 +94,6 @@ NULLIFY(TZFIELDS_ll)
 CALL GET_INDICE_ll (IIB,IJB,IIE,IJE)
 IKB = 1 + JPVEXT
 IKE = SIZE(PSVT,3) - JPVEXT
-IKU = SIZE(PSVT,3)
 !
 !
 !-------------------------------------------------------------------------------
@@ -166,7 +164,7 @@ ZDRIFTY(:,:,:) = -MYM(ZDRIFTY(:,:,:)) ! Put components at flux sides
 ! z-component of div term
 ZDRIFTZ(:,:,:) = PSVT(:,:,:,NSV_ELECBEG) * XMOBIL_POS(:,:,:)
 ZDRIFTZ(:,:,:) = ZDRIFTZ(:,:,:) * XEFIELDW(:,:,:)
-ZDRIFTZ(:,:,:) = -MZM(1,IKU,1,ZDRIFTZ(:,:,:)) ! Put components at flux sides
+ZDRIFTZ(:,:,:) = -MZM(ZDRIFTZ(:,:,:)) ! Put components at flux sides
 !
 IF (LWEST_ll( ))  ZDRIFTX(IIB-1,:,:) = ZDRIFTX(IIB,:,:)
 IF (LEAST_ll( ))  ZDRIFTX(IIE+1,:,:) = ZDRIFTX(IIE,:,:)
@@ -192,7 +190,7 @@ ZDRIFTY(:,:,:) = +MYM(ZDRIFTY(:,:,:)) ! Put components at flux sides
 ! z-component of div term
 ZDRIFTZ(:,:,:) = PSVT(:,:,:,NSV_ELECEND) * XMOBIL_NEG(:,:,:)
 ZDRIFTZ(:,:,:) = ZDRIFTZ(:,:,:) * XEFIELDW(:,:,:)
-ZDRIFTZ(:,:,:) = +MZM(1,IKU,1,ZDRIFTZ(:,:,:)) ! Put components at flux sides
+ZDRIFTZ(:,:,:) = +MZM(ZDRIFTZ(:,:,:)) ! Put components at flux sides
 
 !
 IF (LWEST_ll( ))  ZDRIFTX(IIB-1,:,:) = ZDRIFTX(IIB,:,:)
diff --git a/src/MNH/lap_m.f90 b/src/MNH/lap_m.f90
index a16fd80611ef94e9a60d6cc9707f68bdf3833ab3..f1936c828237a3c61b7f54fcb0ab6ee86376396a 100644
--- a/src/MNH/lap_m.f90
+++ b/src/MNH/lap_m.f90
@@ -1,7 +1,8 @@
-!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 2007-2020 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
-!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt  
+!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
+!-----------------------------------------------------------------
 !     #################
       MODULE MODI_LAP_M
 !     #################
@@ -211,7 +212,7 @@ IF(.NOT. L2D) THEN
    ZV = MYM(PRHODJ) * ZV
 ENDIF
 !
-ZW = MZM(1,IKU,1,PRHODJ) * GZ_M_W(1,IKU,1,PY,PDZZ)
+ZW = MZM(PRHODJ) * GZ_M_W(1,IKU,1,PY,PDZZ)
 !
 !-------------------------------------------------------------------------------
 !
diff --git a/src/MNH/les_budget.f90 b/src/MNH/les_budget.f90
index c11a00da0efb960488bc86fee48c44f705bf17f0..5219c5930a3a6a5c702f8ad724f0c68bfe692946 100644
--- a/src/MNH/les_budget.f90
+++ b/src/MNH/les_budget.f90
@@ -1,4 +1,4 @@
-!MNH_LIC Copyright 2002-2019 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 2002-2020 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
 !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
@@ -398,7 +398,7 @@ INTEGER :: IINFO_ll
         ZRHODJ(:,:,:) = MYM(XCURRENT_RHODJ)
         ZS(:,:,:) =  PVARS(:,:,:) / ZRHODJ * XCURRENT_TSTEP
       CASE ('Z')
-        ZRHODJ(:,:,:) = MZM(1,IKU,1,XCURRENT_RHODJ)
+        ZRHODJ(:,:,:) = MZM(XCURRENT_RHODJ)
         ZS(:,:,:) =  PVARS(:,:,:) / ZRHODJ * XCURRENT_TSTEP
       CASE DEFAULT
         ZRHODJ(:,:,:) =     XCURRENT_RHODJ
@@ -416,7 +416,7 @@ INTEGER :: IINFO_ll
       CASE ('Y')
         ZS(:,:,:) = MYF(ZS)
       CASE ('Z')
-        ZS(:,:,:) = MZF(1,IKU,1,ZS)
+        ZS(:,:,:) = MZF(ZS)
     END SELECT
 
     CALL LES_ANOMALY_FIELD(ZS,PANOM)
diff --git a/src/MNH/les_budget_tendn.f90 b/src/MNH/les_budget_tendn.f90
index 88f033d8e0ad92ba150a3bd6117ab9ffcd27a223..35652009d4ca465bc5b6a480747514fc6822b28a 100644
--- a/src/MNH/les_budget_tendn.f90
+++ b/src/MNH/les_budget_tendn.f90
@@ -1,13 +1,8 @@
-!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 2000-2020 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
-!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt  
+!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
 !-----------------------------------------------------------------
-!--------------- special set of characters for RCS information
-!-----------------------------------------------------------------
-! $Source$ $Revision$
-! MASDEV4_7 les 2006/05/18 13:07:25
-!-----------------------------------------------------------------
 !      #######################
 MODULE MODI_LES_BUDGET_TEND_n
 !      #######################
@@ -134,7 +129,7 @@ ALLOCATE(ZSV_ANOM   (IIU,IJU,NLES_K,NSV))
 
 CALL LES_ANOMALY_FIELD(MXF(XUT),ZU_ANOM)
 CALL LES_ANOMALY_FIELD(MYF(XVT),ZV_ANOM)
-CALL LES_ANOMALY_FIELD(MZF(1,IKU,1,XWT),ZW_ANOM)
+CALL LES_ANOMALY_FIELD(MZF(XWT),ZW_ANOM)
 CALL LES_ANOMALY_FIELD(ZTHL,ZTHL_ANOM)
 CALL LES_ANOMALY_FIELD(ZRT,ZRT_ANOM)
 DO JSV=1,NSV
diff --git a/src/MNH/les_cloud_masksn.f90 b/src/MNH/les_cloud_masksn.f90
index daeb189e9c4857293aa878d87b0c9ad65e92d079..9b9bbf3b2bec186d39db42ade3c6b34e8bd54806 100644
--- a/src/MNH/les_cloud_masksn.f90
+++ b/src/MNH/les_cloud_masksn.f90
@@ -1,13 +1,8 @@
-!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 2006-2020 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
-!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt  
+!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
 !-----------------------------------------------------------------
-!--------------- special set of characters for RCS information
-!-----------------------------------------------------------------
-! $Source$ $Revision$
-! MASDEV4_7 les 2006/10/16 14:59:17
-!-----------------------------------------------------------------
 !     #######################
       SUBROUTINE  LES_CLOUD_MASKS_n
 !     #######################
@@ -170,7 +165,7 @@ ZWORK1D=0.
 ZWORK3D=0.  
 ZWORK3DB=0.
 !
-CALL LES_VER_INT(MZF(1,IKU,1,XWT), ZW_LES)
+CALL LES_VER_INT(MZF(XWT), ZW_LES)
 IF (NSV_CS>0) THEN
   DO JSV=NSV_CSBEG, NSV_CSEND
     CALL LES_VER_INT(  XSVT(:,:,:,JSV),  &
diff --git a/src/MNH/les_ini_timestepn.f90 b/src/MNH/les_ini_timestepn.f90
index 9ab7943694bd079c354d4c74aec2029aa9c02e74..f1d8cb6a3cacee43cf315ac25ca908f3b2b8f173 100644
--- a/src/MNH/les_ini_timestepn.f90
+++ b/src/MNH/les_ini_timestepn.f90
@@ -1,13 +1,8 @@
-!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 2002-2020 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
-!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt  
+!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
 !-----------------------------------------------------------------
-!--------------- special set of characters for RCS information
-!-----------------------------------------------------------------
-! $Source$ $Revision$
-! MASDEV4_7 les 2006/08/30 18:38:45
-!-----------------------------------------------------------------
 !      #######################
 MODULE MODI_LES_INI_TIMESTEP_n
 !      #######################
@@ -377,7 +372,7 @@ CALL THL_RT_FROM_TH_R(LUSERV, LUSERC, LUSERR,             &
 !
 CALL LES_ANOMALY_FIELD(MXF(XUT),XU_ANOM)
 CALL LES_ANOMALY_FIELD(MYF(XVT),XV_ANOM)
-CALL LES_ANOMALY_FIELD(MZF(1,IKU,1,XWT),XW_ANOM)
+CALL LES_ANOMALY_FIELD(MZF(XWT),XW_ANOM)
 CALL LES_ANOMALY_FIELD(ZTHL,XTHL_ANOM)
 IF (LUSERV) CALL LES_ANOMALY_FIELD(ZRT,XRT_ANOM)
 DO JSV=1,NSV
diff --git a/src/MNH/lesn.f90 b/src/MNH/lesn.f90
index 3eae3fc04d59c273e750b89bb0ef769ad7e3d3f9..dd9fa4260fad01d74b4a9a05f78b523a599cc12a 100644
--- a/src/MNH/lesn.f90
+++ b/src/MNH/lesn.f90
@@ -1,8 +1,7 @@
-!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 2000-2020 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
-!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt  
+!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
-! $Source: /srv/cvsroot/MNH-VX-Y-Z/src/MNH/lesn.f90,v $
 !-----------------------------------------------------------------
 !     #################
       SUBROUTINE  LES_n
@@ -485,7 +484,7 @@ ELSE
 END IF
 !
 ! computation of mass flux
-ZMASSF=MZM(1,IKU,1,ZRHO)*XWT
+ZMASSF=MZM(ZRHO)*XWT
 !
 !-------------------------------------------------------------------------------
 !
@@ -516,11 +515,11 @@ CALL LES_VER_INT( GZ_M_M(1,IKU,1,XPABST,XDZZ), ZDPDZ_LES )
 !
 CALL LES_VER_INT( MXF(XUT)  ,ZU_LES  )
 CALL LES_VER_INT( MYF(XVT)  ,ZV_LES  )
-CALL LES_VER_INT( MZF(1,IKU,1,XWT)  ,ZW_LES  )
-CALL LES_VER_INT( MZF(1,IKU,1,ZMASSF) ,ZMF_LES)
+CALL LES_VER_INT( MZF(XWT)  ,ZW_LES  )
+CALL LES_VER_INT( MZF(ZMASSF) ,ZMF_LES)
 CALL LES_VER_INT(     XTHT  ,ZTH_LES )
-CALL LES_VER_INT( MXF(MZF(1,IKU,1,GZ_U_UW(1,IKU,1,XUT,XDZZ))), ZDUDZ_LES )
-CALL LES_VER_INT( MYF(MZF(1,IKU,1,GZ_V_VW(1,IKU,1,XVT,XDZZ))), ZDVDZ_LES )
+CALL LES_VER_INT( MXF(MZF(GZ_U_UW(1,IKU,1,XUT,XDZZ))), ZDUDZ_LES )
+CALL LES_VER_INT( MYF(MZF(GZ_V_VW(1,IKU,1,XVT,XDZZ))), ZDVDZ_LES )
 CALL LES_VER_INT( GZ_W_M(1,IKU,1,XWT,XDZZ), ZDWDZ_LES )
 CALL LES_VER_INT( ZEXN, ZEXN_LES)  
 !
@@ -870,7 +869,7 @@ END DO
 !
 IF (NLES_CURRENT_TCOUNT==1) THEN
   ALLOCATE(ZZ_LES    (IIU,IJU,NLES_K))
-  CALL LES_VER_INT( MZF(1,IKU,1,XZZ)  ,ZZ_LES   )
+  CALL LES_VER_INT( MZF(XZZ)  ,ZZ_LES   )
   CALL LES_MEAN_ll ( ZZ_LES, LLES_CURRENT_CART_MASK, XLES_Z  )
   DEALLOCATE(ZZ_LES)
   CALL LES_MEAN_ll ( XZS,    LLES_CURRENT_CART_MASK(:,:,1), XLES_ZS )
@@ -885,7 +884,7 @@ END IF
 !
 CALL SPEC_VER_INT(IMI, MXF(XUT)  ,ZU_SPEC  )
 CALL SPEC_VER_INT(IMI, MYF(XVT)  ,ZV_SPEC  )
-CALL SPEC_VER_INT(IMI, MZF(1,IKU,1,XWT)  ,ZW_SPEC  )
+CALL SPEC_VER_INT(IMI, MZF(XWT)  ,ZW_SPEC  )
 CALL SPEC_VER_INT(IMI,     XTHT  ,ZTH_SPEC )
 IF (LUSERC) CALL SPEC_VER_INT(IMI,     ZTHL  ,ZTHL_SPEC)
 IRR = 0
diff --git a/src/MNH/metrics.f90 b/src/MNH/metrics.f90
index 6d292f948693ed1cdceb775cefb07e519eefd63a..b973e0920ed8e38b3ed6371269cfe5cd342a7a0b 100644
--- a/src/MNH/metrics.f90
+++ b/src/MNH/metrics.f90
@@ -1,14 +1,8 @@
-!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 1994-2020 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
-!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt  
+!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
 !-----------------------------------------------------------------
-!--------------- special set of characters for RCS information
-!-----------------------------------------------------------------
-! $Source$ $Revision$ $Date$
-!-----------------------------------------------------------------
-!-----------------------------------------------------------------
-!-----------------------------------------------------------------
 !     ###################
       MODULE MODI_METRICS
 !     ###################
@@ -162,7 +156,7 @@ ELSE
   ZD1=1.
 END IF
 IF (.NOT.LCARTESIAN) THEN
-  ZDZZ(:,:,:) = MZF(1,IKU,1, 1.+ ZD1*PZZ(:,:,:)/XRADIUS)
+  ZDZZ(:,:,:) = MZF( 1.+ ZD1*PZZ(:,:,:)/XRADIUS)
   DO JK=1,IKU ; DO JJ=1,IJU ; DO JI=1,IIU
     PDXX(JI,JJ,JK) = ZDZZ(JI,JJ,JK) * PDXHAT(JI) /PMAP(JI,JJ)
     PDYY(JI,JJ,JK) = ZDZZ(JI,JJ,JK) * PDYHAT(JJ) /PMAP(JI,JJ)
@@ -201,7 +195,7 @@ PDZY(:,:,:) = DYM(PZZ(:,:,:))
 !*       4.  COMPUTE PDZZ  :
 !            -------------
 !
-PDZZ(:,:,:) = DZM(1,IKU,1,MZF(1,IKU,1,PZZ(:,:,:)))
+PDZZ(:,:,:) = DZM(MZF(PZZ(:,:,:)))
 PDZZ(:,:,IKU) = PZZ(:,:,IKU) - PZZ(:,:,IKU-1)  ! same delta z in IKU and IKU -1
 PDZZ(:,:,1)   = PDZZ(:,:,2)                    ! same delta z in 1   and 2
 !20131024
diff --git a/src/MNH/mode_prandtl.f90 b/src/MNH/mode_prandtl.f90
index 8c2d2609e04949062e0f6ccfe215a09e29c87a70..f90b4713bcf3f32a4548f651adb55bf5e9a0eda2 100644
--- a/src/MNH/mode_prandtl.f90
+++ b/src/MNH/mode_prandtl.f90
@@ -1,4 +1,4 @@
-!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 1994-2020 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
 !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
@@ -599,7 +599,7 @@ IKB = 1+JPVEXT_TURB
 IKE = SIZE(PD,3)-JPVEXT_TURB
 
 #ifndef MNH_OPENACC
-PM3_WTH_W2TH(:,:,:) = XCSHF*PKEFF*1.5/MZM(KKA,KKU,KKL,PTKE)              &
+M3_WTH_W2TH(:,:,:) = XCSHF*PKEFF*1.5/MZM(PTKE)              &
   * (1. - 0.5*PREDR1*(1.+PREDR1)/PD ) / (1.+PREDTH1)
 #else
 CALL MZM_DEVICE(PTKE,ZTMP1_DEVICE)
@@ -665,9 +665,9 @@ IKE = SIZE(PD,3)-JPVEXT_TURB
 #ifndef MNH_OPENACC
 PD_M3_WTH_W2TH_O_DDTDZ(:,:,:) = &
 #ifndef MNH_BITREP
- - XCSHF*PKEFF*1.5/MZM(KKA,KKU,KKL,PTKE)/(1.+PREDTH1)**2*XCTV*PBLL_O_E*PETHETA  &
+ - XCSHF*PKEFF*1.5/MZM(PTKE)/(1.+PREDTH1)**2*XCTV*PBLL_O_E*PETHETA  &
 #else
- - XCSHF*PKEFF*1.5/MZM(KKA,KKU,KKL,PTKE)/BR_P2(1.+PREDTH1)*XCTV*PBLL_O_E*PETHETA  &
+ - XCSHF*PKEFF*1.5/MZM(PTKE)/BR_P2(1.+PREDTH1)*XCTV*PBLL_O_E*PETHETA  &
 #endif
  * (1. - 0.5*PREDR1*(1.+PREDR1)/PD*( 1.+(1.+PREDTH1)*(1.5+PREDR1+PREDTH1)/PD) )
 #else
@@ -738,7 +738,7 @@ IKB = 1+JPVEXT_TURB
 IKE = SIZE(PD,3)-JPVEXT_TURB
 
 #ifndef MNH_OPENACC
-PM3_WTH_W2R(:,:,:) = - XCSHF*PKEFF*0.75*XCTV*PBLL_O_E/MZM(KKA,KKU,KKL,PTKE)*PEMOIST*PDTDZ/PD
+PM3_WTH_W2R(:,:,:) = - XCSHF*PKEFF*0.75*XCTV*PBLL_O_E/MZM(PTKE)*PEMOIST*PDTDZ/PD
 #else
 CALL MZM_DEVICE(PTKE,ZTMP1_DEVICE)
 !$acc kernels
@@ -800,7 +800,7 @@ IKB = 1+JPVEXT_TURB
 IKE = SIZE(PD,3)-JPVEXT_TURB
 
 #ifndef MNH_OPENACC
-PD_M3_WTH_W2R_O_DDTDZ(:,:,:) = - XCSHF*PKEFF*0.75*XCTV*PBLL_O_E/MZM(KKA,KKU,KKL,PTKE)*PEMOIST/PD &
+PD_M3_WTH_W2R_O_DDTDZ(:,:,:) = - XCSHF*PKEFF*0.75*XCTV*PBLL_O_E/MZM(PTKE)*PEMOIST/PD &
                                      * (1. -  PREDTH1*(1.5+PREDTH1+PREDR1)/PD)
 #else
 CALL MZM_DEVICE(PTKE,ZTMP1_DEVICE)
@@ -874,7 +874,7 @@ PM3_WTH_WR2(:,:,:) = - XCSHF*PKEFF*0.25*PBLL_O_E*XCTV*PEMOIST**2       &
 #else
 PM3_WTH_WR2(:,:,:) = - XCSHF*PKEFF*0.25*PBLL_O_E*XCTV*BR_P2(PEMOIST)       &
 #endif
-                           *MZM(KKA,KKU,KKL,PBETA*PLEPS/(PSQRT_TKE*PTKE))/XCTD*PDTDZ/PD
+                           *MZM(PBETA*PLEPS/(PSQRT_TKE*PTKE))/XCTD*PDTDZ/PD
 #else
 !$acc kernels
 ZTMP2_DEVICE = PBETA*PLEPS/(PSQRT_TKE*PTKE)
@@ -955,7 +955,7 @@ PD_M3_WTH_WR2_O_DDTDZ(:,:,:) = - XCSHF*PKEFF*0.25*PBLL_O_E*XCTV*PEMOIST**2 &
 #else
 PD_M3_WTH_WR2_O_DDTDZ(:,:,:) = - XCSHF*PKEFF*0.25*PBLL_O_E*XCTV*BR_P2(PEMOIST) &
 #endif
-                           *MZM(KKA,KKU,KKL,PBETA*PLEPS/(PSQRT_TKE*PTKE))/XCTD/PD     &
+                           *MZM(PBETA*PLEPS/(PSQRT_TKE*PTKE))/XCTD/PD     &
                            * (1. -  PREDTH1*(1.5+PREDTH1+PREDR1)/PD)
 #else
 !$acc kernels
@@ -1029,7 +1029,7 @@ IKB = 1+JPVEXT_TURB
 IKE = SIZE(PD,3)-JPVEXT_TURB
 
 #ifndef MNH_OPENACC
-PM3_WTH_WTHR(:,:,:) = XCSHF*PKEFF*PEMOIST*MZM(KKA,KKU,KKL,PBETA/PTKE*PSQRT_TKE) &
+PM3_WTH_WTHR(:,:,:) = XCSHF*PKEFF*PEMOIST*MZM(PBETA/PTKE*PSQRT_TKE) &
                          *0.5*PLEPS/XCTD*(1+PREDR1)/PD
 #else
 !$acc kernels
@@ -1137,7 +1137,7 @@ IKB = 1+JPVEXT_TURB
 IKE = SIZE(PD,3)-JPVEXT_TURB
 
 #ifndef MNH_OPENACC
-PM3_TH2_W2TH(:,:,:) = - MZF(KKA,KKU,KKL,(1.-0.5*PREDR1*(1.+PREDR1)/PD)/(1.+PREDTH1)*PDTDZ) &
+PM3_TH2_W2TH(:,:,:) = - MZF((1.-0.5*PREDR1*(1.+PREDR1)/PD)/(1.+PREDTH1)*PDTDZ) &
                        * 1.5*PLM*PLEPS/PTKE*XCTV
 #else
 !$acc kernels
@@ -1206,7 +1206,7 @@ IKE = SIZE(PD,3)-JPVEXT_TURB
 
 #ifndef MNH_OPENACC
 IF (OUSERV) THEN
-  PD_M3_TH2_W2TH_O_DDTDZ(:,:,:) = - 1.5*PLM*PLEPS/PTKE*XCTV * MZF(KKA,KKU,KKL,    &
+  PD_M3_TH2_W2TH_O_DDTDZ(:,:,:) = - 1.5*PLM*PLEPS/PTKE*XCTV * MZF(    &
           (1.-0.5*PREDR1*(1.+PREDR1)/PD)*(1.-(1.5+PREDTH1+PREDR1)*   &
 #ifndef MNH_BITREP
              PREDTH1*(1.+PREDTH1)/PD ) / (1.+PREDTH1)**2      )
@@ -1216,9 +1216,9 @@ IF (OUSERV) THEN
 
 ELSE
 #ifndef MNH_BITREP
-  PD_M3_TH2_W2TH_O_DDTDZ(:,:,:) = - 1.5*PLM*PLEPS/PTKE*XCTV * MZF(KKA,KKU,KKL,1./(1.+PREDTH1)**2)
+  PD_M3_TH2_W2TH_O_DDTDZ(:,:,:) = - 1.5*PLM*PLEPS/PTKE*XCTV * MZF(1./(1.+PREDTH1)**2)
 #else
-  PD_M3_TH2_W2TH_O_DDTDZ(:,:,:) = - 1.5*PLM*PLEPS/PTKE*XCTV * MZF(KKA,KKU,KKL,1./BR_P2(1.+PREDTH1))
+  PD_M3_TH2_W2TH_O_DDTDZ(:,:,:) = - 1.5*PLM*PLEPS/PTKE*XCTV * MZF(1./BR_P2(1.+PREDTH1))
 #endif
 END IF
 #else
@@ -1308,9 +1308,9 @@ IKE = SIZE(PD,3)-JPVEXT_TURB
 #ifndef MNH_OPENACC
 PM3_TH2_WTH2(:,:,:) = PLEPS*0.5/XCTD/PSQRT_TKE          &
 #ifndef MNH_BITREP
-  * MZF(KKA,KKU,KKL, (1.+0.5*PREDTH1+1.5*PREDR1+0.5*PREDR1**2)/PD )
+  * MZF( (1.+0.5*PREDTH1+1.5*PREDR1+0.5*PREDR1**2)/PD )
 #else
-  * MZF(KKA,KKU,KKL, (1.+0.5*PREDTH1+1.5*PREDR1+0.5*BR_P2(PREDR1))/PD )
+  * MZF( (1.+0.5*PREDTH1+1.5*PREDR1+0.5*BR_P2(PREDR1))/PD )
 #endif
 #else
 !$acc kernels
@@ -1382,7 +1382,7 @@ IKE = SIZE(PD,3)-JPVEXT_TURB
 
 #ifndef MNH_OPENACC
 PD_M3_TH2_WTH2_O_DDTDZ(:,:,:) = PLEPS*0.5/XCTD/PSQRT_TKE*XCTV                        &
- * MZF(KKA,KKU,KKL, PBLL_O_E*PETHETA* (0.5/PD                                                   &
+ * MZF( PBLL_O_E*PETHETA* (0.5/PD                                                   &
 #ifndef MNH_BITREP
              - (1.5+PREDTH1+PREDR1)*(1.+0.5*PREDTH1+1.5*PREDR1+0.5*PREDR1**2)/PD**2 &
 #else
@@ -1461,9 +1461,9 @@ IKE = SIZE(PD,3)-JPVEXT_TURB
 
 #ifndef MNH_OPENACC
 #ifndef MNH_BITREP
-PM3_TH2_W2R(:,:,:) = 0.75*XCTV**2*MZF(KKA,KKU,KKL,PBLL_O_E*PEMOIST/PD*PDTDZ**2)*PLM*PLEPS/PTKE
+PM3_TH2_W2R(:,:,:) = 0.75*XCTV**2*MZF(PBLL_O_E*PEMOIST/PD*PDTDZ**2)*PLM*PLEPS/PTKE
 #else
-PM3_TH2_W2R(:,:,:) = 0.75*BR_P2(XCTV)*MZF(KKA,KKU,KKL,PBLL_O_E*PEMOIST/PD*BR_P2(PDTDZ))*PLM*PLEPS/PTKE
+PM3_TH2_W2R(:,:,:) = 0.75*BR_P2(XCTV)*MZF(PBLL_O_E*PEMOIST/PD*BR_P2(PDTDZ))*PLM*PLEPS/PTKE
 #endif
 #else
 !$acc kernels
@@ -1545,7 +1545,7 @@ PD_M3_TH2_W2R_O_DDTDZ(:,:,:) = 0.75*XCTV**2*PLM*PLEPS/PTKE &
 #else
 PD_M3_TH2_W2R_O_DDTDZ(:,:,:) = 0.75*BR_P2(XCTV)*PLM*PLEPS/PTKE &
 #endif
- * MZF(KKA,KKU,KKL, PBLL_O_E*PEMOIST/PD*PDTDZ*(2.-PREDTH1*(1.5+PREDTH1+PREDR1)/PD) )
+ * MZF( PBLL_O_E*PEMOIST/PD*PDTDZ*(2.-PREDTH1*(1.5+PREDTH1+PREDR1)/PD) )
 #else
 !$acc kernels
 ZTMP2_DEVICE = PBLL_O_E*PEMOIST/PD*PDTDZ*(2.-PREDTH1*(1.5+PREDTH1+PREDR1)/PD)
@@ -1616,9 +1616,9 @@ IKE = SIZE(PD,3)-JPVEXT_TURB
 
 #ifndef MNH_OPENACC
 #ifndef MNH_BITREP
-PM3_TH2_WR2(:,:,:) = 0.25*XCTV**2*MZF(KKA,KKU,KKL,(PBLL_O_E*PEMOIST*PDTDZ)**2/PD)*PLEPS/PSQRT_TKE/XCTD
+PM3_TH2_WR2(:,:,:) = 0.25*XCTV**2*MZF((PBLL_O_E*PEMOIST*PDTDZ)**2/PD)*PLEPS/PSQRT_TKE/XCTD
 #else
-PM3_TH2_WR2(:,:,:) = 0.25*BR_P2(XCTV)*MZF(KKA,KKU,KKL,BR_P2(PBLL_O_E*PEMOIST*PDTDZ)/PD)*PLEPS/PSQRT_TKE/XCTD
+PM3_TH2_WR2(:,:,:) = 0.25*BR_P2(XCTV)*MZF(BR_P2(PBLL_O_E*PEMOIST*PDTDZ)/PD)*PLEPS/PSQRT_TKE/XCTD
 #endif
 #else
 !$acc kernels
@@ -1695,10 +1695,10 @@ IKE = SIZE(PD,3)-JPVEXT_TURB
 #ifndef MNH_OPENACC
 #ifndef MNH_BITREP
 PD_M3_TH2_WR2_O_DDTDZ(:,:,:) = 0.25*XCTV**2*PLEPS/PSQRT_TKE/XCTD &
-  *  MZF(KKA,KKU,KKL, (PBLL_O_E*PEMOIST)**2*PDTDZ/PD*(2.-PREDTH1*(1.5+PREDTH1+PREDR1)/PD) )
+  *  MZF( (PBLL_O_E*PEMOIST)**2*PDTDZ/PD*(2.-PREDTH1*(1.5+PREDTH1+PREDR1)/PD) )
 #else
 PD_M3_TH2_WR2_O_DDTDZ(:,:,:) = 0.25*BR_P2(XCTV)*PLEPS/PSQRT_TKE/XCTD &
-  *  MZF(KKA,KKU,KKL, BR_P2(PBLL_O_E*PEMOIST)*PDTDZ/PD*(2.-PREDTH1*(1.5+PREDTH1+PREDR1)/PD) )
+  *  MZF( BR_P2(PBLL_O_E*PEMOIST)*PDTDZ/PD*(2.-PREDTH1*(1.5+PREDTH1+PREDR1)/PD) )
 #endif
 #else
 !$acc kernels
@@ -1775,7 +1775,7 @@ IKE = SIZE(PD,3)-JPVEXT_TURB
 
 #ifndef MNH_OPENACC
 PM3_TH2_WTHR(:,:,:) = - 0.5*XCTV*PLEPS/PSQRT_TKE/XCTD &
- * MZF(KKA,KKU,KKL, PBLL_O_E*PEMOIST*PDTDZ*(1.+PREDR1)/PD )
+ * MZF( PBLL_O_E*PEMOIST*PDTDZ*(1.+PREDR1)/PD )
 #else
 !$acc kernels
 ZTMP2_DEVICE = PBLL_O_E*PEMOIST*PDTDZ*(1.+PREDR1)/PD
@@ -1843,7 +1843,7 @@ IKE = SIZE(PD,3)-JPVEXT_TURB
 
 #ifndef MNH_OPENACC
 PD_M3_TH2_WTHR_O_DDTDZ(:,:,:) = - 0.5*XCTV*PLEPS/PSQRT_TKE/XCTD &
- * MZF(KKA,KKU,KKL, PBLL_O_E*PEMOIST*(1.+PREDR1)/PD * (1. -PREDTH1*(1.5+PREDTH1+PREDR1)/PD) )
+ * MZF( PBLL_O_E*PEMOIST*(1.+PREDR1)/PD * (1. -PREDTH1*(1.5+PREDTH1+PREDR1)/PD) )
 #else
 !$acc kernels
 ZTMP2_DEVICE = PBLL_O_E*PEMOIST*(1.+PREDR1)/PD * (1. -PREDTH1*(1.5+PREDTH1+PREDR1)/PD)
@@ -1909,7 +1909,7 @@ IKE = SIZE(PD,3)-JPVEXT_TURB
 
 #ifndef MNH_OPENACC
 PM3_THR_WTHR(:,:,:) = 0.5*PLEPS/PSQRT_TKE/XCTD &
- * MZF(KKA,KKU,KKL, (1.+PREDTH1)*(1.+PREDR1)/PD )
+ * MZF( (1.+PREDTH1)*(1.+PREDR1)/PD )
 #else
 !$acc kernels
 ZTMP2_DEVICE = (1.+PREDTH1)*(1.+PREDR1)/PD
@@ -1976,7 +1976,7 @@ IKE = SIZE(PD,3)-JPVEXT_TURB
 
 #ifndef MNH_OPENACC
 PD_M3_THR_WTHR_O_DDTDZ(:,:,:) = 0.5*PLEPS/PSQRT_TKE/XCTD * XCTV &
- * MZF(KKA,KKU,KKL, PETHETA*PBLL_O_E/PD*(1.+PREDR1)*(1.-(1.+PREDTH1)*(1.5+PREDTH1+PREDR1)/PD) )
+ * MZF( PETHETA*PBLL_O_E/PD*(1.+PREDR1)*(1.-(1.+PREDTH1)*(1.5+PREDTH1+PREDR1)/PD) )
 #else
 !$acc kernels
 ZTMP2_DEVICE = PETHETA*PBLL_O_E/PD*(1.+PREDR1)*(1.-(1.+PREDTH1)*(1.5+PREDTH1+PREDR1)/PD)
@@ -2043,7 +2043,7 @@ IKE = SIZE(PD,3)-JPVEXT_TURB
 
 #ifndef MNH_OPENACC
 PM3_THR_WTH2(:,:,:) = - 0.25*PLEPS/PSQRT_TKE/XCTD*XCTV &
- * MZF(KKA,KKU,KKL, (1.+PREDR1)*PBLL_O_E*PETHETA*PDRDZ/PD )
+ * MZF( (1.+PREDR1)*PBLL_O_E*PETHETA*PDRDZ/PD )
 #else
 !$acc kernels
 ZTMP2_DEVICE = (1.+PREDR1)*PBLL_O_E*PETHETA*PDRDZ/PD
@@ -2112,10 +2112,10 @@ IKE = SIZE(PD,3)-JPVEXT_TURB
 #ifndef MNH_OPENACC
 #ifndef MNH_BITREP
 PD_M3_THR_WTH2_O_DDTDZ(:,:,:) = - 0.25*PLEPS/PSQRT_TKE/XCTD*XCTV**2 &
- * MZF(KKA,KKU,KKL, -(1.+PREDR1)*(PBLL_O_E*PETHETA/PD)**2*PDRDZ*(1.5+PREDTH1+PREDR1) )
+ * MZF( -(1.+PREDR1)*(PBLL_O_E*PETHETA/PD)**2*PDRDZ*(1.5+PREDTH1+PREDR1) )
 #else
 PD_M3_THR_WTH2_O_DDTDZ(:,:,:) = - 0.25*PLEPS/PSQRT_TKE/XCTD*BR_P2(XCTV) &
- * MZF(KKA,KKU,KKL, -(1.+PREDR1)*BR_P2(PBLL_O_E*PETHETA/PD)*PDRDZ*(1.5+PREDTH1+PREDR1) )
+ * MZF( -(1.+PREDR1)*BR_P2(PBLL_O_E*PETHETA/PD)*PDRDZ*(1.5+PREDTH1+PREDR1) )
 #endif
 #else
 !$acc kernels
@@ -2191,7 +2191,7 @@ IKE = SIZE(PD,3)-JPVEXT_TURB
 
 #ifndef MNH_OPENACC
 PD_M3_THR_WTH2_O_DDRDZ(:,:,:) = - 0.25*PLEPS/PSQRT_TKE/XCTD*XCTV          &
- * MZF(KKA,KKU,KKL, PBLL_O_E*PETHETA/PD                                  &
+ * MZF( PBLL_O_E*PETHETA/PD                                  &
        *(-(1.+PREDR1)*PREDR1/PD*(1.5+PREDTH1+PREDR1)+(1.+2.*PREDR1))     &
       )
 #else
@@ -2260,7 +2260,7 @@ IKE = SIZE(PD,3)-JPVEXT_TURB
 
 #ifndef MNH_OPENACC
 PM3_THR_W2TH(:,:,:) = - 0.75*PLM*PLEPS/PTKE * XCTV      &
- * MZF(KKA,KKU,KKL, (1.+PREDR1)*PDRDZ/PD )
+ * MZF( (1.+PREDR1)*PDRDZ/PD )
 #else
 !$acc kernels
 ZTMP2_DEVICE = (1.+PREDR1)*PDRDZ/PD
@@ -2330,10 +2330,10 @@ IKE = SIZE(PD,3)-JPVEXT_TURB
 #ifndef MNH_OPENACC
 #ifndef MNH_BITREP
 PD_M3_THR_W2TH_O_DDTDZ(:,:,:) = - 0.75*PLM*PLEPS/PTKE * XCTV**2    &
- * MZF(KKA,KKU,KKL, -PETHETA*PBLL_O_E*(1.+PREDR1)*PDRDZ*(1.5+PREDTH1+PREDR1)/PD**2 )
+ * MZF( -PETHETA*PBLL_O_E*(1.+PREDR1)*PDRDZ*(1.5+PREDTH1+PREDR1)/PD**2 )
 #else
 PD_M3_THR_W2TH_O_DDTDZ(:,:,:) = - 0.75*PLM*PLEPS/PTKE * BR_P2(XCTV)    &
- * MZF(KKA,KKU,KKL, -PETHETA*PBLL_O_E*(1.+PREDR1)*PDRDZ*(1.5+PREDTH1+PREDR1)/BR_P2(PD) )
+ * MZF( -PETHETA*PBLL_O_E*(1.+PREDR1)*PDRDZ*(1.5+PREDTH1+PREDR1)/BR_P2(PD) )
 #endif
 #else
 !$acc kernels
@@ -2409,9 +2409,9 @@ IKE = SIZE(PD,3)-JPVEXT_TURB
 #ifndef MNH_OPENACC
 PD_M3_THR_W2TH_O_DDRDZ(:,:,:) = - 0.75*PLM*PLEPS/PTKE * XCTV        &
 #ifndef MNH_BITREP
- * MZF(KKA,KKU,KKL, -(1.+PREDR1)*PREDR1*(1.5+PREDTH1+PREDR1)/PD**2 &
+ * MZF( -(1.+PREDR1)*PREDR1*(1.5+PREDTH1+PREDR1)/PD**2 &
 #else
- * MZF(KKA,KKU,KKL, -(1.+PREDR1)*PREDR1*(1.5+PREDTH1+PREDR1)/BR_P2(PD) &
+ * MZF( -(1.+PREDR1)*PREDR1*(1.5+PREDTH1+PREDR1)/BR_P2(PD) &
 #endif
         +(1.+2.*PREDR1)/PD                                         &
       )
diff --git a/src/MNH/modeln.f90 b/src/MNH/modeln.f90
index bac3def3868fdb173eb44f5342ceff46810ff1c8..e28be6ca8739ad56d00eba91d4c6d450e720db43 100644
--- a/src/MNH/modeln.f90
+++ b/src/MNH/modeln.f90
@@ -1,4 +1,4 @@
-!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 1994-2020 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
 !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
@@ -997,7 +997,7 @@ IF (NBUMOD==IMI .AND. CBUTYPE=='MASK' ) THEN
   IF (LBU_RV)   XBURHODJV(:,NBUTIME,:) = XBURHODJV(:,NBUTIME,:)    &
                             + MASK_COMPRESS(MYM(XRHODJ))
   IF (LBU_RW)   XBURHODJW(:,NBUTIME,:) = XBURHODJW(:,NBUTIME,:)    &
-                            + MASK_COMPRESS(MZM(1,IKU,1,XRHODJ))
+                            + MASK_COMPRESS(MZM(XRHODJ))
   IF (ALLOCATED(XBURHODJ))                                         &
                 XBURHODJ (:,NBUTIME,:) = XBURHODJ (:,NBUTIME,:)    &
                               + MASK_COMPRESS(XRHODJ)
@@ -1009,7 +1009,7 @@ IF (NBUMOD==IMI .AND. CBUTYPE=='CART' ) THEN
   IF (LBU_RV)   XBURHODJV(:,:,:) = XBURHODJV(:,:,:)    &
                 + CART_COMPRESS(MYM(XRHODJ))
   IF (LBU_RW)   XBURHODJW(:,:,:) = XBURHODJW(:,:,:)    &
-                + CART_COMPRESS(MZM(1,IKU,1,XRHODJ))
+                + CART_COMPRESS(MZM(XRHODJ))
   IF (ALLOCATED(XBURHODJ))                             &
                 XBURHODJ (:,:,:) = XBURHODJ (:,:,:)    &
                 + CART_COMPRESS(XRHODJ)
diff --git a/src/MNH/mpdata.f90 b/src/MNH/mpdata.f90
index 961d2d98aec37e1372714ba152a3aca51743734d..8b676d70dcca23c6a87f0c71302a11fe1d91b856 100644
--- a/src/MNH/mpdata.f90
+++ b/src/MNH/mpdata.f90
@@ -1,6 +1,6 @@
-!MNH_LIC Copyright 1995-2019 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 1995-2020 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
-!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt  
+!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
 !-----------------------------------------------------------------
 !     ##################
@@ -148,7 +148,6 @@ INTEGER :: JRR               ! Loop index for moist variables
 !
 INTEGER:: IIB,IJB            ! Begining useful area  in x,y,z directions
 INTEGER:: IIE,IJE            ! End useful area in x,y,z directions
-INTEGER:: IKU
 !  
 REAL, DIMENSION(SIZE(PTHM,1),SIZE(PTHM,2),SIZE(PTHM,3))   :: ZGUESS  ! Guess 
                              ! variable (to be removed in the future !)
@@ -179,7 +178,6 @@ NULLIFY(TZFIELDS_ll)
 !*       0.3 PROLOGUE
 !
 CALL GET_PHYSICAL_ll(IIB,IJB,IIE,IJE)
-IKU=SIZE(PTHM,3)
 !
 YRX(1) = 'RRV'
 YRX(2) = 'RRC'
@@ -212,7 +210,7 @@ LBUDGET_R(7) = LBUDGET_RH
   ZRVARS(:,:,:) = PRTHS(:,:,:)
   ZFADVU(:,:,:) = -DXF(FXM( PTHM(:,:,:),PRUCT(:,:,:) )  )
   ZFADVV(:,:,:) = -DYF(FYM( PTHM(:,:,:),PRVCT(:,:,:) )  )
-  ZFADVW(:,:,:) = -DZF(1,IKU,1,FZM( PTHM(:,:,:),PRWCT(:,:,:) )  )
+  ZFADVW(:,:,:) = -DZF(FZM( PTHM(:,:,:),PRWCT(:,:,:) )  )
 !
   PRTHS(:,:,:) = PRTHS(:,:,:) + ZFADVU(:,:,:) + ZFADVV(:,:,:) + ZFADVW(:,:,:)
 !
@@ -249,7 +247,7 @@ LBUDGET_R(7) = LBUDGET_RH
     ZFADVV(:,:,:) = ZFADVV(:,:,:) + ZFADV(:,:,:) 
     PRTHS(:,:,:) = PRTHS(:,:,:) + ZFADV(:,:,:)
 !
-    ZFADV(:,:,:) = -DZF(1,IKU,1,FZM( ZGUESS(:,:,:),ZRAWCT(:,:,:) )  )
+    ZFADV(:,:,:) = -DZF(FZM( ZGUESS(:,:,:),ZRAWCT(:,:,:) )  )
     IF(LWEST_ll()  .AND. HLBCX(1) /= 'CYCL') ZFADV(IIB,:,:)=0.
     IF(LEAST_ll()  .AND. HLBCX(1) /= 'CYCL') ZFADV(IIE,:,:)=0.
     IF(LSOUTH_ll() .AND. HLBCY(1) /= 'CYCL') ZFADV(:,IJB,:)=0.
@@ -280,7 +278,7 @@ LBUDGET_R(7) = LBUDGET_RH
     ZRVARS(:,:,:) = PRRS(:,:,:,JRR)
     ZFADVU(:,:,:) = -DXF(FXM( PRM(:,:,:,JRR),PRUCT(:,:,:) )  )
     ZFADVV(:,:,:) = -DYF(FYM( PRM(:,:,:,JRR),PRVCT(:,:,:) )  )
-    ZFADVW(:,:,:) = -DZF(1,IKU,1,FZM( PRM(:,:,:,JRR),PRWCT(:,:,:) )  )
+    ZFADVW(:,:,:) = -DZF(FZM( PRM(:,:,:,JRR),PRWCT(:,:,:) )  )
 !
     PRRS(:,:,:,JRR) = PRRS(:,:,:,JRR) + ZFADVU(:,:,:) + ZFADVV(:,:,:) +  &
                                      ZFADVW(:,:,:)
@@ -313,7 +311,7 @@ LBUDGET_R(7) = LBUDGET_RH
       ZFADVV(:,:,:) = ZFADVV(:,:,:) + ZFADV(:,:,:) 
       PRRS(:,:,:,JRR) = PRRS(:,:,:,JRR) + ZFADV(:,:,:)
 !
-      ZFADV(:,:,:) = -DZF(1,IKU,1,FZM( ZGUESS(:,:,:),ZRAWCT(:,:,:) )  )
+      ZFADV(:,:,:) = -DZF(FZM( ZGUESS(:,:,:),ZRAWCT(:,:,:) )  )
       IF(LWEST_ll()  .AND. HLBCX(1) /= 'CYCL') ZFADV(IIB,:,:)=0.
       IF(LEAST_ll()  .AND. HLBCX(1) /= 'CYCL') ZFADV(IIE,:,:)=0.
       IF(LSOUTH_ll() .AND. HLBCY(1) /= 'CYCL') ZFADV(:,IJB,:)=0.
@@ -348,7 +346,7 @@ LBUDGET_R(7) = LBUDGET_RH
     ZRVARS(:,:,:) = PRTKES(:,:,:)
     ZFADVU(:,:,:) = -DXF(FXM( PTKEM(:,:,:),PRUCT(:,:,:) )  )
     ZFADVV(:,:,:) = -DYF(FYM( PTKEM(:,:,:),PRVCT(:,:,:) )  )
-    ZFADVW(:,:,:) = -DZF(1,IKU,1,FZM( PTKEM(:,:,:),PRWCT(:,:,:) )  )
+    ZFADVW(:,:,:) = -DZF(FZM( PTKEM(:,:,:),PRWCT(:,:,:) )  )
 !
     PRTKES(:,:,:) = PRTKES(:,:,:) + ZFADVU(:,:,:) + ZFADVV(:,:,:) + ZFADVW(:,:,:)
 !
@@ -380,7 +378,7 @@ LBUDGET_R(7) = LBUDGET_RH
       ZFADVV(:,:,:) = ZFADVV(:,:,:) + ZFADV(:,:,:) 
       PRTKES(:,:,:) = PRTKES(:,:,:) + ZFADV(:,:,:)
 !
-      ZFADV(:,:,:) = -DZF(1,IKU,1,FZM( ZGUESS(:,:,:),ZRAWCT(:,:,:) )  )
+      ZFADV(:,:,:) = -DZF(FZM( ZGUESS(:,:,:),ZRAWCT(:,:,:) )  )
       IF(LWEST_ll()  .AND. HLBCX(1) /= 'CYCL') ZFADV(IIB,:,:)=0.
       IF(LEAST_ll()  .AND. HLBCX(1) /= 'CYCL') ZFADV(IIE,:,:)=0.
       IF(LSOUTH_ll() .AND. HLBCY(1) /= 'CYCL') ZFADV(:,IJB,:)=0.
diff --git a/src/MNH/mpdata_scalar.f90 b/src/MNH/mpdata_scalar.f90
index ae29c69b09e8cd4baaf5cddcbb511f7780a9843c..48b6e121507328e3e59777682667c05d8cf4b3a2 100644
--- a/src/MNH/mpdata_scalar.f90
+++ b/src/MNH/mpdata_scalar.f90
@@ -1,4 +1,4 @@
-!MNH_LIC Copyright 1995-2019 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 1995-2020 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
 !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
@@ -144,7 +144,6 @@ INTEGER :: JSV               ! Loop index for Scalar Variables
 !
 INTEGER:: IIB,IJB            ! Begining useful area  in x,y,z directions
 INTEGER:: IIE,IJE            ! End useful area in x,y,z directions
-INTEGER:: IKU
 !  
 REAL, DIMENSION(SIZE(PSVM,1),SIZE(PSVM,2),SIZE(PSVM,3))   :: ZGUESS  ! Guess 
                              ! variable (to be removed in the future !)
@@ -170,7 +169,6 @@ NULLIFY(TZFIELDS_ll)
 !*       0. PROLOGUE
 !
 CALL GET_PHYSICAL_ll(IIB,IJB,IIE,IJE)
-IKU=SIZE(PSVM,3)
 !
 !
 !-------------------------------------------------------------------------------
@@ -183,7 +181,7 @@ IKU=SIZE(PSVM,3)
     ZRVARS(:,:,:) = PRSVS(:,:,:,JSV)
     ZFADVU(:,:,:) = -DXF(FXM( PSVM(:,:,:,JSV),PRUCT(:,:,:) )  )
     ZFADVV(:,:,:) = -DYF(FYM( PSVM(:,:,:,JSV),PRVCT(:,:,:) )  )
-    ZFADVW(:,:,:) = -DZF(1,IKU,1,FZM( PSVM(:,:,:,JSV),PRWCT(:,:,:) )  )
+    ZFADVW(:,:,:) = -DZF(FZM( PSVM(:,:,:,JSV),PRWCT(:,:,:) )  )
 !
     PRSVS(:,:,:,JSV) = PRSVS(:,:,:,JSV) + ZFADVU(:,:,:) + ZFADVV(:,:,:) +  &
                                                           ZFADVW(:,:,:)
@@ -222,7 +220,7 @@ IKU=SIZE(PSVM,3)
       ZFADVV(:,:,:) = ZFADVV(:,:,:) + ZFADV(:,:,:) 
       PRSVS(:,:,:,JSV) = PRSVS(:,:,:,JSV) + ZFADV(:,:,:)
 !
-      ZFADV(:,:,:) = -DZF(1,IKU,1,FZM( ZGUESS(:,:,:),ZRAWCT(:,:,:) )  )
+      ZFADV(:,:,:) = -DZF(FZM( ZGUESS(:,:,:),ZRAWCT(:,:,:) )  )
       IF(LWEST_ll()  .AND. HLBCX(1) /= 'CYCL') ZFADV(IIB,:,:)=0.
       IF(LEAST_ll()  .AND. HLBCX(1) /= 'CYCL') ZFADV(IIE,:,:)=0.
       IF(LSOUTH_ll() .AND. HLBCY(1) /= 'CYCL') ZFADV(:,IJB,:)=0.
diff --git a/src/MNH/num_diff.f90 b/src/MNH/num_diff.f90
index 23751bff843dc1a983d8ad0f1cde32eeb59fb3dd..46ac17c1410d9be1a2e627e77451d1a763bc63f8 100644
--- a/src/MNH/num_diff.f90
+++ b/src/MNH/num_diff.f90
@@ -1,4 +1,4 @@
-!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 1994-2020 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
 !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
@@ -280,7 +280,6 @@ INTEGER :: JRR           ! Loop index for  moist variables
 INTEGER :: JSV           ! Loop index for Scalar Variables
 INTEGER:: IIB,IJB        ! Begining useful area  in x,y directions
 INTEGER:: IIE,IJE        ! End useful area in x,y directions
-INTEGER :: IKU
 !
 LOGICAL     :: GTKEALLOC                 ! true if TKE arrays are not zero-sized
 !
@@ -294,7 +293,6 @@ INTEGER :: IGRID ! localisation on the model grid
 !*       1.     COMPUTES THE DOMAIN DIMENSIONS
 !               ------------------------------
 CALL GET_INDICE_ll(IIB,IJB,IIE,IJE)
-IKU=SIZE(PUM,3)
 !
 GTKEALLOC = SIZE(PTKEM,1) /= 0
 !
@@ -337,10 +335,10 @@ IF (ONUMDIFU) THEN
 !!$ IF(NHALO == 1) THEN
   TZHALO2LIST => TZHALO2LIST%NEXT
   TZHALO2LSLIST => TZHALO2LSLIST%NEXT
-  CALL NUM_DIFF_ALGO(PRWS, PWM, IGRID, MZM(1,IKU,1,PRHODJ), PDK2U, PDK4U, &
+  CALL NUM_DIFF_ALGO(PRWS, PWM, IGRID, MZM(PRHODJ), PDK2U, PDK4U, &
                      PLSWM, TZHALO2LIST%HALO2, TZHALO2LSLIST%HALO2)
 !!$ ELSE
-!!$  CALL NUM_DIFF_ALGO(PRWS, PWM, IGRID, MZM(1,IKU,1,PRHODJ), PDK2U, PDK4U, PLSWM )
+!!$  CALL NUM_DIFF_ALGO(PRWS, PWM, IGRID, MZM(PRHODJ), PDK2U, PDK4U, PLSWM )
 !!$ ENDIF
 ENDIF
 !
diff --git a/src/MNH/ppm.f90 b/src/MNH/ppm.f90
index c122536c17f8a068edfe87896e7265317c09e00c..bbfb03a46a9d816096ff70da3be9a12cc1f95a55 100644
--- a/src/MNH/ppm.f90
+++ b/src/MNH/ppm.f90
@@ -1,4 +1,4 @@
-!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 1994-2020 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
 !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
@@ -2296,7 +2296,7 @@ ZFNEG(:,:,IKE+1) = (ZQR(:,:,IKE)-PSRC(:,:,IKE+1))*PCR(:,:,IKE+1) + &
 ! advect the actual field in Z direction by W*dt
 !
 #ifndef MNH_OPENACC
-PR = DZF(1,IKU,1, PCR*MZM(1,IKU,1,PRHO)*( ZFPOS*(0.5+SIGN(0.5,PCR)) + & 
+PR = DZF( PCR*MZM(PRHO)*( ZFPOS*(0.5+SIGN(0.5,PCR)) + &
                           ZFNEG*(0.5-SIGN(0.5,PCR)) ) )
 #else
 !$acc end kernels 
@@ -3404,7 +3404,6 @@ REAL, DIMENSION(:,:,:),INTENT(OUT):: PR
 #ifndef MNH_OPENACC
 INTEGER:: IKB    ! Begining useful area in x,y,z directions
 INTEGER:: IKE    ! End useful area in x,y,z directions
-INTEGER:: IKU
 !
 ! advection fluxes
 REAL, DIMENSION(SIZE(PCR,1),SIZE(PCR,2),SIZE(PCR,3)) :: ZFPOS, ZFNEG
@@ -3439,7 +3438,6 @@ END IF
 #ifndef MNH_OPENACC
 IKB = 1 + JPVEXT
 IKE = SIZE(PSRC,3) - JPVEXT
-IKU = SIZE(PSRC,3)
 #endif
 !
 !-------------------------------------------------------------------------------
@@ -3504,7 +3502,7 @@ ZFNEG(:,:,IKE+1) = (ZPHAT(:,:,IKE+1) - PSRC(:,:,IKE+1))*PCR(:,:,IKE+1) + &
 !
 #ifndef MNH_OPENACC
 PR = PSRC * PRHO - &
-     DZF(1,IKU,1, PCR*MZM(1,IKU,1,PRHO)*( ZFPOS(:,:,:)*(0.5+SIGN(0.5,PCR)) + & 
+     DZF( PCR*MZM(PRHO)*( ZFPOS(:,:,:)*(0.5+SIGN(0.5,PCR)) + &
                           ZFNEG*(0.5-SIGN(0.5,PCR)) ) )
 #else
 !$acc end kernels
@@ -4380,7 +4378,6 @@ REAL, DIMENSION(:,:,:), INTENT(OUT) :: PR
 !
 INTEGER:: IIB,IJB,IKB   ! Begining useful area in x,y,z directions
 INTEGER:: IIE,IJE,IKE   ! End useful area in x,y,z directions
-INTEGER:: IKU
 !
 ! variable at cell edges
 REAL, DIMENSION(SIZE(PCR,1),SIZE(PCR,2),SIZE(PCR,3)) :: ZPHAT, ZRVT
@@ -4419,11 +4416,10 @@ END IF
 CALL GET_INDICE_ll(IIB,IJB,IIE,IJE)
 IKB = 1 + JPVEXT
 IKE = SIZE(PSRC,3) - JPVEXT
-IKU =  SIZE(PSRC,3)
 !
 !-------------------------------------------------------------------------------
 !
-ZRVT = PCR/PTSTEP * MZM(1,IKU,1,PRHO)
+ZRVT = PCR/PTSTEP * MZM(PRHO)
 !
 ! calculate 4th order fluxes at cell edges in the inner domain !
 ZPHAT(:,:,IKB+1:IKE) = (7.0 * &
@@ -4530,7 +4526,7 @@ END WHERE
 !
 ! 1. calculate upwind tendency of the source
 !
-PR = PSRC*PRHO - PTSTEP*DZF(1,IKU,1,ZFUP)
+PR = PSRC*PRHO - PTSTEP*DZF(ZFUP)
 !
 !-------------------------------------------------------------------------------
 ! compute and apply the limiters
@@ -4658,7 +4654,7 @@ ZFCOR(:,:,IKB-1) = MIN( &
 !-------------------------------------------------------------------------------
 ! 6. apply the limited flux correction to scalar field
 !
-PR = PR - PTSTEP*DZF(1,IKU,1,ZFCOR)
+PR = PR - PTSTEP*DZF(ZFCOR)
 !
 IF (MPPDB_INITIALIZED) THEN
   !Check all INOUT arrays
diff --git a/src/MNH/prandtl.f90 b/src/MNH/prandtl.f90
index 8ec0361d6011910c2e724fe6dcadf21211634959..a4efd778ab656606d812688dde0096d25c11a065 100644
--- a/src/MNH/prandtl.f90
+++ b/src/MNH/prandtl.f90
@@ -1,4 +1,4 @@
-!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 1994-2020 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
 !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
@@ -342,8 +342,8 @@ IKE = KKU-JPVEXT_TURB*KKL
 ISV  =SIZE(PSVM,4)
 !
 #ifndef MNH_OPENACC
-PETHETA(:,:,:) = MZM(KKA,KKU,KKL, ETHETA(KRR,KRRI,PTHLM,PRM,PLOCPEXNM,PATHETA,PSRCM) )
-PEMOIST(:,:,:) = MZM(KKA,KKU,KKL, EMOIST(KRR,KRRI,PTHLM,PRM,PLOCPEXNM,PAMOIST,PSRCM) )
+PETHETA(:,:,:) = MZM( ETHETA(KRR,KRRI,PTHLM,PRM,PLOCPEXNM,PATHETA,PSRCM) )
+PEMOIST(:,:,:) = MZM( EMOIST(KRR,KRRI,PTHLM,PRM,PLOCPEXNM,PAMOIST,PSRCM) )
 PETHETA(:,:,KKA) = 2.*PETHETA(:,:,IKB) - PETHETA(:,:,IKB+KKL)
 PEMOIST(:,:,KKA) = 2.*PEMOIST(:,:,IKB) - PEMOIST(:,:,IKB+KKL)
 #else
@@ -362,7 +362,7 @@ PEMOIST(:,:,KKA) = 2.*PEMOIST(:,:,IKB) - PEMOIST(:,:,IKB+KKL)
 !          1.3 1D Redelsperger numbers
 !
 #ifndef MNH_OPENACC
-PBLL_O_E(:,:,:) = MZM(KKA,KKU,KKL, XG / PTHVREF(:,:,:) * PLM(:,:,:) * PLEPS(:,:,:) / PTKEM(:,:,:) )  
+PBLL_O_E(:,:,:) = MZM( XG / PTHVREF(:,:,:) * PLM(:,:,:) * PLEPS(:,:,:) / PTKEM(:,:,:) )
 IF (KRR /= 0) THEN                ! moist case
   PREDTH1(:,:,:)= XCTV*PBLL_O_E(:,:,:) * PETHETA(:,:,:) * &
                    & GZ_M_W(KKA,KKU,KKL,PTHLM,PDZZ)
@@ -498,10 +498,10 @@ ELSE IF (L2D) THEN                      ! 3D case in a 2D model
 #ifndef MNH_OPENACC
 #ifndef MNH_BITREP
     PRED2TH3(:,:,:)= PREDTH1(:,:,:)**2+(XCTV*PBLL_O_E(:,:,:)*PETHETA(:,:,:) )**2 * &
-      MZM(KKA,KKU,KKL, GX_M_M(KKA,KKU,KKL,PTHLM,PDXX,PDZZ,PDZX)**2 )
+      MZM( GX_M_M(KKA,KKU,KKL,PTHLM,PDXX,PDZZ,PDZX)**2 )
 #else
     PRED2TH3(:,:,:)= BR_P2(PREDTH1(:,:,:))+BR_P2(XCTV*PBLL_O_E(:,:,:)*PETHETA(:,:,:) ) * &
-      MZM(KKA,KKU,KKL, BR_P2(GX_M_M(KKA,KKU,KKL,PTHLM,PDXX,PDZZ,PDZX)) )
+      MZM( BR_P2(GX_M_M(KKA,KKU,KKL,PTHLM,PDXX,PDZZ,PDZX)) )
 #endif
     PRED2TH3(:,:,IKB)=PRED2TH3(:,:,IKB+KKL)
 #else
@@ -527,10 +527,10 @@ ELSE IF (L2D) THEN                      ! 3D case in a 2D model
 #ifndef MNH_OPENACC
 #ifndef MNH_BITREP
     PRED2R3(:,:,:)= PREDR1(:,:,:)**2 + (XCTV*PBLL_O_E(:,:,:)*PEMOIST(:,:,:))**2 * &
-        MZM(KKA,KKU,KKL, GX_M_M(KKA,KKU,KKL,PRM(:,:,:,1),PDXX,PDZZ,PDZX)**2 )
+        MZM( GX_M_M(KKA,KKU,KKL,PRM(:,:,:,1),PDXX,PDZZ,PDZX)**2 )
 #else
     PRED2R3(:,:,:)= BR_P2(PREDR1(:,:,:)) + BR_P2(XCTV*PBLL_O_E(:,:,:)*PEMOIST(:,:,:)) * &
-        MZM(KKA,KKU,KKL, BR_P2(GX_M_M(KKA,KKU,KKL,PRM(:,:,:,1),PDXX,PDZZ,PDZX)) )
+        MZM( BR_P2(GX_M_M(KKA,KKU,KKL,PRM(:,:,:,1),PDXX,PDZZ,PDZX)) )
 #endif
     PRED2R3(:,:,IKB)=PRED2R3(:,:,IKB+KKL)
 #else
@@ -560,7 +560,7 @@ ELSE IF (L2D) THEN                      ! 3D case in a 2D model
     PRED2THR3(:,:,:)= PREDR1(:,:,:) * PREDTH1(:,:,:) +  BR_P2(XCTV)*BR_P2(PBLL_O_E(:,:,:)) *   &
 #endif
                   PEMOIST(:,:,:) * PETHETA(:,:,:) *                         &
-      MZM(KKA,KKU,KKL, GX_M_M(KKA,KKU,KKL,PRM(:,:,:,1),PDXX,PDZZ,PDZX)*     &
+      MZM( GX_M_M(KKA,KKU,KKL,PRM(:,:,:,1),PDXX,PDZZ,PDZX)*     &
                      GX_M_M(KKA,KKU,KKL,PTHLM,PDXX,PDZZ,PDZX))
     PRED2THR3(:,:,IKB)=PRED2THR3(:,:,IKB+KKL)
 #else
@@ -589,10 +589,10 @@ call Print_msg( NVERB_WARNING, 'GEN', 'PRANDTL', 'OpenACC: L2D=.T. and KRR=0 not
 #ifndef MNH_OPENACC
 #ifndef MNH_BITREP
     PRED2TH3(:,:,:) = PREDTH1(:,:,:)**2 +  XCTV**2*PBLL_O_E(:,:,:)**2 *     &
-      MZM(KKA,KKU,KKL, GX_M_M(KKA,KKU,KKL,PTHLM,PDXX,PDZZ,PDZX)**2 )
+      MZM( GX_M_M(KKA,KKU,KKL,PTHLM,PDXX,PDZZ,PDZX)**2 )
 #else
     PRED2TH3(:,:,:) = BR_P2(PREDTH1(:,:,:)) +  BR_P2(XCTV)*BR_P2(PBLL_O_E(:,:,:)) *     &
-      MZM(KKA,KKU,KKL, BR_P2(GX_M_M(KKA,KKU,KKL,PTHLM,PDXX,PDZZ,PDZX)) )
+      MZM( BR_P2(GX_M_M(KKA,KKU,KKL,PTHLM,PDXX,PDZZ,PDZX)) )
 #endif
     PRED2TH3(:,:,IKB)=PRED2TH3(:,:,IKB+KKL)
 #else
@@ -635,11 +635,11 @@ ELSE                                 ! 3D case in a 3D model
 #ifndef MNH_OPENACC
 #ifndef MNH_BITREP
     PRED2TH3(:,:,:)= PREDTH1(:,:,:)**2 +  ( XCTV*PBLL_O_E(:,:,:)*PETHETA(:,:,:) )**2 * &
-      MZM(KKA,KKU,KKL, GX_M_M(KKA,KKU,KKL,PTHLM,PDXX,PDZZ,PDZX)**2 &
+      MZM( GX_M_M(KKA,KKU,KKL,PTHLM,PDXX,PDZZ,PDZX)**2 &
       + GY_M_M(KKA,KKU,KKL,PTHLM,PDYY,PDZZ,PDZY)**2 )
 #else
     PRED2TH3(:,:,:)= BR_P2(PREDTH1(:,:,:)) +  BR_P2( XCTV*PBLL_O_E(:,:,:)*PETHETA(:,:,:) ) * &
-      MZM(KKA,KKU,KKL, BR_P2(GX_M_M(KKA,KKU,KKL,PTHLM,PDXX,PDZZ,PDZX)) &
+      MZM( BR_P2(GX_M_M(KKA,KKU,KKL,PTHLM,PDXX,PDZZ,PDZX)) &
       + BR_P2(GY_M_M(KKA,KKU,KKL,PTHLM,PDYY,PDZZ,PDZY)) )
 #endif
     PRED2TH3(:,:,IKB)=PRED2TH3(:,:,IKB+KKL)
@@ -667,11 +667,11 @@ ELSE                                 ! 3D case in a 3D model
 #ifndef MNH_OPENACC
 #ifndef MNH_BITREP
     PRED2R3(:,:,:)= PREDR1(:,:,:)**2 + (XCTV*PBLL_O_E(:,:,:)*PEMOIST(:,:,:))**2 *      &
-        MZM(KKA,KKU,KKL, GX_M_M(KKA,KKU,KKL,PRM(:,:,:,1),PDXX,PDZZ,PDZX)**2 + &
+        MZM( GX_M_M(KKA,KKU,KKL,PRM(:,:,:,1),PDXX,PDZZ,PDZX)**2 + &
         GY_M_M(KKA,KKU,KKL,PRM(:,:,:,1),PDYY,PDZZ,PDZY)**2 )
 #else
     PRED2R3(:,:,:)= BR_P2(PREDR1(:,:,:)) + BR_P2(XCTV*PBLL_O_E(:,:,:)*PEMOIST(:,:,:)) *      &
-        MZM(KKA,KKU,KKL, BR_P2(GX_M_M(KKA,KKU,KKL,PRM(:,:,:,1),PDXX,PDZZ,PDZX)) + &
+        MZM( BR_P2(GX_M_M(KKA,KKU,KKL,PRM(:,:,:,1),PDXX,PDZZ,PDZX)) + &
         BR_P2(GY_M_M(KKA,KKU,KKL,PRM(:,:,:,1),PDYY,PDZZ,PDZY)) )
 #endif
     PRED2R3(:,:,IKB)=PRED2R3(:,:,IKB+KKL)
@@ -705,7 +705,7 @@ ELSE                                 ! 3D case in a 3D model
     PRED2THR3(:,:,:)= PREDR1(:,:,:) * PREDTH1(:,:,:) +  BR_P2(XCTV)*BR_P2(PBLL_O_E(:,:,:)) *   &
 #endif
          PEMOIST(:,:,:) * PETHETA(:,:,:) *                            &
-         MZM(KKA,KKU,KKL, GX_M_M(KKA,KKU,KKL,PRM(:,:,:,1),PDXX,PDZZ,PDZX)*   &
+         MZM( GX_M_M(KKA,KKU,KKL,PRM(:,:,:,1),PDXX,PDZZ,PDZX)*   &
          GX_M_M(KKA,KKU,KKL,PTHLM,PDXX,PDZZ,PDZX)+                           &
          GY_M_M(KKA,KKU,KKL,PRM(:,:,:,1),PDYY,PDZZ,PDZY)*                    &
          GY_M_M(KKA,KKU,KKL,PTHLM,PDYY,PDZZ,PDZY) )
@@ -740,11 +740,11 @@ call Print_msg( NVERB_WARNING, 'GEN', 'PRANDTL', 'OpenACC: L2D=.F. and KRR=0 not
 #ifndef MNH_OPENACC
 #ifndef MNH_BITREP
     PRED2TH3(:,:,:) = PREDTH1(:,:,:)**2 +  XCTV**2*PBLL_O_E(:,:,:)**2 *                &
-      MZM(KKA,KKU,KKL, GX_M_M(KKA,KKU,KKL,PTHLM,PDXX,PDZZ,PDZX)**2 &
+      MZM( GX_M_M(KKA,KKU,KKL,PTHLM,PDXX,PDZZ,PDZX)**2 &
       + GY_M_M(KKA,KKU,KKL,PTHLM,PDYY,PDZZ,PDZY)**2 )
 #else
     PRED2TH3(:,:,:) = BR_P2(PREDTH1(:,:,:)) +  BR_P2(XCTV)*BR_P2(PBLL_O_E(:,:,:)) *                &
-      MZM(KKA,KKU,KKL, BR_P2(GX_M_M(KKA,KKU,KKL,PTHLM,PDXX,PDZZ,PDZX)) &
+      MZM( BR_P2(GX_M_M(KKA,KKU,KKL,PTHLM,PDXX,PDZZ,PDZX)) &
       + BR_P2(GY_M_M(KKA,KKU,KKL,PTHLM,PDYY,PDZZ,PDZY)) )
 #endif
 #else
@@ -808,15 +808,15 @@ ELSE  IF (L2D) THEN ! 3D case in a 2D model
   DO JSV=1,ISV
 #ifndef MNH_BITREP
     IF (KRR /= 0) THEN
-      ZW1 = MZM(KKA,KKU,KKL, (XG / PTHVREF * PLM * PLEPS / PTKEM)**2 ) *PETHETA
+      ZW1 = MZM( (XG / PTHVREF * PLM * PLEPS / PTKEM)**2 ) *PETHETA
     ELSE
-      ZW1 = MZM(KKA,KKU,KKL, (XG / PTHVREF * PLM * PLEPS / PTKEM)**2)
+      ZW1 = MZM( (XG / PTHVREF * PLM * PLEPS / PTKEM)**2)
     END IF
 #else
     IF (KRR /= 0) THEN
-      ZW1 = MZM(KKA,KKU,KKL, BR_P2(XG / PTHVREF * PLM * PLEPS / PTKEM) ) *PETHETA
+      ZW1 = MZM( BR_P2(XG / PTHVREF * PLM * PLEPS / PTKEM) ) *PETHETA
     ELSE
-      ZW1 = MZM(KKA,KKU,KKL, BR_P2(XG / PTHVREF * PLM * PLEPS / PTKEM))
+      ZW1 = MZM( BR_P2(XG / PTHVREF * PLM * PLEPS / PTKEM))
     END IF
 #endif
 #else
@@ -839,7 +839,7 @@ ELSE  IF (L2D) THEN ! 3D case in a 2D model
 #ifndef MNH_OPENACC
     PRED2THS3(:,:,:,JSV) = PREDTH1(:,:,:) * PREDS1(:,:,:,JSV)   +        &
                        ZW1*                                              &
-                       MZM(KKA,KKU,KKL,GX_M_M(KKA,KKU,KKL,PSVM(:,:,:,JSV),PDXX,PDZZ,PDZX)*       &
+                       MZM(GX_M_M(KKA,KKU,KKL,PSVM(:,:,:,JSV),PDXX,PDZZ,PDZX)*       &
                            GX_M_M(KKA,KKU,KKL,PTHLM,PDXX,PDZZ,PDZX)                  &
                           )
 #else
@@ -858,7 +858,7 @@ ELSE  IF (L2D) THEN ! 3D case in a 2D model
 #ifndef MNH_OPENACC
       PRED2RS3(:,:,:,JSV) = PREDR1(:,:,:) * PREDS1(:,:,:,JSV)   +        &
                        ZW1 * PEMOIST *                                   &
-                       MZM(KKA,KKU,KKL,GX_M_M(KKA,KKU,KKL,PSVM(:,:,:,JSV),PDXX,PDZZ,PDZX)*       &
+                       MZM(GX_M_M(KKA,KKU,KKL,PSVM(:,:,:,JSV),PDXX,PDZZ,PDZX)*       &
                            GX_M_M(KKA,KKU,KKL,PRM(:,:,:,1),PDXX,PDZZ,PDZX)           &
                           )
 #else
@@ -886,15 +886,15 @@ ELSE ! 3D case in a 3D model
   DO JSV=1,ISV
 #ifndef MNH_BITREP
     IF (KRR /= 0) THEN
-      ZW1 = MZM(KKA,KKU,KKL, (XG / PTHVREF * PLM * PLEPS / PTKEM)**2 ) *PETHETA
+      ZW1 = MZM( (XG / PTHVREF * PLM * PLEPS / PTKEM)**2 ) *PETHETA
     ELSE
-      ZW1 = MZM(KKA,KKU,KKL, (XG / PTHVREF * PLM * PLEPS / PTKEM)**2)
+      ZW1 = MZM( (XG / PTHVREF * PLM * PLEPS / PTKEM)**2)
     END IF
 #else
     IF (KRR /= 0) THEN
-      ZW1 = MZM(KKA,KKU,KKL, BR_P2(XG / PTHVREF * PLM * PLEPS / PTKEM) ) *PETHETA
+      ZW1 = MZM( BR_P2(XG / PTHVREF * PLM * PLEPS / PTKEM) ) *PETHETA
     ELSE
-      ZW1 = MZM(KKA,KKU,KKL, BR_P2(XG / PTHVREF * PLM * PLEPS / PTKEM))
+      ZW1 = MZM( BR_P2(XG / PTHVREF * PLM * PLEPS / PTKEM))
     END IF
 #endif
 #else
@@ -917,7 +917,7 @@ ELSE ! 3D case in a 3D model
 #ifndef MNH_OPENACC
     PRED2THS3(:,:,:,JSV) = PREDTH1(:,:,:) * PREDS1(:,:,:,JSV)   +        &
                        ZW1*                                              &
-                       MZM(KKA,KKU,KKL,GX_M_M(KKA,KKU,KKL,PSVM(:,:,:,JSV),PDXX,PDZZ,PDZX)*       &
+                       MZM(GX_M_M(KKA,KKU,KKL,PSVM(:,:,:,JSV),PDXX,PDZZ,PDZX)*       &
                            GX_M_M(KKA,KKU,KKL,PTHLM,PDXX,PDZZ,PDZX)                  &
                           +GY_M_M(KKA,KKU,KKL,PSVM(:,:,:,JSV),PDYY,PDZZ,PDZY)*       &
                            GY_M_M(KKA,KKU,KKL,PTHLM,PDYY,PDZZ,PDZY)                  &
@@ -940,7 +940,7 @@ ELSE ! 3D case in a 3D model
 #ifndef MNH_OPENACC
       PRED2RS3(:,:,:,JSV) = PREDR1(:,:,:) * PREDS1(:,:,:,JSV)   +        &
                        ZW1 * PEMOIST *                                   &
-                       MZM(KKA,KKU,KKL,GX_M_M(KKA,KKU,KKL,PSVM(:,:,:,JSV),PDXX,PDZZ,PDZX)*       &
+                       MZM(GX_M_M(KKA,KKU,KKL,PSVM(:,:,:,JSV),PDXX,PDZZ,PDZX)*       &
                            GX_M_M(KKA,KKU,KKL,PRM(:,:,:,1),PDXX,PDZZ,PDZX)           &
                           +GY_M_M(KKA,KKU,KKL,PSVM(:,:,:,JSV),PDYY,PDZZ,PDZY)*       &
                            GY_M_M(KKA,KKU,KKL,PRM(:,:,:,1),PDYY,PDZZ,PDZY)           &
diff --git a/src/MNH/pressure.f90 b/src/MNH/pressure.f90
index 0ec507eec7ee8fb1fe94c7bacc2836524e3dc88e..f06d79f0a5b295008267b2929473caa4db73f913 100644
--- a/src/MNH/pressure.f90
+++ b/src/MNH/pressure.f90
@@ -1,4 +1,4 @@
-!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 1994-2020 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
 !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
@@ -509,10 +509,10 @@ END IF
 !
 IF(CEQNSYS=='MAE' .OR. CEQNSYS=='DUR') THEN
   PRUS = PRUS - MXM(PRHODJ * XCPD * ZTHETAV) * ZDV_SOURCE
-  PRWS = PRWS - MZM(1,IKU,1,PRHODJ * XCPD * ZTHETAV) * GZ_M_W(1,IKU,1,ZPHIT,PDZZ)
+  PRWS = PRWS - MZM(PRHODJ * XCPD * ZTHETAV) * GZ_M_W(1,IKU,1,ZPHIT,PDZZ)
 ELSEIF(CEQNSYS=='LHE') THEN
   PRUS = PRUS - MXM(PRHODJ) * ZDV_SOURCE
-  PRWS = PRWS - MZM(1,IKU,1,PRHODJ) * GZ_M_W(1,IKU,1,ZPHIT,PDZZ)
+  PRWS = PRWS - MZM(PRHODJ) * GZ_M_W(1,IKU,1,ZPHIT,PDZZ)
 END IF
 !
 IF(.NOT. L2D) THEN
diff --git a/src/MNH/pressure_in_prep.f90 b/src/MNH/pressure_in_prep.f90
index e012d515b828652f664356a845921c11fd663e38..6219e352f27f06e8a418d8073fdd8aed4031802d 100644
--- a/src/MNH/pressure_in_prep.f90
+++ b/src/MNH/pressure_in_prep.f90
@@ -1,4 +1,4 @@
-!MNH_LIC Copyright 1998-2019 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 1998-2020 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
 !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt  
 !MNH_LIC for details. version 1.
@@ -117,9 +117,6 @@ REAL,DIMENSION(SIZE(PDXX,1),SIZE(PDXX,2),SIZE(PDXX,3)):: ZDIV ! residual diverge
 !* file management variables and counters
 !
 INTEGER      :: ILUOUT0  ! logical unit for listing file
-INTEGER      :: IRESP    ! error code
-INTEGER      :: IKB, IKE ! inner limits in Z direction
-INTEGER      :: IKU
 INTEGER      :: IINFO_ll
 REAL         :: ZMAXRES
 TYPE(LIST_ll), POINTER :: TZFIELDS_ll   ! list of fields to exchange
@@ -133,10 +130,6 @@ INTEGER               :: I,J,K
 !
 ILUOUT0 = TLUOUT0%NLU
 !
-IKB=1+JPVEXT
-IKE=NKMAX+JPVEXT
-IKU=IKE+JPVEXT
-!
 ZU(:,:,:) = XUT(:,:,:)
 ZV(:,:,:) = XVT(:,:,:)
 ZW(:,:,:) = XWT(:,:,:)
@@ -192,7 +185,7 @@ CALL MPPDB_CHECK3D(XVT,"PressInP4-beforeupdhalo::XVT",PRECISION)
 !
   ZRU(:,:,:) = XUT(:,:,:) * MXM(XRHODJ)
   ZRV(:,:,:) = XVT(:,:,:) * MYM(XRHODJ)
-  ZRW(:,:,:) = XWT(:,:,:) * MZM(1,IKU,1,XRHODJ)
+  ZRW(:,:,:) = XWT(:,:,:) * MZM(XRHODJ)
 !
   CALL ADD3DFIELD_ll( TZFIELDS_ll, ZRU, 'PRESSURE_IN_PREP::ZRU' )
   CALL ADD3DFIELD_ll( TZFIELDS_ll, ZRV, 'PRESSURE_IN_PREP::ZRV' )
diff --git a/src/MNH/pressurez.f90 b/src/MNH/pressurez.f90
index b4c3096c367839114be4329438e174c08f608d4c..0b32958a21ea434d6412e3ee9630b5c626be1578 100644
--- a/src/MNH/pressurez.f90
+++ b/src/MNH/pressurez.f90
@@ -1,4 +1,4 @@
-!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 1994-2020 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
 !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
@@ -569,10 +569,10 @@ END IF
 CALL MPPDB_CHECK3DM("before MXM PRESSUREZ :PRU/V/WS",PRECISION,PRUS,PRVS,PRWS)
 IF(CEQNSYS=='MAE' .OR. CEQNSYS=='DUR') THEN
   PRUS = PRUS - MXM(PRHODJ * XCPD * ZTHETAV) * ZDV_SOURCE
-  PRWS = PRWS - MZM(1,IKU,1,PRHODJ * XCPD * ZTHETAV) * GZ_M_W(1,IKU,1,ZPHIT,PDZZ)
+  PRWS = PRWS - MZM(PRHODJ * XCPD * ZTHETAV) * GZ_M_W(1,IKU,1,ZPHIT,PDZZ)
 ELSEIF(CEQNSYS=='LHE') THEN
   PRUS = PRUS - MXM(PRHODJ) * ZDV_SOURCE
-  PRWS = PRWS - MZM(1,IKU,1,PRHODJ) * GZ_M_W(1,IKU,1,ZPHIT,PDZZ)
+  PRWS = PRWS - MZM(PRHODJ) * GZ_M_W(1,IKU,1,ZPHIT,PDZZ)
 END IF
 !
 IF(.NOT. L2D) THEN
diff --git a/src/MNH/qlap.f90 b/src/MNH/qlap.f90
index 75f8c728fd2b2ac86cdd9ae57f907c2bf1752207..d4da491d97bc6c716267088375a88a11fbeac7cc 100644
--- a/src/MNH/qlap.f90
+++ b/src/MNH/qlap.f90
@@ -1,4 +1,4 @@
-!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 1994-2020 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
 !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
@@ -236,13 +236,13 @@ IF ( CEQNSYS == 'DUR' .OR. CEQNSYS == 'MAE' ) THEN
   IF(.NOT. L2D) THEN 
     ZV = MYM(PRHODJ * XCPD * PTHETAV) *  ZV
   END IF
-  ZW = MZM(1,IKU,1,PRHODJ * XCPD * PTHETAV) *  GZ_M_W(1,IKU,1,PY,PDZZ)
+  ZW = MZM(PRHODJ * XCPD * PTHETAV) *  GZ_M_W(1,IKU,1,PY,PDZZ)
 ELSEIF ( CEQNSYS == 'LHE' ) THEN 
   ZU = MXM(PRHODJ) * ZU
   IF(.NOT. L2D) THEN 
     ZV = MYM(PRHODJ) * ZV
   ENDIF
-  ZW = MZM(1,IKU,1,PRHODJ) * GZ_M_W(1,IKU,1,PY,PDZZ)
+  ZW = MZM(PRHODJ) * GZ_M_W(1,IKU,1,PY,PDZZ)
 END IF
 !
 !-------------------------------------------------------------------------------
diff --git a/src/MNH/rel_forcingn.f90 b/src/MNH/rel_forcingn.f90
index e057e1223321a3a8f3f6a1748d82da97d3a72b12..fe55e6705720942125a3dc714fa6c42545bf9360 100644
--- a/src/MNH/rel_forcingn.f90
+++ b/src/MNH/rel_forcingn.f90
@@ -1,4 +1,4 @@
-!MNH_LIC Copyright 2010-2019 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 2010-2020 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
 !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
@@ -143,11 +143,9 @@ REAL, DIMENSION(SIZE(PRTHS,1),SIZE(PRTHS,2),SIZE(PRTHS,3)) :: ZXADVTHFRC,ZXADVRV
 REAL, DIMENSION(SIZE(PRTHS,1),SIZE(PRTHS,2),SIZE(PRTHS,3)) :: ZTHREL,ZRVREL
 LOGICAL,DIMENSION(SIZE(PTHM,1),SIZE(PTHM,2),SIZE(PTHM,3)) :: GRELAX_MASK_FRC ! MAsk for relaxation
 REAL :: ZRELAX_HEIGHT_TOP,ZRELAX_HEIGHT_BOT, ZRELAX_TIME
-INTEGER :: IKU
 
 !----------------------------------------------------------------------------
 !
-IKU = SIZE(PTHM,3)
 !*        1.   PREPARATION OF FORCING
 !              ----------------------
 !
@@ -234,7 +232,7 @@ END IF
  ! Corresponds to CASE=FIXE of forcing.f90
  !
   GRELAX_MASK_FRC(:,:,:) = .TRUE.
-  WHERE ((MZF(1,IKU,1,PZZ).LT.ZRELAX_HEIGHT_BOT).OR.(MZF(1,IKU,1,PZZ).GT.ZRELAX_HEIGHT_TOP)) 
+  WHERE ((MZF(PZZ).LT.ZRELAX_HEIGHT_BOT).OR.(MZF(PZZ).GT.ZRELAX_HEIGHT_TOP))
     GRELAX_MASK_FRC = .FALSE.
   END WHERE
 !
diff --git a/src/MNH/relaxation.f90 b/src/MNH/relaxation.f90
index 13e62a4ab64a002543ff228b84df9a69e1ad9855..b9cf5c3bb1fef45d27379eb62846c1652608fc0e 100644
--- a/src/MNH/relaxation.f90
+++ b/src/MNH/relaxation.f90
@@ -1,7 +1,8 @@
-!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 1994-2020 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
-!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt  
+!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
+!-----------------------------------------------------------------
 !     ######################
       MODULE MODI_RELAXATION 
 !     ######################
@@ -442,7 +443,7 @@ IJU_ll=IJU_ll+2*JPHEXT
 !
 ZRHODJU(:,:,:) = MXM(PRHODJ)
 ZRHODJV(:,:,:) = MYM(PRHODJ)
-ZRHODJW(:,:,:) = MZM(1,IKU,1,PRHODJ)
+ZRHODJW(:,:,:) = MZM(PRHODJ)
 !
 GHORELAXR(1) = OHORELAX_RV
 GHORELAXR(2) = OHORELAX_RC
diff --git a/src/MNH/resolved_cloud.f90 b/src/MNH/resolved_cloud.f90
index 61ff8a22c69493ce87a2d68e0633a3ae6df2bf11..56dfb0cc57a6aa97c496d686bb8286fa6ccba493 100644
--- a/src/MNH/resolved_cloud.f90
+++ b/src/MNH/resolved_cloud.f90
@@ -1,4 +1,4 @@
-!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 1994-2020 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
 !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
@@ -1189,7 +1189,7 @@ CALL PRINT_MSG(NVERB_FATAL,'GEN','RESOLVED_CLOUD','C2R2//KHKO not yet implemente
     ZDZZ(:,:,IKE+1:) = 0.
 !$acc end kernels
 #ifndef MNH_OPENACC
-    ZZZ = MZF(1,IKU,1, PZZ )
+    ZZZ = MZF( PZZ )
 #else
     CALL MZF_DEVICE(1,IKU,1,PZZ,ZZZ)
 #endif
@@ -1284,7 +1284,7 @@ CALL PRINT_MSG(NVERB_FATAL,'GEN','RESOLVED_CLOUD','ICE4 not yet implemented')
       ZDZZ(:,:,JK)=PZZ(:,:,JK+1)-PZZ(:,:,JK)    
     ENDDO
 !$acc end kernels
-    ZZZ = MZF(1,IKU,1, PZZ )
+    ZZZ = MZF( PZZ )
     IF(LRED .AND. LADJ_BEFORE) THEN
             CALL ICE_ADJUST (1,IKU,1, KRR, CFRAC_ICE_ADJUST, 'ADJU',                 &
                       OSUBG_COND, OSIGMAS, PTSTEP,PSIGQSAT,                    &
@@ -1375,7 +1375,7 @@ CALL PRINT_MSG(NVERB_FATAL,'GEN','RESOLVED_CLOUD','LIMA not yet implemented')
     DO JK=IKB,IKE
       ZDZZ(:,:,JK)=PZZ(:,:,JK+1)-PZZ(:,:,JK)    
     ENDDO
-    ZZZ = MZF(1,IKU,1, PZZ )
+    ZZZ = MZF( PZZ )
      IF (LPTSPLIT) THEN
         CALL LIMA (1, IKU, 1,                                              &
                    PTSTEP, TPFILE, OCLOSE_OUT,                             &
diff --git a/src/MNH/resolved_elecn.f90 b/src/MNH/resolved_elecn.f90
index 71ceb8c62dcef75d0bafe62c656747b82f5d598b..6d82e6e5b8cb6c9a045fecf2d36c553f8cacbc63 100644
--- a/src/MNH/resolved_elecn.f90
+++ b/src/MNH/resolved_elecn.f90
@@ -1,4 +1,4 @@
-!MNH_LIC Copyright 2009-2019 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 2009-2020 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
 !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
@@ -299,7 +299,6 @@ INTEGER :: IJB           !
 INTEGER :: IJE           !
 INTEGER :: IKB           !
 INTEGER :: IKE           !
-INTEGER :: IKU
 INTEGER :: IINFO_ll      ! return code of parallel routine
 INTEGER :: IPROC         ! my proc number
 INTEGER :: IERR          ! error status
@@ -371,7 +370,6 @@ END IF
 CALL GET_INDICE_ll (IIB,IJB,IIE,IJE)
 IKB = 1 + JPVEXT
 IKE = SIZE(PZZ,3) - JPVEXT
-IKU = SIZE(PZZ,3)
 !
 !
 !------------------------------------------------------------------------------
@@ -703,7 +701,7 @@ SELECT CASE (HCLOUD)
 !
 !*       5.2    Perform the saturation adjustment over cloud ice and cloud water
 !
-    ZZZ = MZF(1,IKU,1, PZZ )
+    ZZZ = MZF( PZZ )
     CALL ICE_ADJUST_ELEC (KRR, KMI, HRAD, HTURBDIM,                           &
                           HSCONV, HMF_CLOUD,                                  &
                           OSUBG_COND, OSIGMAS, PTSTEP,PSIGQSAT,               &
@@ -767,7 +765,7 @@ SELECT CASE (HCLOUD)
 !
 !*       6.2    Perform the saturation adjustment over cloud ice and cloud water
 !
-    ZZZ = MZF(1,IKU,1, PZZ )
+    ZZZ = MZF( PZZ )
     CALL ICE_ADJUST_ELEC (KRR, KMI, HRAD,                                     &
                           HTURBDIM, HSCONV, HMF_CLOUD,                        &
                           OSUBG_COND, OSIGMAS, PTSTEP,PSIGQSAT,               &
diff --git a/src/MNH/rmc01.f90 b/src/MNH/rmc01.f90
index 3098d25126fa97fec87ad3f6f12c244e2ee82587..7b98c37d5a20de8cf23a5e0caa57ec7f636dde04 100644
--- a/src/MNH/rmc01.f90
+++ b/src/MNH/rmc01.f90
@@ -1,4 +1,4 @@
-!MNH_LIC Copyright 2002-2019 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 2002-2020 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
 !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
@@ -165,7 +165,7 @@ IKT=SIZE(PZZ,3)
 IKTE=IKT-JPVEXT_TURB
 !
 ! altitude of mass points
-ZZZ=MZF(KKA,KKU,KKL,PZZ)
+ZZZ=MZF(PZZ)
 ! replace by height of mass points
 DO JK=1,IKT
   ZZZ(:,:,JK) = ZZZ(:,:,JK) - PZZ(:,:,IKB)
diff --git a/src/MNH/set_bogus_vortex.f90 b/src/MNH/set_bogus_vortex.f90
index 5f22d60d909fb9459dacea44fab9f59f7a3cce78..b0a881e2813a891df91d13fe47a67a55ccd977c3 100644
--- a/src/MNH/set_bogus_vortex.f90
+++ b/src/MNH/set_bogus_vortex.f90
@@ -1,4 +1,4 @@
-!MNH_LIC Copyright 2001-2019 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 2001-2020 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
 !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
@@ -236,7 +236,7 @@ ZRADBOGMAX=ZRADBOGMAX*1000.  ! conversion from km to m
 !
 ALLOCATE(ZZHAT3D(1,1,IKU),ZZHATM(1,1,IKU)) ! to compute altitude of mass points
 ZZHAT3D(1,1,:) = XZHAT(:)
-ZZHATM = MZF(1,IKU,1,ZZHAT3D)
+ZZHATM = MZF(ZZHAT3D)
 DEALLOCATE(ZZHAT3D)
 !
 ! Definition de l angle de convergence
diff --git a/src/MNH/set_cstn.f90 b/src/MNH/set_cstn.f90
index 3ec1a28b54b6a2220d145c4a2a10c67672baa5b1..986526c82b5fd2812e3c20c9d54300592149a19e 100644
--- a/src/MNH/set_cstn.f90
+++ b/src/MNH/set_cstn.f90
@@ -1,4 +1,4 @@
-!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 1994-2020 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
 !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
@@ -312,7 +312,7 @@ ELSE
 ZZS_LS(:,:)=ZHEIGHT(1)
 ENDIF
 CALL VERT_COORD(LSLEVE,ZZS_LS,ZZS_LS,XLEN1,XLEN2,XZHAT,ZZFLUX_MX)
-ZZMASS_MX(:,:,:)=MZF(1,IKU,1,ZZFLUX_MX)
+ZZMASS_MX(:,:,:)=MZF(ZZFLUX_MX)
 ZZMASS_MX(:,:,IKU)=1.5*ZZFLUX_MX(:,:,IKU)-0.5*ZZFLUX_MX(:,:,IKU-1)
 !
 CALL MPPDB_CHECK3D(ZZMASS_MX,"SET_CSTN::ZZMASS_MX",PRECISION)
diff --git a/src/MNH/set_geosbal.f90 b/src/MNH/set_geosbal.f90
index ac57ba40c6f88f310f314a0812194805aa23f73e..28e528d8b1fbc1d269681cc40769c4f31e2ed273 100644
--- a/src/MNH/set_geosbal.f90
+++ b/src/MNH/set_geosbal.f90
@@ -1,4 +1,4 @@
-!MNH_LIC Copyright 2010-2019 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 2010-2020 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
 !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
@@ -385,11 +385,11 @@ ELSE                                 ! conformal projection
 !
   PCORIOZ(:,:,:)   = SPREAD(  2. * XOMEGA * SIN(XLAT(:,:)*ZRADSDG),3,IKU)
   ZDXX(:,:,:) = MXM(                                                        &
-             MZF(1,IKU,1,SPREAD(SPREAD( 1.+ ZD1*XZHAT(:)/XRADIUS ,1,IIU),2,IJU ))  &
+             MZF(SPREAD(SPREAD( 1.+ ZD1*XZHAT(:)/XRADIUS ,1,IIU),2,IJU ))  &
                     * SPREAD( SPREAD(XDXHAT(1:IIU),2,IJU) /XMAP(:,:),3,IKU)   )
                                                    ! dxx (without orography)
   ZDYY(:,:,:) = MYM(                                                        &
-              MZF(1,IKU,1,SPREAD(SPREAD( 1.+ ZD1*XZHAT(:)/XRADIUS,1,IIU),2,IJU ))  &
+              MZF(SPREAD(SPREAD( 1.+ ZD1*XZHAT(:)/XRADIUS,1,IIU),2,IJU ))  &
                     * SPREAD( SPREAD(XDYHAT(1:IJU),1,IIU) /XMAP(:,:),3,IKU)   )
                                                    ! dyy (without orography)
 END IF
@@ -648,7 +648,7 @@ ZTHV3D(:,:,:) = SPREAD(SPREAD(PTHVM(:),1,IIU),2,IJU)  ! initialize  with
 !*       4.     INTERPOLATE THETAV, MR ON MODEL GRID (WITH OROGRAPHY)
 !               ------------------------------------------------------------
 !
-ZZM(:,:,:)   = MZF(1,IKU,1,XZZ)                       ! compute height at mass level
+ZZM(:,:,:)   = MZF(XZZ)                       ! compute height at mass level
                                               ! of grid with orography
 !
 ZZM(:,:,IKU) = 2. * XZZ(:,:,IKU) - ZZM(:,:,IKU-1) ! extrapolate on IKU mass level
diff --git a/src/MNH/set_mass.f90 b/src/MNH/set_mass.f90
index acb2014ea5e5a4223d218ed518acf2f24c58017f..a7b266aaa997e476fbc3fa3d32a820b47f56efbe 100644
--- a/src/MNH/set_mass.f90
+++ b/src/MNH/set_mass.f90
@@ -1,4 +1,4 @@
-!MNH_LIC Copyright 2010-2019 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 2010-2020 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
 !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
@@ -331,8 +331,8 @@ ELSE                                 ! conformal projection
     ZDXX(JI,JJ,JK) = ( 1.+ ZD1*XZHAT(JK)/XRADIUS ) * ( XDXHAT(JI) /XMAP(JI,JJ) ) ! XDXHAT(JI)
     ZDYY(JI,JJ,JK) = ( 1.+ ZD1*XZHAT(JK)/XRADIUS ) * ( XDYHAT(JJ) /XMAP(JI,JJ) ) ! XDYHAT(JJ)
   ENDDO ; ENDDO ; ENDDO ;
-  ZDXX  = MXM(MZF(1,IKU,1,ZDXX))
-  ZDYY  = MYM(MZF(1,IKU,1,ZDYY))
+  ZDXX  = MXM(MZF(ZDXX))
+  ZDYY  = MYM(MZF(ZDYY))
 END IF
 !
 SELECT CASE(HFUNU)
@@ -482,8 +482,8 @@ CALL CLEANLIST_ll(TZFIELDS_ll)
 !
 ! Interpolation of the wind      
 !
-  ZRHODU_MX=MZF(1,IKU,1,ZUW3D_FL)*ZRHOD_MX
-  ZRHODV_MX=MZF(1,IKU,1,ZVW3D_FL)*ZRHOD_MX
+  ZRHODU_MX=MZF(ZUW3D_FL)*ZRHOD_MX
+  ZRHODV_MX=MZF(ZVW3D_FL)*ZRHOD_MX
   CALL MPPDB_CHECK3DM("SET_MASS:ZRHODU_MX,ZRHODV_MX,PZFLUX_MX,PZMASS_MX",PRECISION,&
                    &  ZRHODU_MX,ZRHODV_MX,PZFLUX_MX,PZMASS_MX  )
   CALL VER_INT_DYN(OSHIFT,ZRHODU_MX,ZRHODV_MX,PZFLUX_MX,PZMASS_MX,PZS_MX,ZRHODUA,ZRHODVA)
diff --git a/src/MNH/set_refz.f90 b/src/MNH/set_refz.f90
index b8b10b3b75dc9c4f4f69bc0c632c59ebcd3aba6d..f6e82cd85f4e20a2e30627462ed593af03d6d0b8 100644
--- a/src/MNH/set_refz.f90
+++ b/src/MNH/set_refz.f90
@@ -1,4 +1,4 @@
-!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 1994-2020 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
 !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
@@ -174,7 +174,7 @@ IKE=IKU-JPVEXT
 !*       2.    ALTITUDE OF THE MASS POINTS
 !              ---------------------------
 !
-ZZMASS(:,:,:)=MZF(1,IKU,1,XZZ(:,:,:))
+ZZMASS(:,:,:)=MZF(XZZ(:,:,:))
 ZZMASS(:,:,IKU)=1.5*XZZ(:,:,IKU)-0.5*XZZ(:,:,IKU-1)
 !
 !20131024 check zzmass and pthv
diff --git a/src/MNH/set_rsou.f90 b/src/MNH/set_rsou.f90
index 5a787a31bd6be1946fb9b1c7bdf5770622c16812..353c6298bd02baa8db936c4df60565fc4235c013 100644
--- a/src/MNH/set_rsou.f90
+++ b/src/MNH/set_rsou.f90
@@ -1,4 +1,4 @@
-!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 1994-2020 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
 !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
@@ -1117,7 +1117,7 @@ ELSE
   ENDIF
 ENDIF
 CALL VERT_COORD(LSLEVE,ZZS_LS,ZZS_LS,XLEN1,XLEN2,XZHAT,ZZFLUX_MX)
-ZZMASS_MX(:,:,:)=MZF(1,IKU,1,ZZFLUX_MX)
+ZZMASS_MX(:,:,:)=MZF(ZZFLUX_MX)
 ZZMASS_MX(:,:,IKU)=1.5*ZZFLUX_MX(:,:,IKU)-0.5*ZZFLUX_MX(:,:,IKU-1)
 !
 !*        3.2  Interpolate and extrapolate U and V on w- mixed grid levels
diff --git a/src/MNH/shallow_mf_pack.f90 b/src/MNH/shallow_mf_pack.f90
index 5e76f58c51e5632ec4c68795e8c7457b3d025a16..96fff37723b263791445e5d0e5e4891ef17e89c9 100644
--- a/src/MNH/shallow_mf_pack.f90
+++ b/src/MNH/shallow_mf_pack.f90
@@ -1,4 +1,4 @@
-!MNH_LIC Copyright 2010-2019 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 2010-2020 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
 !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
@@ -282,7 +282,7 @@ ZSVM(:,:,:) = 0.
 ! wind on mass points
 ZUMM=MXF(PUM)
 ZVMM=MYF(PVM)
-ZWMM=MZF(1,IKU,1,PWM)
+ZWMM=MZF(PWM)
 !
 !!! 2. Pack input variables
 !
diff --git a/src/MNH/shuman.f90 b/src/MNH/shuman.f90
index 5b76c5c0a81db3c491c872f69923c7d9e16ebade..12a702243b05f5836dc87624e05ea1bfc77d8ec6 100644
--- a/src/MNH/shuman.f90
+++ b/src/MNH/shuman.f90
@@ -33,19 +33,14 @@ REAL, DIMENSION(:,:,:), INTENT(IN)                :: PA     ! variable at mass l
 REAL, DIMENSION(SIZE(PA,1),SIZE(PA,2),SIZE(PA,3)) :: PDYM   ! result at flux side
 END FUNCTION DYM
 !
-FUNCTION DZF(KKA,KKU,KL,PA)  RESULT(PDZF)
-INTEGER,                INTENT(IN)                :: KKA, KKU ! near ground and uppest atmosphere array indexes
-INTEGER,                INTENT(IN)                :: KL     ! +1 if grid goes from ground to atmosphere top, -1 otherwise
+FUNCTION DZF(PA)  RESULT(PDZF)
 REAL, DIMENSION(:,:,:), INTENT(IN)                :: PA     ! variable at flux side
-REAL, DIMENSION(SIZE(PA,1),SIZE(PA,2),SIZE(PA,3)) :: PDZF   ! result at mass
-                                                            ! localization 
+REAL, DIMENSION(SIZE(PA,1),SIZE(PA,2),SIZE(PA,3)) :: PDZF   ! result at mass localization
 END FUNCTION DZF
 !
-FUNCTION DZM(KKA,KKU,KL,PA)  RESULT(PDZM)
-INTEGER,                INTENT(IN)                :: KKA, KKU ! near ground and uppest atmosphere array indexes
-INTEGER,                INTENT(IN)                :: KL       ! +1 if grid goes from ground to atmosphere top, -1 otherwise
-REAL, DIMENSION(:,:,:), INTENT(IN)                :: PA       ! variable at mass localization
-REAL, DIMENSION(SIZE(PA,1),SIZE(PA,2),SIZE(PA,3)) :: PDZM     ! result at flux side
+FUNCTION DZM(PA)  RESULT(PDZM)
+REAL, DIMENSION(:,:,:), INTENT(IN)                :: PA     ! variable at mass localization
+REAL, DIMENSION(SIZE(PA,1),SIZE(PA,2),SIZE(PA,3)) :: PDZM   ! result at flux side
 END FUNCTION DZM
 !
 FUNCTION MXF(PA)  RESULT(PMXF)
@@ -68,18 +63,14 @@ REAL, DIMENSION(:,:,:), INTENT(IN)                :: PA     ! variable at mass l
 REAL, DIMENSION(SIZE(PA,1),SIZE(PA,2),SIZE(PA,3)) :: PMYM   ! result at flux localization 
 END  FUNCTION MYM
 !
-FUNCTION MZF(KKA,KKU,KL,PA)  RESULT(PMZF)
-INTEGER,                INTENT(IN)                :: KKA, KKU ! near ground and uppest atmosphere array indexes
-INTEGER,                INTENT(IN)                :: KL       ! +1 if grid goes from ground to atmosphere top, -1 otherwise
-REAL, DIMENSION(:,:,:), INTENT(IN)                :: PA       ! variable at flux side
-REAL, DIMENSION(SIZE(PA,1),SIZE(PA,2),SIZE(PA,3)) :: PMZF     ! result at mass localization 
+FUNCTION MZF(PA)  RESULT(PMZF)
+REAL, DIMENSION(:,:,:), INTENT(IN)                :: PA     ! variable at flux side
+REAL, DIMENSION(SIZE(PA,1),SIZE(PA,2),SIZE(PA,3)) :: PMZF   ! result at mass localization
 END FUNCTION MZF
 !
-FUNCTION MZM(KKA,KKU,KL,PA)  RESULT(PMZM)
-INTEGER,                INTENT(IN)                :: KKA, KKU ! near ground and uppest atmosphere array indexes
-INTEGER,                INTENT(IN)                :: KL       ! +1 if grid goes from ground to atmosphere top, -1 otherwise
-REAL, DIMENSION(:,:,:), INTENT(IN)                :: PA       ! variable at mass localization
-REAL, DIMENSION(SIZE(PA,1),SIZE(PA,2),SIZE(PA,3)) :: PMZM     ! result at flux localization 
+FUNCTION MZM(PA)  RESULT(PMZM)
+REAL, DIMENSION(:,:,:), INTENT(IN)                :: PA     ! variable at mass localization
+REAL, DIMENSION(SIZE(PA,1),SIZE(PA,2),SIZE(PA,3)) :: PMZM   ! result at flux localization 
 END FUNCTION MZM
 !
 END INTERFACE
@@ -542,7 +533,7 @@ END DO
 END FUNCTION MYM
 !
 !     ###############################
-      FUNCTION MZF(KKA,KKU,KL,PA)  RESULT(PMZF)
+      FUNCTION MZF(PA)  RESULT(PMZF)
 !     ###############################
 !
 !!****  *MZF* -  Shuman operator : mean operator in z direction for a 
@@ -592,10 +583,8 @@ IMPLICIT NONE
 !*       0.1   Declarations of argument and result
 !              ------------------------------------
 !
-INTEGER,                INTENT(IN)                :: KKA, KKU ! near ground and uppest atmosphere array indexes
-INTEGER,                INTENT(IN)                :: KL       ! +1 if grid goes from ground to atmosphere top, -1 otherwise
-REAL, DIMENSION(:,:,:), INTENT(IN)                :: PA       ! variable at flux side
-REAL, DIMENSION(SIZE(PA,1),SIZE(PA,2),SIZE(PA,3)) :: PMZF     ! result at mass localization 
+REAL, DIMENSION(:,:,:), INTENT(IN)                :: PA     ! variable at flux side
+REAL, DIMENSION(SIZE(PA,1),SIZE(PA,2),SIZE(PA,3)) :: PMZF   ! result at mass localization
 !
 !*       0.2   Declarations of local variables
 !              -------------------------------
@@ -644,7 +633,7 @@ END DO
 END FUNCTION MZF
 !
 !     ###############################
-      FUNCTION MZM(KKA,KKU,KL,PA)  RESULT(PMZM)
+      FUNCTION MZM(PA)  RESULT(PMZM)
 !     ###############################
 !
 !!****  *MZM* -  Shuman operator : mean operator in z direction for a 
@@ -694,10 +683,8 @@ IMPLICIT NONE
 !*       0.1   Declarations of argument and result
 !              ------------------------------------
 !
-INTEGER,                INTENT(IN)                :: KKA, KKU ! near ground and uppest atmosphere array indexes
-INTEGER,                INTENT(IN)                :: KL       ! +1 if grid goes from ground to atmosphere top, -1 otherwise
-REAL, DIMENSION(:,:,:), INTENT(IN)                :: PA       ! variable at mass localization
-REAL, DIMENSION(SIZE(PA,1),SIZE(PA,2),SIZE(PA,3)) :: PMZM     ! result at flux localization 
+REAL, DIMENSION(:,:,:), INTENT(IN)                :: PA     ! variable at mass localization
+REAL, DIMENSION(SIZE(PA,1),SIZE(PA,2),SIZE(PA,3)) :: PMZM   ! result at flux localization 
 !
 !*       0.2   Declarations of local variables
 !              -------------------------------
@@ -1209,7 +1196,7 @@ END DO
 END FUNCTION DYM
 !
 !     ###############################
-      FUNCTION DZF(KKA,KKU,KL,PA)  RESULT(PDZF)
+      FUNCTION DZF(PA)  RESULT(PDZF)
 !     ###############################
 !
 !!****  *DZF* -  Shuman operator : finite difference operator in z direction
@@ -1259,10 +1246,8 @@ IMPLICIT NONE
 !*       0.1   Declarations of argument and result
 !              ------------------------------------
 !
-INTEGER,                INTENT(IN)                :: KKA, KKU ! near ground and uppest atmosphere array indexes
-INTEGER,                INTENT(IN)                :: KL       ! +1 if grid goes from ground to atmosphere top, -1 otherwise
-REAL, DIMENSION(:,:,:), INTENT(IN)                :: PA       ! variable at flux side
-REAL, DIMENSION(SIZE(PA,1),SIZE(PA,2),SIZE(PA,3)) :: PDZF     ! result at mass localization 
+REAL, DIMENSION(:,:,:), INTENT(IN)                :: PA     ! variable at flux side
+REAL, DIMENSION(SIZE(PA,1),SIZE(PA,2),SIZE(PA,3)) :: PDZF   ! result at mass localization
 !
 !*       0.2   Declarations of local variables
 !              -------------------------------
@@ -1316,7 +1301,7 @@ END DO
 END FUNCTION DZF
 !
 !     ###############################
-      FUNCTION DZM(KKA,KKU,KL,PA)  RESULT(PDZM)
+      FUNCTION DZM(PA)  RESULT(PDZM)
 !     ###############################
 !
 !!****  *DZM* -  Shuman operator : finite difference operator in z direction
@@ -1366,10 +1351,8 @@ IMPLICIT NONE
 !*       0.1   Declarations of argument and result
 !              ------------------------------------
 !
-INTEGER,                INTENT(IN)                :: KKA, KKU ! near ground and uppest atmosphere array indexes
-INTEGER,                INTENT(IN)                :: KL       ! +1 if grid goes from ground to atmosphere top, -1 otherwise
-REAL, DIMENSION(:,:,:), INTENT(IN)                :: PA       ! variable at mass localization
-REAL, DIMENSION(SIZE(PA,1),SIZE(PA,2),SIZE(PA,3)) :: PDZM     ! result at flux side
+REAL, DIMENSION(:,:,:), INTENT(IN)                :: PA     ! variable at mass localization
+REAL, DIMENSION(SIZE(PA,1),SIZE(PA,2),SIZE(PA,3)) :: PDZM   ! result at flux side
 !
 !*       0.2   Declarations of local variables
 !              -------------------------------
diff --git a/src/MNH/spawn_lsn.f90 b/src/MNH/spawn_lsn.f90
index 36a0341493c70d13ef181fe81596a5b7fb16b84a..4bf20369035d6bdc56badc2ee0b2339529ab943b 100644
--- a/src/MNH/spawn_lsn.f90
+++ b/src/MNH/spawn_lsn.f90
@@ -1,4 +1,4 @@
-!MNH_LIC Copyright 1997-2019 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 1997-2020 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
 !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
@@ -378,9 +378,9 @@ END IF
 IF ( GVERT_INTERP ) THEN
   IKU = SIZE(PZZ,3)
   !
-  ZZLS2=MZF(1,IKU,1,ZZLS1)
+  ZZLS2=MZF(ZZLS1)
   ZZLS2(:,:,IKU)=2.*ZZLS2(:,:,IKU-1)-ZZLS2(:,:,IKU-2)
-  ZZSS=MZF(1,IKU,1,PZZ)
+  ZZSS=MZF(PZZ)
   ZZSS(:,:,IKU)=2.*ZZSS(:,:,IKU-1)-ZZSS(:,:,IKU-2)
   !
   CALL COEF_VER_INTERP_LIN(ZZLS2,ZZSS,IKLIN,ZCOEFLIN)
@@ -455,7 +455,7 @@ IF ( GVERT_INTERP ) THEN
   !
   ZZLS1=MYM(ZZLS2)
   ZZLS1(:,1,:)=2.*ZZLS1(:,2,:)-ZZLS1(:,3,:)
-  ZZSS=MZF(1,IKU,1,PZZ)
+  ZZSS=MZF(PZZ)
   ZZSS(:,:,IKU)=2.*ZZSS(:,:,IKU-1)-ZZSS(:,:,IKU-2)
   ZZSS=MYM(ZZSS)
   ZZSS(:,1,:)=2.*ZZSS(:,2,:)-ZZSS(:,3,:)
diff --git a/src/MNH/spawn_pressure2.f90 b/src/MNH/spawn_pressure2.f90
index 0a55faaef3b11cd76e9f289ad02fd6a32e772000..0b763ec655d07bf049999250ef06abbc38b1faf4 100644
--- a/src/MNH/spawn_pressure2.f90
+++ b/src/MNH/spawn_pressure2.f90
@@ -1,4 +1,4 @@
-!MNH_LIC Copyright 1997-2018 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 1997-2020 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
 !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
@@ -339,9 +339,9 @@ IKE=IKU-JPVEXT
 !
   ALLOCATE(ZGRIDA(IIU,IJU,IKU))
   ALLOCATE(ZGRIDB(IIU,IJU,IKU))
-  ZGRIDA(:,:,:)=MZF(1,IKU,1,PZZ_LS(:,:,:))
+  ZGRIDA(:,:,:)=MZF(PZZ_LS(:,:,:))
   ZGRIDA(:,:,IKU)=2.*ZGRIDA(:,:,IKU-1)-ZGRIDA(:,:,IKU-2)
-  ZGRIDB(:,:,:)=MZF(1,IKU,1,PZZ(:,:,:))
+  ZGRIDB(:,:,:)=MZF(PZZ(:,:,:))
   ZGRIDB(:,:,IKU)=2.*ZGRIDB(:,:,IKU-1)-ZGRIDB(:,:,IKU-2)
   CALL COEF_VER_INTERP_LIN(ZGRIDA(:,:,:),ZGRIDB(:,:,:))
 !
diff --git a/src/MNH/tke_eps_sources.f90 b/src/MNH/tke_eps_sources.f90
index 80ee897c4f5f6d35c5816ecd04f67f95537ac03a..55d7384c22eb1be568812290d9e9e59a414519b7 100644
--- a/src/MNH/tke_eps_sources.f90
+++ b/src/MNH/tke_eps_sources.f90
@@ -1,4 +1,4 @@
-!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 1994-2020 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
 !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
@@ -379,9 +379,9 @@ ZSOURCE(:,:,:) = PRTKES(:,:,:) / PRHODJ(:,:,:)  +  PRTKESM(:,:,:) / PRHODJ(:,:,:
 #ifndef MNH_OPENACC
 ZA(:,:,:)     = - PTSTEP * XCET * &
 #ifndef MNH_BITREP
-                MZM(KKA,KKU,KKL,ZKEFF) * MZM(KKA,KKU,KKL,PRHODJ) / PDZZ(:,:,:)**2
+                MZM(ZKEFF) * MZM(PRHODJ) / PDZZ(:,:,:)**2
 #else
-                MZM(KKA,KKU,KKL,ZKEFF) * MZM(KKA,KKU,KKL,PRHODJ) / BR_P2(PDZZ(:,:,:))
+                MZM(ZKEFF) * MZM(PRHODJ) / BR_P2(PDZZ(:,:,:))
 #endif
 #else
 CALL MZM_DEVICE(ZKEFF, ZTMP1_DEVICE) !Warning: re-used later
@@ -438,8 +438,8 @@ IF ( LLES_CALL .OR.                         &
 ! Compute the cartesian vertical flux of TKE in ZFLX
 !
 #ifndef MNH_OPENACC
-  ZFLX(:,:,:)   = - XCET * MZM(KKA,KKU,KKL,ZKEFF) *   &
-                  DZM(KKA,KKU,KKL,PIMPL * ZRES + PEXPL * PTKEM ) / PDZZ(:,:,:)
+  ZFLX(:,:,:)   = - XCET * MZM(ZKEFF) *   &
+                  DZM(PIMPL * ZRES + PEXPL * PTKEM ) / PDZZ(:,:,:)
 #else
 !$acc kernels
   ZTMP3_DEVICE(:,:,:) = PIMPL * ZRES(:,:,:) + PEXPL * PTKEM(:,:,:)
@@ -455,7 +455,7 @@ IF ( LLES_CALL .OR.                         &
 ! Compute the whole turbulent TRansport of TKE:
 !
 #ifndef MNH_OPENACC
-  PTR(:,:,:)= PTR - DZF(KKA,KKU,KKL, MZM(KKA,KKU,KKL,PRHODJ) * ZFLX / PDZZ ) /PRHODJ
+  PTR(:,:,:)= PTR - DZF( MZM(PRHODJ) * ZFLX / PDZZ ) /PRHODJ
 #else
   ZTMP1_DEVICE(:,:,:) = ZTMP2_DEVICE(:,:,:) * ZFLX(:,:,:) / PDZZ(:,:,:) !Re-use of ZTMP2_DEVICE
 !$acc end kernels
@@ -469,7 +469,7 @@ IF ( LLES_CALL .OR.                         &
 !
   IF (LLES_CALL) THEN
 #ifndef MNH_OPENACC
-    CALL LES_MEAN_SUBGRID( MZF(KKA,KKU,KKL,ZFLX), X_LES_SUBGRID_WTke )
+    CALL LES_MEAN_SUBGRID( MZF(ZFLX), X_LES_SUBGRID_WTke )
     CALL LES_MEAN_SUBGRID( -PTR, X_LES_SUBGRID_ddz_WTke )
 #else
 !$acc data copy(X_LES_SUBGRID_WTke,X_LES_SUBGRID_ddz_WTke)
diff --git a/src/MNH/tridiag_thermo.f90 b/src/MNH/tridiag_thermo.f90
index acc77444d18e3739c519071575d702bbf7342c24..ff79d84bbfa90beb40c23634c906b798af4aa4a9 100644
--- a/src/MNH/tridiag_thermo.f90
+++ b/src/MNH/tridiag_thermo.f90
@@ -1,4 +1,4 @@
-!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 2003-2020 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
 !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
@@ -234,7 +234,7 @@ IKE=KKU-JPVEXT_TURB*KKL
 
 !
 #ifndef MNH_OPENACC
-ZMZM_RHODJ = MZM(KKA,KKU,KKL,PRHODJ)
+ZMZM_RHODJ = MZM(PRHODJ)
 #else
 CALL MZM_DEVICE(PRHODJ,ZMZM_RHODJ)
 #endif
diff --git a/src/MNH/tridiag_w.f90 b/src/MNH/tridiag_w.f90
index 87da6eff113a0671986d89e68a02782adba4f152..74d7775d5a4cad97fd039d7fde96f85575ee4f0b 100644
--- a/src/MNH/tridiag_w.f90
+++ b/src/MNH/tridiag_w.f90
@@ -1,4 +1,4 @@
-!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 2011-2020 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
 !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
@@ -184,7 +184,7 @@ REAL, DIMENSION(:,:,:), allocatable :: ZY ,ZGAM ! RHS of the equation, 3D work a
 REAL, DIMENSION(:,:),   allocatable :: ZBET     ! 2D work array
 !
 INTEGER                              :: JK            ! loop counter
-INTEGER                              :: IKB,IKE,IKU   ! inner vertical limits
+INTEGER                              :: IKB,IKE       ! inner vertical limits
 !
 ! ---------------------------------------------------------------------------
 
@@ -216,10 +216,9 @@ allocate( zbet                (size( pvarm, 1 ), size( pvarm, 2 ) ) )
 !
 IKB=1+JPVEXT
 IKE=SIZE(PVARM,3)-JPVEXT 
-IKU=SIZE(PVARM,3)
 !
 #ifndef MNH_OPENACC
-ZMZM_RHODJ  = MZM(1,IKU,1,PRHODJ)
+ZMZM_RHODJ  = MZM(PRHODJ)
 #else
 CALL MZM_DEVICE(PRHODJ,ZMZM_RHODJ)
 #endif
diff --git a/src/MNH/turb.f90 b/src/MNH/turb.f90
index 1e90ee67398dbe77196a3656eed495af4c94ddb3..4f289aa1cff0174b7be009515c89aa3e8067c072 100644
--- a/src/MNH/turb.f90
+++ b/src/MNH/turb.f90
@@ -1,4 +1,4 @@
-!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 1994-2020 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
 !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
@@ -781,8 +781,8 @@ SELECT CASE (HTURBLEN)
 #ifdef MNH_OPENACC
     call Print_msg( NVERB_FATAL, 'GEN', 'TURB', 'OpenACC: HTURBLEN=RM17 not yet implemented' )
 #endif
-    ZDUDZ = MXF(MZF(1,KKU,1,GZ_U_UW(1,KKU,1,PUT,PDZZ)))
-    ZDVDZ = MYF(MZF(1,KKU,1,GZ_V_VW(1,KKU,1,PVT,PDZZ)))
+    ZDUDZ = MXF(MZF(GZ_U_UW(1,KKU,1,PUT,PDZZ)))
+    ZDVDZ = MYF(MZF(GZ_V_VW(1,KKU,1,PVT,PDZZ)))
     ZSHEAR = SQRT(ZDUDZ*ZDUDZ + ZDVDZ*ZDVDZ)
     CALL BL89(KKA,KKU,KKL,PZZ,PDZZ,PTHVREF,ZTHLM,KRR,ZRM,PTKET,ZSHEAR,PLEM)
 !
@@ -1126,7 +1126,7 @@ IF (LBUDGET_RI) CALL BUDGET (PRRS(:,:,:,4),9,'HTURB_BU_RRI')
 !  6.1 Contribution of mass-flux in the TKE buoyancy production if 
 !      cloud computation is not statistical 
 #ifndef MNH_OPENACC
-       PTHP = PTHP + XG / PTHVREF * MZF(KKA,KKU,KKL, PFLXZTHVMF )
+       PTHP = PTHP + XG / PTHVREF * MZF( PFLXZTHVMF )
 #else
       CALL MZF_DEVICE(KKA,KKU,KKL,PFLXZTHVMF,ZTMP1_DEVICE)
 !$acc kernels
@@ -1328,13 +1328,13 @@ IF (LLES_CALL) THEN
     CALL LES_MEAN_SUBGRID(2./3.*PTKET,X_LES_SUBGRID_U2)
     X_LES_SUBGRID_V2 = X_LES_SUBGRID_U2
     X_LES_SUBGRID_W2 = X_LES_SUBGRID_U2
-    CALL LES_MEAN_SUBGRID(2./3.*PTKET*MZF(KKA,KKU,KKL,&
+    CALL LES_MEAN_SUBGRID(2./3.*PTKET*MZF(&
                & GZ_M_W(KKA,KKU,KKL,PTHLT,PDZZ)),X_LES_RES_ddz_Thl_SBG_W2)
     IF (KRR>=1) &
-    CALL LES_MEAN_SUBGRID(2./3.*PTKET*MZF(KKA,KKU,KKL,&
+    CALL LES_MEAN_SUBGRID(2./3.*PTKET*MZF(&
                & GZ_M_W(KKA,KKU,KKL,PRT(:,:,:,1),PDZZ)),X_LES_RES_ddz_Rt_SBG_W2)
     DO JSV=1,NSV
-      CALL LES_MEAN_SUBGRID(2./3.*PTKET*MZF(KKA,KKU,KKL,&
+      CALL LES_MEAN_SUBGRID(2./3.*PTKET*MZF(&
  & GZ_M_W(KKA,KKU,KKL,PSVT(:,:,:,JSV),PDZZ)),X_LES_RES_ddz_Sv_SBG_W2(:,:,:,JSV))
     END DO
   END IF
diff --git a/src/MNH/turb_hor.f90 b/src/MNH/turb_hor.f90
index 9d0b3b193c334ea5bbda76641385bd24cfe3b6b3..a9842851ec5a0419ba35b3dd821f97bee5064cc6 100644
--- a/src/MNH/turb_hor.f90
+++ b/src/MNH/turb_hor.f90
@@ -1,4 +1,4 @@
-!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 1994-2020 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
 !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
@@ -182,20 +182,8 @@ END MODULE MODI_TURB_HOR
 !!
 !!    EXTERNAL
 !!    --------
-!!      GX_M_U, GY_M_V
-!!      GX_M_M, GY_M_M, GZ_M_M
-!!      GY_U_UV,GX_V_UV
-!!      GX_U_M, GY_V_M, GZ_W_M
-!!      GX_W_UW,GY_W_UW
-!!                             :  Cartesian vertical gradient operators 
-!!                               
 !!
-!!      MXM,MXF,MYM,MYF,MZM,MZF
-!!                             :  Shuman functions (mean operators)     
-!!      DXM,DXF.DYM,DYF,DZM,DZF
-!!                             :  Shuman functions (difference operators)     
 !!
-!!       
 !!    IMPLICIT ARGUMENTS
 !!    ------------------
 !!      Module MODD_CST : contains physical constants
@@ -260,12 +248,6 @@ USE MODD_LES
 
 use mode_mppdb
 
-USE MODI_GRADIENT_M
-USE MODI_GRADIENT_U
-USE MODI_GRADIENT_V
-USE MODI_GRADIENT_W
-USE MODI_SHUMAN 
-!
 USE MODI_TURB_HOR_THERMO_FLUX
 USE MODI_TURB_HOR_THERMO_CORR
 USE MODI_TURB_HOR_DYN_CORR
diff --git a/src/MNH/turb_hor_dyn_corr.f90 b/src/MNH/turb_hor_dyn_corr.f90
index 69c208e48d2120622017b3af0af8b465b3f3bf62..85de90771ff5a6ae76f2c221c0266f889bf362e4 100644
--- a/src/MNH/turb_hor_dyn_corr.f90
+++ b/src/MNH/turb_hor_dyn_corr.f90
@@ -1,4 +1,4 @@
-!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 1994-2020 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
 !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
@@ -373,7 +373,7 @@ IF (.NOT. L2D) THEN
 END IF
 GZ_W_M_PWM = GZ_W_M(1,IKU,1,PWM,PDZZ)
 !
-ZMZF_DZZ = MZF(1,IKU,1,PDZZ)
+ZMZF_DZZ = MZF(PDZZ)
 #else
 CALL GX_U_M_DEVICE(1,IKU,1,PUM,PDXX,PDZZ,PDZX,GX_U_M_PUM)
 IF (.NOT. L2D) THEN
@@ -633,7 +633,7 @@ END IF
 IF (.NOT. LFLAT) THEN
   PRUS(:,:,:)=PRUS                                            &
               -DXM(PRHODJ * ZFLX / MXF(PDXX) )                &
-              +DZF(1,IKU,1, PDZX / MZM(1,IKU,1,PDXX) * MXM( MZM(1,IKU,1,PRHODJ*ZFLX) * PINV_PDZZ ) )
+              +DZF( PDZX / MZM(PDXX) * MXM( MZM(PRHODJ*ZFLX) * PINV_PDZZ ) )
 ELSE
   PRUS(:,:,:)=PRUS -DXM(PRHODJ * ZFLX / MXF(PDXX) )
 END IF
@@ -826,8 +826,8 @@ IF (.NOT. L2D) THEN
   IF (.NOT. LFLAT) THEN
     PRVS(:,:,:)=PRVS                                          &
                 -DYM(PRHODJ * ZFLX / MYF(PDYY) )              &
-                +DZF(1,IKU,1, PDZY / MZM(1,IKU,1,PDYY) *                      &
-                MYM( MZM(1,IKU,1,PRHODJ*ZFLX) * PINV_PDZZ ) )
+                +DZF( PDZY / MZM(PDYY) *                      &
+                MYM( MZM(PRHODJ*ZFLX) * PINV_PDZZ ) )
   ELSE
     PRVS(:,:,:)=PRVS -DYM(PRHODJ * ZFLX / MYF(PDYY) )
   END IF
@@ -1004,7 +1004,7 @@ END IF
 !
 ! Complete the W tendency
 !
-!PRWS(:,:,:)=PRWS(:,:,:) - DZM(1,IKU,1, PRHODJ*ZFLX/MZF(1,IKU,1,PDZZ) )
+!PRWS(:,:,:)=PRWS(:,:,:) - DZM( PRHODJ*ZFLX/MZF(PDZZ) )
 !$acc kernels async(2)
 ZDFDDWDZ(:,:,:)    = - XCMFS * PK(:,:,:) * (4./3.)
 !$acc end kernels
@@ -1019,7 +1019,7 @@ ZDFDDWDZ(:,:,:IKB) = 0.
 CALL TRIDIAG_W(PWM,ZFLX,ZDFDDWDZ,PTSTEP,ZMZF_DZZ,PRHODJ,ZWP)
 !
 #ifndef MNH_OPENACC
-PRWS = PRWS(:,:,:) + MZM(1,IKU,1,PRHODJ(:,:,:))*(ZWP(:,:,:)-PWM(:,:,:))/PTSTEP
+PRWS = PRWS(:,:,:) + MZM(PRHODJ(:,:,:))*(ZWP(:,:,:)-PWM(:,:,:))/PTSTEP
 #else
 CALL MZM_DEVICE(PRHODJ(:,:,:),ZTMP1_DEVICE)
 !$acc kernels async(1)
@@ -1065,17 +1065,17 @@ IF (LLES_CALL .AND. KSPLT==1) THEN
   CALL LES_MEAN_SUBGRID( ZFLX, X_LES_SUBGRID_W2 ) 
   CALL LES_MEAN_SUBGRID( -ZWORK, X_LES_RES_ddxa_W_SBG_UaW , .TRUE.)
   CALL LES_MEAN_SUBGRID( GZ_M_M(1,IKU,1,PTHLM,PDZZ)*ZFLX, X_LES_RES_ddxa_Thl_SBG_UaW , .TRUE.)
-  CALL LES_MEAN_SUBGRID(ZFLX*MZF(1,IKU,1,GZ_M_W(1,IKU,1,PTHLM,PDZZ)),X_LES_RES_ddz_Thl_SBG_W2)
+  CALL LES_MEAN_SUBGRID(ZFLX*MZF(GZ_M_W(1,IKU,1,PTHLM,PDZZ)),X_LES_RES_ddz_Thl_SBG_W2)
   IF (KRR>=1) THEN
     CALL LES_MEAN_SUBGRID( GZ_M_M(1,IKU,1,PRM(:,:,:,1),PDZZ)*ZFLX, &
                            X_LES_RES_ddxa_Rt_SBG_UaW , .TRUE.)
-    CALL LES_MEAN_SUBGRID(ZFLX*MZF(1,IKU,1,GZ_M_W(1,IKU,1,PRM(:,:,:,1),PDZZ)), &
+    CALL LES_MEAN_SUBGRID(ZFLX*MZF(GZ_M_W(1,IKU,1,PRM(:,:,:,1),PDZZ)), &
                            X_LES_RES_ddz_Rt_SBG_W2)
   END IF
   DO JSV=1,NSV
     CALL LES_MEAN_SUBGRID( GZ_M_M(1,IKU,1,PSVM(:,:,:,JSV),PDZZ)*ZFLX, &
                            X_LES_RES_ddxa_Sv_SBG_UaW(:,:,:,JSV) , .TRUE.)
-    CALL LES_MEAN_SUBGRID(ZFLX*MZF(1,IKU,1,GZ_M_W(1,IKU,1,PSVM(:,:,:,JSV),PDZZ)), &
+    CALL LES_MEAN_SUBGRID(ZFLX*MZF(GZ_M_W(1,IKU,1,PSVM(:,:,:,JSV),PDZZ)), &
                            X_LES_RES_ddz_Sv_SBG_W2(:,:,:,JSV))
   END DO
 #else
diff --git a/src/MNH/turb_hor_splt.f90 b/src/MNH/turb_hor_splt.f90
index 2b5d5d470bc66ae3508820c197ecb4e796e92e52..452aeddec086feff3c20ca4d96ea7570fc031c8f 100644
--- a/src/MNH/turb_hor_splt.f90
+++ b/src/MNH/turb_hor_splt.f90
@@ -1,4 +1,4 @@
-!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 1994-2020 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
 !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
@@ -356,7 +356,7 @@ REAL,ALLOCATABLE,DIMENSION(:,:,:) :: ZMZM_PRHODJ  ! MZM(PRHODJ)
 !
 INTEGER :: JSPLT ! current split
 !
-INTEGER :: IKB, IKE, IIB, IIE, IJB, IJE, IKU
+INTEGER :: IKB, IKE, IIB, IIE, IJB, IJE
 INTEGER :: JRR, JSV
 !
 INTEGER :: ISV
@@ -442,7 +442,6 @@ end if
 !
 IKB = 1.+JPVEXT
 IKE = SIZE(PUM,3) - JPVEXT
-IKU = SIZE(PUM,3)
 CALL GET_INDICE_ll (IIB,IJB,IIE,IJE)
 ISV=SIZE(PSVM,4)
 !
@@ -467,7 +466,7 @@ ZINV_PDZZ = 1./PDZZ
 ZK(:,:,:)         = PLM(:,:,:) * SQRT(PTKEM(:,:,:))
 !$acc end kernels
 #ifndef MNH_OPENACC
-ZMZM_PRHODJ = MZM(1,IKU,1,PRHODJ)
+ZMZM_PRHODJ = MZM(PRHODJ)
 #else
 CALL MZM_DEVICE(PRHODJ,ZMZM_PRHODJ)
 #endif
diff --git a/src/MNH/turb_hor_sv_corr.f90 b/src/MNH/turb_hor_sv_corr.f90
index 0523d00b0e35e6a0f4c0d86d377771cf961097c6..e675c8643743a5603bc688cfcc0ee509d385d188 100644
--- a/src/MNH/turb_hor_sv_corr.f90
+++ b/src/MNH/turb_hor_sv_corr.f90
@@ -1,4 +1,4 @@
-!MNH_LIC Copyright 2002-2019 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 2002-2020 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
 !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
@@ -221,7 +221,7 @@ DO JSV=1,NSV
     END IF
     CALL LES_MEAN_SUBGRID( -2.*ZCSVD*SQRT(PTKEM)*ZFLX/PLEPS, &
                            X_LES_SUBGRID_DISS_Sv2(:,:,:,JSV), .TRUE. )
-    CALL LES_MEAN_SUBGRID( MZF(1,IKU,1,PWM)*ZFLX, X_LES_RES_W_SBG_Sv2(:,:,:,JSV), .TRUE. )
+    CALL LES_MEAN_SUBGRID( MZF(PWM)*ZFLX, X_LES_RES_W_SBG_Sv2(:,:,:,JSV), .TRUE. )
   END IF
   !
   ! covariance SvThv
diff --git a/src/MNH/turb_hor_sv_flux.f90 b/src/MNH/turb_hor_sv_flux.f90
index c4a20c624cedb64f76fb8f0a01764ee6750bdd4c..0b0239d06ba33ae2b4ce98d347d193cbdf067a01 100644
--- a/src/MNH/turb_hor_sv_flux.f90
+++ b/src/MNH/turb_hor_sv_flux.f90
@@ -1,4 +1,4 @@
-!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 1994-2020 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
 !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
@@ -361,7 +361,7 @@ DO JSV=1,ISV
     CALL SECOND_MNH(ZTIME1)
 #ifndef MNH_OPENACC
     CALL LES_MEAN_SUBGRID( MXF(ZFLXX), X_LES_SUBGRID_USv(:,:,:,JSV) ) 
-    CALL LES_MEAN_SUBGRID( MZF(1,IKU,1,MXF(GX_W_UW(1,IKU,1,PWM,PDXX,PDZZ,PDZX)*MZM(1,IKU,1,ZFLXX))), &
+    CALL LES_MEAN_SUBGRID( MZF(MXF(GX_W_UW(1,IKU,1,PWM,PDXX,PDZZ,PDZX)*MZM(ZFLXX))), &
                            X_LES_RES_ddxa_W_SBG_UaSv(:,:,:,JSV) , .TRUE. )
     CALL LES_MEAN_SUBGRID( GX_M_M(1,IKU,1,PSVM(:,:,:,JSV),PDXX,PDZZ,PDZX)*MXF(ZFLXX), &
                            X_LES_RES_ddxa_Sv_SBG_UaSv(:,:,:,JSV), .TRUE. )
@@ -480,7 +480,7 @@ DO JSV=1,ISV
     CALL SECOND_MNH(ZTIME1)
 #ifndef MNH_OPENACC
     CALL LES_MEAN_SUBGRID( MYF(ZFLXY), X_LES_SUBGRID_VSv(:,:,:,JSV) ) 
-    CALL LES_MEAN_SUBGRID( MZF(1,IKU,1,MYF(GY_W_VW(1,IKU,1,PWM,PDYY,PDZZ,PDZY)*MZM(1,IKU,1,ZFLXY))), &
+    CALL LES_MEAN_SUBGRID( MZF(MYF(GY_W_VW(1,IKU,1,PWM,PDYY,PDZZ,PDZY)*MZM(ZFLXY))), &
                            X_LES_RES_ddxa_W_SBG_UaSv(:,:,:,JSV) , .TRUE. )
     CALL LES_MEAN_SUBGRID( GY_M_M(1,IKU,1,PSVM(:,:,:,JSV),PDYY,PDZZ,PDZY)*MYF(ZFLXY), &
                            X_LES_RES_ddxa_Sv_SBG_UaSv(:,:,:,JSV) , .TRUE. )
@@ -523,8 +523,8 @@ DO JSV=1,ISV
       PRSVS(:,:,:,JSV)=   PRSVS(:,:,:,JSV)                                          &
         -DXF( MXM(PRHODJ) * ZFLXX * PINV_PDXX  )                                    &
         -DYF( MYM(PRHODJ) * ZFLXY * PINV_PDYY  )                                    &
-        +DZF( 1,IKU,1,PMZM_PRHODJ * PINV_PDZZ *                                             &
-              ( MXF( MZM(1,IKU,1,ZFLXX * PINV_PDXX) * PDZX ) + MYF( MZM(1,IKU,1,ZFLXY * PINV_PDYY) * PDZY ) ) &
+        +DZF( PMZM_PRHODJ * PINV_PDZZ *                                             &
+              ( MXF( MZM(ZFLXX * PINV_PDXX) * PDZX ) + MYF( MZM(ZFLXY * PINV_PDYY) * PDZY ) ) &
             )
     ELSE
       PRSVS(:,:,:,JSV)=   PRSVS(:,:,:,JSV)                                          &
@@ -535,8 +535,8 @@ DO JSV=1,ISV
     IF (.NOT. LFLAT) THEN
       PRSVS(:,:,:,JSV)=   PRSVS(:,:,:,JSV)                                          &
         -DXF( MXM(PRHODJ) * ZFLXX * PINV_PDXX  )                                    &
-        +DZF(1,IKU,1, PMZM_PRHODJ * PINV_PDZZ *                                             &
-              ( MXF( MZM(1,IKU,1,ZFLXX * PINV_PDXX) * PDZX ) )                              &
+        +DZF( PMZM_PRHODJ * PINV_PDZZ *                                             &
+              ( MXF( MZM(ZFLXX * PINV_PDXX) * PDZX ) )                              &
             )
     ELSE
       PRSVS(:,:,:,JSV)=   PRSVS(:,:,:,JSV)                                          &
diff --git a/src/MNH/turb_hor_thermo_corr.f90 b/src/MNH/turb_hor_thermo_corr.f90
index 19e163c6aaa7350c2c2d2dcce04e262b90024911..e3fc62853ae090d11c31333a928dd2fa4282e28d 100644
--- a/src/MNH/turb_hor_thermo_corr.f90
+++ b/src/MNH/turb_hor_thermo_corr.f90
@@ -1,4 +1,4 @@
-!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 1994-2020 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
 !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
@@ -424,7 +424,7 @@ IF ( ( KRRL > 0 .AND. OSUBG_COND) .OR. ( OTURB_FLX .AND. OCLOSE_OUT ) &
     CALL SECOND_MNH(ZTIME1)
 #ifndef MNH_OPENACC
     CALL LES_MEAN_SUBGRID( ZFLX, X_LES_SUBGRID_Thl2, .TRUE. ) 
-    CALL LES_MEAN_SUBGRID( MZF(1,IKU,1,PWM)*ZFLX(:,:,:), X_LES_RES_W_SBG_Thl2, .TRUE. )
+    CALL LES_MEAN_SUBGRID( MZF(PWM)*ZFLX(:,:,:), X_LES_RES_W_SBG_Thl2, .TRUE. )
     CALL LES_MEAN_SUBGRID( -2.*XCTD*SQRT(PTKEM(:,:,:))*ZFLX(:,:,:)/PLEPS(:,:,:) ,X_LES_SUBGRID_DISS_Thl2, .TRUE. )
     ZA(:,:,:)   =  ETHETA(KRR,KRRI,PTHLM,PRM,PLOCPEXNM,PATHETA,PSRCM)
     CALL LES_MEAN_SUBGRID( ZA(:,:,:)*ZFLX(:,:,:), X_LES_SUBGRID_ThlThv, .TRUE. )
@@ -622,7 +622,7 @@ IF ( ( KRRL > 0 .AND. OSUBG_COND) .OR. ( OTURB_FLX .AND. OCLOSE_OUT ) &
       CALL SECOND_MNH(ZTIME1)
 #ifndef MNH_OPENACC
       CALL LES_MEAN_SUBGRID( ZFLX, X_LES_SUBGRID_ThlRt, .TRUE. ) 
-      CALL LES_MEAN_SUBGRID( MZF(1,IKU,1,PWM)*ZFLX(:,:,:), X_LES_RES_W_SBG_ThlRt, .TRUE. )
+      CALL LES_MEAN_SUBGRID( MZF(PWM)*ZFLX(:,:,:), X_LES_RES_W_SBG_ThlRt, .TRUE. )
       CALL LES_MEAN_SUBGRID( -XCTD*SQRT(PTKEM(:,:,:))*ZFLX(:,:,:)/PLEPS(:,:,:) ,X_LES_SUBGRID_DISS_ThlRt, .TRUE. )
       CALL LES_MEAN_SUBGRID( ZA(:,:,:)*ZFLX(:,:,:), X_LES_SUBGRID_RtThv, .TRUE. )
       CALL LES_MEAN_SUBGRID( -XG/PTHVREF(:,:,:)/3.*ZA(:,:,:)*ZFLX(:,:,:), X_LES_SUBGRID_RtPz,.TRUE.)
@@ -798,7 +798,7 @@ IF ( ( KRRL > 0 .AND. OSUBG_COND) .OR. ( OTURB_FLX .AND. OCLOSE_OUT ) &
       CALL SECOND_MNH(ZTIME1)
 #ifndef MNH_OPENACC
       CALL LES_MEAN_SUBGRID( ZFLX, X_LES_SUBGRID_Rt2, .TRUE. ) 
-      CALL LES_MEAN_SUBGRID( MZF(1,IKU,1,PWM)*ZFLX(:,:,:), X_LES_RES_W_SBG_Rt2, .TRUE. )
+      CALL LES_MEAN_SUBGRID( MZF(PWM)*ZFLX(:,:,:), X_LES_RES_W_SBG_Rt2, .TRUE. )
       CALL LES_MEAN_SUBGRID( ZA(:,:,:)*ZFLX(:,:,:), X_LES_SUBGRID_RtThv, .TRUE. )
       CALL LES_MEAN_SUBGRID( -XG/PTHVREF(:,:,:)/3.*ZA(:,:,:)*ZFLX(:,:,:), X_LES_SUBGRID_RtPz,.TRUE.)
       CALL LES_MEAN_SUBGRID( -2.*XCTD*SQRT(PTKEM(:,:,:))*ZFLX(:,:,:)/PLEPS, X_LES_SUBGRID_DISS_Rt2, .TRUE. )
diff --git a/src/MNH/turb_hor_thermo_flux.f90 b/src/MNH/turb_hor_thermo_flux.f90
index 80f98aea6e34cd47c5826f5421dd43272d253389..f7e576222ea919089ab1640f02e79cb9015b58b8 100644
--- a/src/MNH/turb_hor_thermo_flux.f90
+++ b/src/MNH/turb_hor_thermo_flux.f90
@@ -1,4 +1,4 @@
-!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 1994-2020 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
 !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
@@ -368,7 +368,7 @@ ZFLX(:,:,IKB-1:IKB-1) = 2. * MXM(  SPREAD( PSFTHM(:,:)* PDIRCOSXW(:,:), 3,1) )
 IF (.NOT. LFLAT) THEN
   PRTHLS(:,:,:) =  PRTHLS(:,:,:)                                                   &
                 - DXF( MXM(PRHODJ) * ZFLX(:,:,:) * PINV_PDXX(:,:,:) )                          &
-                + DZF(1,IKU,1, PMZM_PRHODJ(:,:,:) *MXF(PDZX*(MZM(1,IKU,1,ZFLX(:,:,:) * PINV_PDXX(:,:,:)))) * PINV_PDZZ(:,:,:) )
+                + DZF( PMZM_PRHODJ(:,:,:) *MXF(PDZX*(MZM(ZFLX(:,:,:) * PINV_PDXX(:,:,:)))) * PINV_PDZZ(:,:,:) )
 ELSE
   PRTHLS(:,:,:) =  PRTHLS(:,:,:) - DXF( MXM(PRHODJ) * ZFLX(:,:,:) * PINV_PDXX(:,:,:) )
 END IF
@@ -412,27 +412,27 @@ END IF
 IF ( KRRL >= 1 ) THEN
   IF (.NOT. LFLAT) THEN
     ZFLXC(:,:,:) = 2.*( MXF( MXM( PRHODJ(:,:,:)*PATHETA(:,:,:)*PSRCM(:,:,:) )*ZFLX(:,:,:) )                       &
-                +MZF(1,IKU,1, MZM(1,IKU,1, PRHODJ(:,:,:)*PATHETA(:,:,:)*PSRCM(:,:,:) )*MXF(                         &
-                                               PDZX*(MZM(1,IKU,1, ZFLX(:,:,:)*PINV_PDXX(:,:,:) )) ) )&
+                +MZF( MZM( PRHODJ(:,:,:)*PATHETA(:,:,:)*PSRCM(:,:,:) )*MXF(                         &
+                                               PDZX*(MZM( ZFLX(:,:,:)*PINV_PDXX(:,:,:) )) ) )&
                )
     IF ( KRRI >= 1 ) THEN
       PRRS(:,:,:,2) = PRRS(:,:,:,2) +  2. *                                    &
         (- DXF( MXM( PRHODJ(:,:,:)*PATHETA(:,:,:)*PSRCM(:,:,:) )*ZFLX(:,:,:)*PINV_PDXX(:,:,:) )                   &
-         + DZF(1,IKU,1, MZM(1,IKU,1, PRHODJ(:,:,:)*PATHETA(:,:,:)*PSRCM(:,:,:) )* &
-           MXF( PDZX*(MZM(1,IKU,1, ZFLX(:,:,:)*PINV_PDXX(:,:,:) )) )&
+         + DZF( MZM( PRHODJ(:,:,:)*PATHETA(:,:,:)*PSRCM(:,:,:) )* &
+           MXF( PDZX*(MZM( ZFLX(:,:,:)*PINV_PDXX(:,:,:) )) )&
                                            *PINV_PDZZ(:,:,:) )                        &
         )*(1.0-PFRAC_ICE(:,:,:))
       PRRS(:,:,:,4) = PRRS(:,:,:,4) +  2. *                                    &
         (- DXF( MXM( PRHODJ(:,:,:)*PATHETA(:,:,:)*PSRCM(:,:,:) )*ZFLX(:,:,:)*PINV_PDXX(:,:,:) )                   &
-         + DZF(1,IKU,1, MZM(1,IKU,1, PRHODJ(:,:,:)*PATHETA(:,:,:)*PSRCM(:,:,:) )* &
-           MXF( PDZX*(MZM(1,IKU,1, ZFLX(:,:,:)*PINV_PDXX(:,:,:) )) )&
+         + DZF( MZM( PRHODJ(:,:,:)*PATHETA(:,:,:)*PSRCM(:,:,:) )* &
+           MXF( PDZX*(MZM( ZFLX(:,:,:)*PINV_PDXX(:,:,:) )) )&
                                            *PINV_PDZZ(:,:,:) )                        &
         )*PFRAC_ICE(:,:,:)
     ELSE
       PRRS(:,:,:,2) = PRRS(:,:,:,2) +  2. *                                    &
         (- DXF( MXM( PRHODJ(:,:,:)*PATHETA(:,:,:)*PSRCM(:,:,:) )*ZFLX(:,:,:)*PINV_PDXX(:,:,:) )                   &
-         + DZF(1,IKU,1, MZM(1,IKU,1, PRHODJ(:,:,:)*PATHETA(:,:,:)*PSRCM(:,:,:) )* &
-           MXF( PDZX*(MZM(1,IKU,1, ZFLX(:,:,:)*PINV_PDXX(:,:,:) )) )&
+         + DZF( MZM( PRHODJ(:,:,:)*PATHETA(:,:,:)*PSRCM(:,:,:) )* &
+           MXF( PDZX*(MZM( ZFLX(:,:,:)*PINV_PDXX(:,:,:) )) )&
                                            *PINV_PDZZ(:,:,:) )                        &
         )
     END IF
@@ -567,7 +567,7 @@ IF (KSPLT==1 .AND. LLES_CALL) THEN
   CALL SECOND_MNH(ZTIME1)
 #ifndef MNH_OPENACC
   CALL LES_MEAN_SUBGRID( MXF(ZFLX), X_LES_SUBGRID_UThl ) 
-  CALL LES_MEAN_SUBGRID( MZF(1,IKU,1,MXF(GX_W_UW(1,IKU,1,PWM,PDXX,PDZZ,PDZX)*MZM(1,IKU,1,ZFLX))),&
+  CALL LES_MEAN_SUBGRID( MZF(MXF(GX_W_UW(1,IKU,1,PWM,PDXX,PDZZ,PDZX)*MZM(ZFLX))),&
                          X_LES_RES_ddxa_W_SBG_UaThl , .TRUE. )
   CALL LES_MEAN_SUBGRID( GX_M_M(1,IKU,1,PTHLM,PDXX,PDZZ,PDZX)*MXF(ZFLX),&
                          X_LES_RES_ddxa_Thl_SBG_UaThl , .TRUE. )
@@ -639,7 +639,7 @@ IF (KRR/=0) THEN
   IF (.NOT. LFLAT) THEN
     PRRS(:,:,:,1) = PRRS(:,:,:,1)                                             &
                   - DXF( MXM(PRHODJ) * ZFLX(:,:,:) * PINV_PDXX(:,:,:) )                          &
-                  + DZF(1,IKU,1, PMZM_PRHODJ(:,:,:) *MXF(PDZX*(MZM(1,IKU,1,ZFLX * PINV_PDXX(:,:,:)))) * PINV_PDZZ(:,:,:) )
+                  + DZF( PMZM_PRHODJ(:,:,:) *MXF(PDZX*(MZM(ZFLX * PINV_PDXX(:,:,:)))) * PINV_PDZZ(:,:,:) )
   ELSE
     PRRS(:,:,:,1) = PRRS(:,:,:,1) - DXF( MXM(PRHODJ) * ZFLX(:,:,:) * PINV_PDXX(:,:,:) )
   END IF
@@ -650,27 +650,27 @@ IF (KRR/=0) THEN
     IF (.NOT. LFLAT) THEN
       ZFLXC(:,:,:) = ZFLXC(:,:,:)            &
             + 2.*( MXF( MXM( PRHODJ(:,:,:)*PAMOIST(:,:,:)*PSRCM(:,:,:) )*ZFLX(:,:,:) )                     &
-                  +MZF(1,IKU,1, MZM(1,IKU,1, PRHODJ(:,:,:)*PAMOIST(:,:,:)*PSRCM(:,:,:) )*MXF(                       &
-                                               PDZX(:,:,:)*(MZM(1,IKU,1, ZFLX(:,:,:)*PINV_PDXX(:,:,:) )) ) )&
+                  +MZF( MZM( PRHODJ(:,:,:)*PAMOIST(:,:,:)*PSRCM(:,:,:) )*MXF(                       &
+                                               PDZX(:,:,:)*(MZM( ZFLX(:,:,:)*PINV_PDXX(:,:,:) )) ) )&
                  )
       IF ( KRRI >= 1 ) THEN
         PRRS(:,:,:,2) = PRRS(:,:,:,2) +  2. *                                  &
         (- DXF( MXM( PRHODJ(:,:,:)*PAMOIST(:,:,:)*PSRCM(:,:,:) )*ZFLX(:,:,:)*PINV_PDXX(:,:,:) )                   &
-         + DZF(1,IKU,1, MZM(1,IKU,1, PRHODJ(:,:,:)*PAMOIST(:,:,:)*PSRCM(:,:,:) )*MXF( PDZX(:,:,:)* &
-           (MZM(1,IKU,1, ZFLX(:,:,:)*PINV_PDXX(:,:,:) )) )&
+         + DZF( MZM( PRHODJ(:,:,:)*PAMOIST(:,:,:)*PSRCM(:,:,:) )*MXF( PDZX(:,:,:)* &
+           (MZM( ZFLX(:,:,:)*PINV_PDXX(:,:,:) )) )&
                                            *PINV_PDZZ(:,:,:) )                        &
         )*(1.0-PFRAC_ICE(:,:,:))
         PRRS(:,:,:,2) = PRRS(:,:,:,2) +  2. *                                  &
         (- DXF( MXM( PRHODJ(:,:,:)*PAMOIST(:,:,:)*PSRCM(:,:,:) )*ZFLX(:,:,:)*PINV_PDXX(:,:,:) )                   &
-         + DZF(1,IKU,1, MZM(1,IKU,1, PRHODJ(:,:,:)*PAMOIST(:,:,:)*PSRCM(:,:,:) )*MXF( PDZX(:,:,:)* &
-           (MZM(1,IKU,1, ZFLX(:,:,:)*PINV_PDXX(:,:,:) )) )&
+         + DZF( MZM( PRHODJ(:,:,:)*PAMOIST(:,:,:)*PSRCM(:,:,:) )*MXF( PDZX(:,:,:)* &
+           (MZM( ZFLX(:,:,:)*PINV_PDXX(:,:,:) )) )&
                                            *PINV_PDZZ(:,:,:) )                        &
         )*PFRAC_ICE(:,:,:)
       ELSE
         PRRS(:,:,:,2) = PRRS(:,:,:,2) +  2. *                                  &
         (- DXF( MXM( PRHODJ(:,:,:)*PAMOIST(:,:,:)*PSRCM(:,:,:) )*ZFLX(:,:,:)*PINV_PDXX(:,:,:) )                   &
-         + DZF(1,IKU,1, MZM(1,IKU,1, PRHODJ(:,:,:)*PAMOIST(:,:,:)*PSRCM(:,:,:) )*MXF( PDZX(:,:,:)* &
-           (MZM(1,IKU,1, ZFLX(:,:,:)*PINV_PDXX(:,:,:) )) )&
+         + DZF( MZM( PRHODJ(:,:,:)*PAMOIST(:,:,:)*PSRCM(:,:,:) )*MXF( PDZX(:,:,:)* &
+           (MZM( ZFLX(:,:,:)*PINV_PDXX(:,:,:) )) )&
                                            *PINV_PDZZ(:,:,:) )                        &
         )
       END IF
@@ -706,7 +706,7 @@ IF (KRR/=0) THEN
   IF (KSPLT==1 .AND. LLES_CALL) THEN
     CALL SECOND_MNH(ZTIME1)
     CALL LES_MEAN_SUBGRID( MXF(ZFLX), X_LES_SUBGRID_URt ) 
-    CALL LES_MEAN_SUBGRID( MZF(1,IKU,1,MXF(GX_W_UW(1,IKU,1,PWM,PDXX,PDZZ,PDZX)*MZM(1,IKU,1,ZFLX))),&
+    CALL LES_MEAN_SUBGRID( MZF(MXF(GX_W_UW(1,IKU,1,PWM,PDXX,PDZZ,PDZX)*MZM(ZFLX))),&
                            X_LES_RES_ddxa_W_SBG_UaRt , .TRUE. )
     CALL LES_MEAN_SUBGRID( GX_M_M(1,IKU,1,PTHLM,PDXX,PDZZ,PDZX)*MXF(ZFLX),&
                            X_LES_RES_ddxa_Thl_SBG_UaRt , .TRUE. )
@@ -1003,7 +1003,7 @@ IF (.NOT. L2D) THEN
   IF (.NOT. LFLAT) THEN
     PRTHLS(:,:,:) =  PRTHLS(:,:,:)                                                         &
                   - DYF( MYM(PRHODJ) * ZFLX(:,:,:) * PINV_PDYY(:,:,:) )                           &
-                  + DZF(1,IKU,1, PMZM_PRHODJ *MYF(PDZY(:,:,:)*(MZM(1,IKU,1,ZFLX(:,:,:) * PINV_PDYY(:,:,:)))) * PINV_PDZZ(:,:,:) )
+                  + DZF( PMZM_PRHODJ *MYF(PDZY(:,:,:)*(MZM(ZFLX(:,:,:) * PINV_PDYY(:,:,:)))) * PINV_PDZZ(:,:,:) )
   ELSE
     PRTHLS(:,:,:) =  PRTHLS(:,:,:) - DYF( MYM(PRHODJ) * ZFLX(:,:,:) * PINV_PDYY(:,:,:) )
   END IF
@@ -1015,27 +1015,27 @@ END IF
 IF ( KRRL >= 1 .AND. .NOT. L2D) THEN
   IF (.NOT. LFLAT) THEN
     ZFLXC(:,:,:) = 2.*( MYF( MYM( PRHODJ(:,:,:)*PATHETA(:,:,:)*PSRCM(:,:,:) )*ZFLX(:,:,:) )                       &
-                +MZF(1,IKU,1, MZM(1,IKU,1, PRHODJ(:,:,:)*PATHETA(:,:,:)*PSRCM(:,:,:) )*MYF(                         &
-                                               PDZY(:,:,:)*(MZM(1,IKU,1, ZFLX(:,:,:)*PINV_PDYY(:,:,:) )) ) )&
+                +MZF( MZM( PRHODJ(:,:,:)*PATHETA(:,:,:)*PSRCM(:,:,:) )*MYF(                         &
+                                               PDZY(:,:,:)*(MZM( ZFLX(:,:,:)*PINV_PDYY(:,:,:) )) ) )&
                )
     IF ( KRRI >= 1 ) THEN
       PRRS(:,:,:,2) = PRRS(:,:,:,2) + 2. *                                     &
         (- DYF( MYM( PRHODJ(:,:,:)*PATHETA(:,:,:)*PSRCM(:,:,:) )*ZFLX(:,:,:)*PINV_PDYY(:,:,:) )                   &
-         + DZF(1,IKU,1, MZM(1,IKU,1, PRHODJ(:,:,:)*PATHETA(:,:,:)*PSRCM(:,:,:) )*MYF( PDZY(:,:,:)* &
-           (MZM(1,IKU,1, ZFLX(:,:,:)*PINV_PDYY(:,:,:) )) )&
+         + DZF( MZM( PRHODJ(:,:,:)*PATHETA(:,:,:)*PSRCM(:,:,:) )*MYF( PDZY(:,:,:)* &
+           (MZM( ZFLX(:,:,:)*PINV_PDYY(:,:,:) )) )&
                                            *PINV_PDZZ(:,:,:) )                        &
         )*(1.0-PFRAC_ICE(:,:,:))
       PRRS(:,:,:,4) = PRRS(:,:,:,4) + 2. *                                     &
         (- DYF( MYM( PRHODJ(:,:,:)*PATHETA(:,:,:)*PSRCM(:,:,:) )*ZFLX(:,:,:)*PINV_PDYY(:,:,:) )                   &
-         + DZF(1,IKU,1, MZM(1,IKU,1, PRHODJ(:,:,:)*PATHETA(:,:,:)*PSRCM(:,:,:) )*MYF( PDZY(:,:,:)* &
-           (MZM(1,IKU,1, ZFLX(:,:,:)*PINV_PDYY(:,:,:) )) )&
+         + DZF( MZM( PRHODJ(:,:,:)*PATHETA(:,:,:)*PSRCM(:,:,:) )*MYF( PDZY(:,:,:)* &
+           (MZM( ZFLX(:,:,:)*PINV_PDYY(:,:,:) )) )&
                                            *PINV_PDZZ(:,:,:) )                        &
         )*PFRAC_ICE(:,:,:)
     ELSE
       PRRS(:,:,:,2) = PRRS(:,:,:,2) + 2. *                                     &
         (- DYF( MYM( PRHODJ(:,:,:)*PATHETA(:,:,:)*PSRCM(:,:,:) )*ZFLX(:,:,:)*PINV_PDYY(:,:,:) )                   &
-         + DZF(1,IKU,1, MZM(1,IKU,1, PRHODJ(:,:,:)*PATHETA(:,:,:)*PSRCM(:,:,:) )*MYF( PDZY(:,:,:)* &
-           (MZM(1,IKU,1, ZFLX(:,:,:)*PINV_PDYY(:,:,:) )) )&
+         + DZF( MZM( PRHODJ(:,:,:)*PATHETA(:,:,:)*PSRCM(:,:,:) )*MYF( PDZY(:,:,:)* &
+           (MZM( ZFLX(:,:,:)*PINV_PDYY(:,:,:) )) )&
                                            *PINV_PDZZ(:,:,:) )                        &
         )
     END IF
@@ -1074,7 +1074,7 @@ END IF
 IF (KSPLT==1 .AND. LLES_CALL) THEN
   CALL SECOND_MNH(ZTIME1)
   CALL LES_MEAN_SUBGRID( MYF(ZFLX), X_LES_SUBGRID_VThl ) 
-  CALL LES_MEAN_SUBGRID( MZF(1,IKU,1,MYF(GY_W_VW(1,IKU,1,PWM,PDYY,PDZZ,PDZY)*MZM(1,IKU,1,ZFLX))),&
+  CALL LES_MEAN_SUBGRID( MZF(MYF(GY_W_VW(1,IKU,1,PWM,PDYY,PDZZ,PDZY)*MZM(ZFLX))),&
                          X_LES_RES_ddxa_W_SBG_UaThl , .TRUE. )
   CALL LES_MEAN_SUBGRID( GY_M_M(1,IKU,1,PTHLM,PDYY,PDZZ,PDZY)*MYF(ZFLX),&
                          X_LES_RES_ddxa_Thl_SBG_UaThl , .TRUE. )
@@ -1343,8 +1343,8 @@ IF (KRR/=0) THEN
     IF (.NOT. LFLAT) THEN
       PRRS(:,:,:,1) = PRRS(:,:,:,1)                                              &
                     - DYF( MYM(PRHODJ) * ZFLX(:,:,:) * PINV_PDYY(:,:,:) )                           &
-                    + DZF(1,IKU,1, PMZM_PRHODJ(:,:,:) *MYF(PDZY(:,:,:)* &
-                      (MZM(1,IKU,1,ZFLX(:,:,:) * PINV_PDYY(:,:,:)))) * PINV_PDZZ(:,:,:) )
+                    + DZF( PMZM_PRHODJ(:,:,:) *MYF(PDZY(:,:,:)* &
+                      (MZM(ZFLX(:,:,:) * PINV_PDYY(:,:,:)))) * PINV_PDZZ(:,:,:) )
     ELSE
       PRRS(:,:,:,1) = PRRS(:,:,:,1) - DYF( MYM(PRHODJ) * ZFLX(:,:,:) * PINV_PDYY(:,:,:) )
     END IF
@@ -1356,27 +1356,27 @@ IF (KRR/=0) THEN
     IF (.NOT. LFLAT) THEN
       ZFLXC(:,:,:) = ZFLXC(:,:,:)            &
             + 2.*( MXF( MYM( PRHODJ(:,:,:)*PAMOIST(:,:,:)*PSRCM(:,:,:) )*ZFLX(:,:,:) )                     &
-                +  MZF(1,IKU,1, MZM(1,IKU,1, PRHODJ(:,:,:)*PAMOIST(:,:,:)*PSRCM(:,:,:) )*MYF(                       &
-                                               PDZY(:,:,:)*(MZM(1,IKU,1, ZFLX(:,:,:)*PINV_PDYY(:,:,:) )) ) )&
+                +  MZF( MZM( PRHODJ(:,:,:)*PAMOIST(:,:,:)*PSRCM(:,:,:) )*MYF(                       &
+                                               PDZY(:,:,:)*(MZM( ZFLX(:,:,:)*PINV_PDYY(:,:,:) )) ) )&
                  )
       IF ( KRRI >= 1 ) THEN
         PRRS(:,:,:,2) = PRRS(:,:,:,2) +  2. *                                  &
         (- DYF( MYM( PRHODJ(:,:,:)*PAMOIST(:,:,:)*PSRCM(:,:,:) )*ZFLX(:,:,:)/PDYY )                        &
-         + DZF(1,IKU,1, MZM(1,IKU,1, PRHODJ(:,:,:)*PAMOIST(:,:,:)*PSRCM(:,:,:) )*MYF( PDZY(:,:,:)* &
-           (MZM(1,IKU,1, ZFLX(:,:,:)*PINV_PDYY(:,:,:) )) )&
+         + DZF( MZM( PRHODJ(:,:,:)*PAMOIST(:,:,:)*PSRCM(:,:,:) )*MYF( PDZY(:,:,:)* &
+           (MZM( ZFLX(:,:,:)*PINV_PDYY(:,:,:) )) )&
                                            * PINV_PDZZ(:,:,:) )                       &
         )*(1.0-PFRAC_ICE(:,:,:))
         PRRS(:,:,:,4) = PRRS(:,:,:,4) +  2. *                                  &
         (- DYF( MYM( PRHODJ(:,:,:)*PAMOIST(:,:,:)*PSRCM(:,:,:) )*ZFLX(:,:,:)/PDYY )                        &
-         + DZF(1,IKU,1, MZM(1,IKU,1, PRHODJ(:,:,:)*PAMOIST(:,:,:)*PSRCM(:,:,:) )*MYF( PDZY(:,:,:)* &
-           (MZM(1,IKU,1, ZFLX(:,:,:)*PINV_PDYY(:,:,:) )) )&
+         + DZF( MZM( PRHODJ(:,:,:)*PAMOIST(:,:,:)*PSRCM(:,:,:) )*MYF( PDZY(:,:,:)* &
+           (MZM( ZFLX(:,:,:)*PINV_PDYY(:,:,:) )) )&
                                            * PINV_PDZZ(:,:,:) )                       &
         )*PFRAC_ICE(:,:,:)
       ELSE
         PRRS(:,:,:,2) = PRRS(:,:,:,2) +  2. *                                  &
         (- DYF( MYM( PRHODJ(:,:,:)*PAMOIST(:,:,:)*PSRCM(:,:,:) )*ZFLX(:,:,:)/PDYY )                        &
-         + DZF(1,IKU,1, MZM(1,IKU,1, PRHODJ(:,:,:)*PAMOIST(:,:,:)*PSRCM(:,:,:) )*MYF( PDZY(:,:,:)* &
-           (MZM(1,IKU,1, ZFLX(:,:,:)*PINV_PDYY(:,:,:) )) )&
+         + DZF( MZM( PRHODJ(:,:,:)*PAMOIST(:,:,:)*PSRCM(:,:,:) )*MYF( PDZY(:,:,:)* &
+           (MZM( ZFLX(:,:,:)*PINV_PDYY(:,:,:) )) )&
                                            * PINV_PDZZ(:,:,:) )                       &
         )
       END IF
@@ -1412,7 +1412,7 @@ IF (KRR/=0) THEN
   IF (KSPLT==1 .AND. LLES_CALL) THEN
     CALL SECOND_MNH(ZTIME1)
     CALL LES_MEAN_SUBGRID( MYF(ZFLX), X_LES_SUBGRID_VRt ) 
-    CALL LES_MEAN_SUBGRID( MZF(1,IKU,1,MYF(GY_W_VW(1,IKU,1,PWM,PDYY,PDZZ,PDZY)*MZM(1,IKU,1,ZFLX))),&
+    CALL LES_MEAN_SUBGRID( MZF(MYF(GY_W_VW(1,IKU,1,PWM,PDYY,PDZZ,PDZY)*MZM(ZFLX))),&
                            X_LES_RES_ddxa_W_SBG_UaRt , .TRUE. )
     CALL LES_MEAN_SUBGRID( GY_M_M(1,IKU,1,PTHLM,PDYY,PDZZ,PDZY)*MYF(ZFLX), &
                            X_LES_RES_ddxa_Thl_SBG_UaRt , .TRUE. )
diff --git a/src/MNH/turb_hor_tke.f90 b/src/MNH/turb_hor_tke.f90
index f81424712df6e3a383cf3ddfcc3308d33bfeb072..f98d8de25d5d3fed9a3663e56b23796428a9463f 100644
--- a/src/MNH/turb_hor_tke.f90
+++ b/src/MNH/turb_hor_tke.f90
@@ -1,4 +1,4 @@
-!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 1994-2020 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
 !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
@@ -246,7 +246,7 @@ ZFLX(:,:,IKU) =  ZFLX(:,:,IKU-1)
 #ifndef MNH_OPENACC
 IF (.NOT. LFLAT) THEN
   PTRH =-(  DXF( MXM(PRHODJ) * ZFLX                             * PINV_PDXX)&
-          - DZF(1,IKU,1, PMZM_PRHODJ * MXF( PDZX * MZM(1,IKU,1,ZFLX*PINV_PDXX)) * PINV_PDZZ)&
+          - DZF( PMZM_PRHODJ * MXF( PDZX * MZM(ZFLX*PINV_PDXX)) * PINV_PDZZ)&
          ) /PRHODJ
 ELSE
   PTRH =-(  DXF( MXM(PRHODJ) * ZFLX                             * PINV_PDXX)&
@@ -362,7 +362,7 @@ IF (.NOT. L2D) THEN
 #ifndef MNH_OPENACC
   IF (.NOT. LFLAT) THEN
     PTRH = PTRH - (  DYF( MYM(PRHODJ) * ZFLX                              * PINV_PDYY )  &
-                   - DZF(1,IKU,1, PMZM_PRHODJ * MYF( PDZY * MZM(1,IKU,1,ZFLX*PINV_PDYY) ) * PINV_PDZZ )  &
+                   - DZF( PMZM_PRHODJ * MYF( PDZY * MZM(ZFLX*PINV_PDYY) ) * PINV_PDZZ )  &
                   ) /PRHODJ
   ELSE
     PTRH = PTRH - (  DYF( MYM(PRHODJ) * ZFLX                              * PINV_PDYY )  &
diff --git a/src/MNH/turb_hor_uv.f90 b/src/MNH/turb_hor_uv.f90
index e11c9959921b3f8161ec1914031e82ed399e201a..2ea8010382b36c7caad33a0b5d6bc8efc2dad33d 100644
--- a/src/MNH/turb_hor_uv.f90
+++ b/src/MNH/turb_hor_uv.f90
@@ -1,4 +1,4 @@
-!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 1994-2020 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
 !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
@@ -471,7 +471,7 @@ END IF
 IF (.NOT. LFLAT) THEN
   PRUS(:,:,:) = PRUS(:,:,:)                                &
               - DYF(ZFLX * MXM(MYM(PRHODJ) * PINV_PDYY) )         &
-              + DZF(1,IKU,1, MYF( MZM(1,IKU,1,ZFLX)*MXM(PDZY/MZM(1,IKU,1,PDYY)))   &
+              + DZF( MYF( MZM(ZFLX)*MXM(PDZY/MZM(PDYY)))   &
                     * MXM(PMZM_PRHODJ * PINV_PDZZ) )
 ELSE
   PRUS(:,:,:) = PRUS(:,:,:) - DYF(ZFLX * MXM(MYM(PRHODJ) * PINV_PDYY) )
@@ -520,7 +520,7 @@ END IF
 IF (.NOT. LFLAT) THEN
   PRVS(:,:,:) = PRVS(:,:,:)                             &
                 - DXF(ZFLX * MYM(MXM(PRHODJ) * PINV_PDXX) )    &
-                + DZF(1,IKU,1, MXF( MZM(1,IKU,1,ZFLX)*MYM(PDZX/MZM(1,IKU,1,PDXX))) & 
+                + DZF( MXF( MZM(ZFLX)*MYM(PDZX/MZM(PDXX))) &
                       * MYM(PMZM_PRHODJ * PINV_PDZZ) )
 ELSE
   PRVS(:,:,:) = PRVS(:,:,:) - DXF(ZFLX * MYM(MXM(PRHODJ) * PINV_PDXX) )
diff --git a/src/MNH/turb_hor_uw.f90 b/src/MNH/turb_hor_uw.f90
index 102bc4322650b448d75762786a537d27ac91d775..5c2a2408888a7daf8817ebc770ef879523906635 100644
--- a/src/MNH/turb_hor_uw.f90
+++ b/src/MNH/turb_hor_uw.f90
@@ -1,4 +1,4 @@
-!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 1994-2020 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
 !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
@@ -266,7 +266,7 @@ CALL GX_W_UW_DEVICE(1,IKU,1,PWM,PDXX,PDZZ,PDZX,GX_W_UW_PWM)
 !
 #ifndef MNH_OPENACC
 ZFLX(:,:,:) =                                                      &
-  - XCMFS * MXM(MZM(1,IKU,1,PK)) * GX_W_UW_PWM
+  - XCMFS * MXM(MZM(PK)) * GX_W_UW_PWM
 #else
 CALL MZM_DEVICE(PK,ZTMP1_DEVICE)
 CALL MXM_DEVICE(ZTMP1_DEVICE,ZTMP2_DEVICE)
@@ -304,7 +304,7 @@ END IF
 ! compute the source for rho*U due to this residual flux ( the other part is
 ! taken into account in TURB_VER)
 #ifndef MNH_OPENACC
-PRUS(:,:,:) = PRUS(:,:,:) - DZF(1,IKU,1, ZFLX* MXM( PMZM_PRHODJ ) / MXM( PDZZ ) )
+PRUS(:,:,:) = PRUS(:,:,:) - DZF( ZFLX* MXM( PMZM_PRHODJ ) / MXM( PDZZ ) )
 #else
 CALL MXM_DEVICE( PMZM_PRHODJ, ZTMP1_DEVICE )
 CALL MXM_DEVICE( PDZZ, ZTMP2_DEVICE )
@@ -321,10 +321,10 @@ PRUS(:,:,:) = PRUS(:,:,:) - ZTMP1_DEVICE(:,:,:)
 #ifndef MNH_OPENACC
 IF (.NOT. LFLAT) THEN
   PRWS(:,:,:) = PRWS(:,:,:)                              &
-        -DXF( MZM(1,IKU,1, MXM(PRHODJ) * PINV_PDXX) * ZFLX)           &
-        +DZM(1,IKU,1, PRHODJ * MXF( MZF(1,IKU,1, ZFLX*PDZX ) * PINV_PDXX ) / MZF(1,IKU,1,PDZZ) )
+        -DXF( MZM( MXM(PRHODJ) * PINV_PDXX) * ZFLX)           &
+        +DZM( PRHODJ * MXF( MZF( ZFLX*PDZX ) * PINV_PDXX ) / MZF(PDZZ) )
 ELSE
-  PRWS(:,:,:) = PRWS(:,:,:) -DXF( MZM(1,IKU,1, MXM(PRHODJ) * PINV_PDXX) * ZFLX)
+  PRWS(:,:,:) = PRWS(:,:,:) -DXF( MZM( MXM(PRHODJ) * PINV_PDXX) * ZFLX)
 END IF
 #else
   CALL MXM_DEVICE(PRHODJ,ZTMP1_DEVICE)
@@ -367,7 +367,7 @@ IF (KSPLT==1) THEN
   !Contribution to the dynamic production of TKE:
   !
 #ifndef MNH_OPENACC
-  ZWORK(:,:,:) =-MZF(1,IKU,1, MXF(                               &
+  ZWORK(:,:,:) =-MZF( MXF(                               &
      ZFLX *( GZ_U_UW(1,IKU,1,PUM,PDZZ) + GX_W_UW_PWM ) ) )
 #else
   CALL GZ_U_UW_DEVICE(1,IKU,1,PUM,PDZZ,ZTMP1_DEVICE)
@@ -433,17 +433,17 @@ END IF
 IF (LLES_CALL .AND. KSPLT==1) THEN
   CALL SECOND_MNH(ZTIME1)
 #ifndef MNH_OPENACC
-  CALL LES_MEAN_SUBGRID( MZF(1,IKU,1,MXF(ZFLX)), X_LES_SUBGRID_WU , .TRUE. ) 
-  CALL LES_MEAN_SUBGRID( MZF(1,IKU,1,MXF(GZ_U_UW(1,IKU,1,PUM,PDZZ)*ZFLX)), X_LES_RES_ddxa_U_SBG_UaU , .TRUE.)
-  CALL LES_MEAN_SUBGRID( MZF(1,IKU,1,MXF(GX_W_UW_PWM*ZFLX)), X_LES_RES_ddxa_W_SBG_UaW , .TRUE.)
-  CALL LES_MEAN_SUBGRID( MXF(GX_M_U(1,IKU,1,PTHLM,PDXX,PDZZ,PDZX)*MZF(1,IKU,1,ZFLX)),&
+  CALL LES_MEAN_SUBGRID( MZF(MXF(ZFLX)), X_LES_SUBGRID_WU , .TRUE. )
+  CALL LES_MEAN_SUBGRID( MZF(MXF(GZ_U_UW(1,IKU,1,PUM,PDZZ)*ZFLX)), X_LES_RES_ddxa_U_SBG_UaU , .TRUE.)
+  CALL LES_MEAN_SUBGRID( MZF(MXF(GX_W_UW_PWM*ZFLX)), X_LES_RES_ddxa_W_SBG_UaW , .TRUE.)
+  CALL LES_MEAN_SUBGRID( MXF(GX_M_U(1,IKU,1,PTHLM,PDXX,PDZZ,PDZX)*MZF(ZFLX)),&
                          X_LES_RES_ddxa_Thl_SBG_UaW , .TRUE.)
   IF (KRR>=1) THEN
-    CALL LES_MEAN_SUBGRID( MXF(GX_M_U(1,IKU,1,PRM(:,:,:,1),PDXX,PDZZ,PDZX)*MZF(1,IKU,1,ZFLX)), &
+    CALL LES_MEAN_SUBGRID( MXF(GX_M_U(1,IKU,1,PRM(:,:,:,1),PDXX,PDZZ,PDZX)*MZF(ZFLX)), &
                            X_LES_RES_ddxa_Rt_SBG_UaW , .TRUE.)
   END IF
   DO JSV=1,NSV
-    CALL LES_MEAN_SUBGRID( MXF(GX_M_U(1,IKU,1,PSVM(:,:,:,JSV),PDXX,PDZZ,PDZX)*MZF(1,IKU,1,ZFLX)), &
+    CALL LES_MEAN_SUBGRID( MXF(GX_M_U(1,IKU,1,PSVM(:,:,:,JSV),PDXX,PDZZ,PDZX)*MZF(ZFLX)), &
                            X_LES_RES_ddxa_Sv_SBG_UaW(:,:,:,JSV) , .TRUE.)
   END DO
 #else
diff --git a/src/MNH/turb_hor_vw.f90 b/src/MNH/turb_hor_vw.f90
index 4dbcb63e618ebe4dff2206ba195aeca8c8e42eca..9b27bf8b350a9c6088d954ba7a3a811dc0411e01 100644
--- a/src/MNH/turb_hor_vw.f90
+++ b/src/MNH/turb_hor_vw.f90
@@ -1,4 +1,4 @@
-!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 1994-2020 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
 !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
@@ -266,7 +266,7 @@ END IF
 #ifndef MNH_OPENACC
 IF (.NOT. L2D) THEN
   ZFLX(:,:,:) =                                                      &
-    - XCMFS * MYM(MZM(1,IKU,1,PK)) * GY_W_VW_PWM
+    - XCMFS * MYM(MZM(PK)) * GY_W_VW_PWM
   !! &  to be tested
   !!  - (2./3.) * XCMFB * MZM( ZVPTV * MYM( PLM / SQRT(PTKEM) * XG / PTHVREF ) )
 ELSE
@@ -322,7 +322,7 @@ END IF
 ! taken into account in TURB_VER)
 #ifndef MNH_OPENACC
 IF (.NOT. L2D) &
-PRVS(:,:,:) = PRVS(:,:,:) - DZF(1,IKU,1, ZFLX* MYM( PMZM_PRHODJ ) / MYM ( PDZZ ) )
+PRVS(:,:,:) = PRVS(:,:,:) - DZF( ZFLX* MYM( PMZM_PRHODJ ) / MYM ( PDZZ ) )
 #else
 IF (.NOT. L2D) THEN
   CALL MYM_DEVICE( PMZM_PRHODJ, ZTMP1_DEVICE )
@@ -342,10 +342,10 @@ ENDIF
 IF (.NOT. L2D) THEN 
   IF (.NOT. LFLAT) THEN
     PRWS(:,:,:) = PRWS(:,:,:)                              &
-          -DYF( MZM(1,IKU,1, MYM(PRHODJ) * PINV_PDYY) * ZFLX)           &
-          +DZM(1,IKU,1, PRHODJ * MYF( MZF(1,IKU,1, ZFLX*PDZY ) * PINV_PDYY ) / MZF(1,IKU,1,PDZZ) )
+          -DYF( MZM( MYM(PRHODJ) * PINV_PDYY) * ZFLX)           &
+          +DZM( PRHODJ * MYF( MZF( ZFLX*PDZY ) * PINV_PDYY ) / MZF(PDZZ) )
   ELSE
-    PRWS(:,:,:) = PRWS(:,:,:) - DYF( MZM(1,IKU,1, MYM(PRHODJ) * PINV_PDYY) * ZFLX)
+    PRWS(:,:,:) = PRWS(:,:,:) - DYF( MZM( MYM(PRHODJ) * PINV_PDYY) * ZFLX)
   END IF
 END IF
 #else
@@ -401,7 +401,7 @@ IF (KSPLT==1) THEN
   !
   IF (.NOT. L2D) THEN
 #ifndef MNH_OPENACC
-    ZWORK(:,:,:) =-MZF(1,IKU,1, MYF( ZFLX *( GZ_V_VW(1,IKU,1,PVM,PDZZ) + GY_W_VW_PWM ) ) )
+    ZWORK(:,:,:) =-MZF( MYF( ZFLX *( GZ_V_VW(1,IKU,1,PVM,PDZZ) + GY_W_VW_PWM ) ) )
 #else
     CALL GZ_V_VW_DEVICE(1,IKU,1,PVM,PDZZ,ZTMP1_DEVICE)
     !$acc kernels
@@ -467,17 +467,17 @@ END IF
 IF (LLES_CALL .AND. KSPLT==1) THEN
   CALL SECOND_MNH(ZTIME1)
 #ifndef MNH_OPENACC
-  CALL LES_MEAN_SUBGRID( MZF(1,IKU,1,MYF(ZFLX)), X_LES_SUBGRID_WV , .TRUE. )
-  CALL LES_MEAN_SUBGRID( MZF(1,IKU,1,MYF(GZ_V_VW(1,IKU,1,PVM,PDZZ)*ZFLX)), X_LES_RES_ddxa_V_SBG_UaV , .TRUE.)
-  CALL LES_MEAN_SUBGRID( MZF(1,IKU,1,MYF(GY_W_VW(1,IKU,1,PWM,PDYY,PDZZ,PDZY)*ZFLX)), X_LES_RES_ddxa_W_SBG_UaW , .TRUE.)
-  CALL LES_MEAN_SUBGRID( MXF(GY_M_V(1,IKU,1,PTHLM,PDYY,PDZZ,PDZY)*MZF(1,IKU,1,ZFLX)), &
+  CALL LES_MEAN_SUBGRID( MZF(MYF(ZFLX)), X_LES_SUBGRID_WV , .TRUE. )
+  CALL LES_MEAN_SUBGRID( MZF(MYF(GZ_V_VW(1,IKU,1,PVM,PDZZ)*ZFLX)), X_LES_RES_ddxa_V_SBG_UaV , .TRUE.)
+  CALL LES_MEAN_SUBGRID( MZF(MYF(GY_W_VW(1,IKU,1,PWM,PDYY,PDZZ,PDZY)*ZFLX)), X_LES_RES_ddxa_W_SBG_UaW , .TRUE.)
+  CALL LES_MEAN_SUBGRID( MXF(GY_M_V(1,IKU,1,PTHLM,PDYY,PDZZ,PDZY)*MZF(ZFLX)), &
                          X_LES_RES_ddxa_Thl_SBG_UaW , .TRUE.)
   IF (KRR>=1) THEN
-    CALL LES_MEAN_SUBGRID( MXF(GY_M_V(1,IKU,1,PRM(:,:,:,1),PDYY,PDZZ,PDZY)*MZF(1,IKU,1,ZFLX)), &
+    CALL LES_MEAN_SUBGRID( MXF(GY_M_V(1,IKU,1,PRM(:,:,:,1),PDYY,PDZZ,PDZY)*MZF(ZFLX)), &
                            X_LES_RES_ddxa_Rt_SBG_UaW , .TRUE.)
   END IF
   DO JSV=1,NSV
-    CALL LES_MEAN_SUBGRID( MXF(GY_M_V(1,IKU,1,PSVM(:,:,:,JSV),PDYY,PDZZ,PDZY)*MZF(1,IKU,1,ZFLX)), &
+    CALL LES_MEAN_SUBGRID( MXF(GY_M_V(1,IKU,1,PSVM(:,:,:,JSV),PDYY,PDZZ,PDZY)*MZF(ZFLX)), &
                            X_LES_RES_ddxa_Sv_SBG_UaW(:,:,:,JSV), .TRUE.)
   END DO
 #else
diff --git a/src/MNH/turb_ver.f90 b/src/MNH/turb_ver.f90
index 80fd1717f9f254de4b37931eba63e759135c9faa..b188f0778fd498f13ee0698be23738e54586f4a2 100644
--- a/src/MNH/turb_ver.f90
+++ b/src/MNH/turb_ver.f90
@@ -223,13 +223,7 @@ END MODULE MODI_TURB_VER
 !!                               field to be derivated
 !!                               _(M,UW,...) represent the localization of the 
 !!                               field	derivated
-!!                               
 !!
-!!      MXM,MXF,MYM,MYF,MZM,MZF
-!!                             :  Shuman functions (mean operators)     
-!!      DXF,DYF,DZF,DZM
-!!                             :  Shuman functions (difference operators)     
-!!                               
 !!      SUBROUTINE TRIDIAG     : to compute the splitted implicit evolution
 !!                               of a variable located at a mass point
 !!
diff --git a/src/MNH/turb_ver_dyn_flux.f90 b/src/MNH/turb_ver_dyn_flux.f90
index 15f1e793cf88319b5d579d333d190de87b26c061..3cb5acffe4091afca00b8d6c2d7ab7438ca0605d 100644
--- a/src/MNH/turb_ver_dyn_flux.f90
+++ b/src/MNH/turb_ver_dyn_flux.f90
@@ -1,4 +1,4 @@
-!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 1994-2020 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
 !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
@@ -501,7 +501,7 @@ ZDIRSINZW(:,:) = SQRT(1.-BR_P2(PDIRCOSZW(:,:)))
 !  ground
 !
 #ifndef MNH_OPENACC
-ZKEFF(:,:,:) = MZM(KKA,KKU,KKL, PLM(:,:,:) * SQRT(PTKEM(:,:,:)) )
+ZKEFF(:,:,:) = MZM( PLM(:,:,:) * SQRT(PTKEM(:,:,:)) )
 #else
 ZTMP1_DEVICE(:,:,:) = PLM(:,:,:) * SQRT(PTKEM(:,:,:))
 !$acc end kernels
@@ -525,7 +525,7 @@ ZVSLOPEM(:,:,1)=PVSLOPEM(:,:)
 !
 #ifndef MNH_OPENACC
 ZA(:,:,:)    = -PTSTEP * XCMFS *                              &
-              MXM( ZKEFF ) * MXM(MZM(KKA,KKU,KKL, PRHODJ )) / &
+              MXM( ZKEFF ) * MXM(MZM( PRHODJ )) / &
 #ifndef MNH_BITREP
               MXM( PDZZ )**2
 #else
@@ -637,7 +637,7 @@ PRUS(:,:,:)=PRUS(:,:,:)+ZTMP1_DEVICE(:,:,:)*(ZRES(:,:,:)-PUM(:,:,:))/PTSTEP
 !
 #ifndef MNH_OPENACC
 ZFLXZ(:,:,:)     = -XCMFS * MXM(ZKEFF) * &
-                  DZM (KKA,KKU,KKL,PIMPL*ZRES(:,:,:) + PEXPL*PUM(:,:,:)) / MXM(PDZZ)
+                  DZM (PIMPL*ZRES + PEXPL*PUM) / MXM(PDZZ)
 #else
 ZTMP2_DEVICE(:,:,:) = PIMPL*ZRES(:,:,:) + PEXPL*PUM(:,:,:)
 !$acc end kernels
@@ -696,7 +696,7 @@ PWU(:,:,:) = ZFLXZ(:,:,:)
 ! compute the dynamic production at the mass point
 !
 #ifndef MNH_OPENACC
-PDP(:,:,:) = - MZF(KKA,KKU,KKL, MXF ( ZFLXZ(:,:,:) * GZ_U_UW(KKA,KKU,KKL,PUM,PDZZ) )  )
+PDP(:,:,:) = - MZF( MXF ( ZFLXZ * GZ_U_UW(KKA,KKU,KKL,PUM,PDZZ) )  )
 #else
 CALL GZ_U_UW_DEVICE(KKA,KKU,KKL,PUM,PDZZ,ZTMP1_DEVICE)
 !$acc kernels
@@ -732,10 +732,10 @@ PDP(:,:,IKB:IKB) = - ZTMP3_DEVICE(:,:,IKB:IKB)
 IF (LLES_CALL) THEN
   CALL SECOND_MNH(ZTIME1)
 #ifndef MNH_OPENACC
-  CALL LES_MEAN_SUBGRID( MZF(KKA,KKU,KKL,MXF(ZFLXZ)), X_LES_SUBGRID_WU ) 
-  CALL LES_MEAN_SUBGRID( MZF(KKA,KKU,KKL,MXF(GZ_U_UW(KKA,KKU,KKL,PUM,PDZZ) &
-                          & *ZFLXZ(:,:,:))), X_LES_RES_ddxa_U_SBG_UaU )
-  CALL LES_MEAN_SUBGRID( XCMFS * ZKEFF(:,:,:), X_LES_SUBGRID_Km )
+  CALL LES_MEAN_SUBGRID( MZF(MXF(ZFLXZ)), X_LES_SUBGRID_WU )
+  CALL LES_MEAN_SUBGRID( MZF(MXF(GZ_U_UW(KKA,KKU,KKL,PUM,PDZZ) &
+                          & *ZFLXZ)), X_LES_RES_ddxa_U_SBG_UaU )
+  CALL LES_MEAN_SUBGRID( XCMFS * ZKEFF, X_LES_SUBGRID_Km )
 #else
 !$acc data copy(X_LES_SUBGRID_WU,X_LES_RES_ddxa_U_SBG_UaU,X_LES_SUBGRID_Km)
   !
@@ -775,12 +775,12 @@ IF(HTURBDIM=='3DIM') THEN
 #ifndef MNH_OPENACC
   IF (.NOT. LFLAT) THEN
     PRWS(:,:,:)= PRWS                                      &
-                -DXF( MZM(KKA,KKU,KKL, MXM(PRHODJ) /PDXX(:,:,:) )  * ZFLXZ(:,:,:) )  &
-                +DZM(KKA,KKU,KKL, PRHODJ / MZF(KKA,KKU,KKL,PDZZ ) *                &
-                      MXF( MZF(KKA,KKU,KKL, ZFLXZ(:,:,:)*PDZX(:,:,:) ) / PDXX(:,:,:) )      &
+                -DXF( MZM( MXM(PRHODJ) /PDXX(:,:,:) )  * ZFLXZ(:,:,:) )  &
+                +DZM( PRHODJ / MZF(PDZZ ) *                &
+                      MXF( MZF( ZFLXZ(:,:,:)*PDZX(:,:,:) ) / PDXX(:,:,:) )      &
                     )
   ELSE
-    PRWS(:,:,:)= PRWS(:,:,:) -DXF( MZM(KKA,KKU,KKL, MXM(PRHODJ) /PDXX(:,:,:) )  * ZFLXZ(:,:,:) )
+    PRWS(:,:,:)= PRWS(:,:,:) -DXF( MZM( MXM(PRHODJ) /PDXX(:,:,:) )  * ZFLXZ(:,:,:) )
   END IF
 #else
   CALL MXM_DEVICE(PRHODJ,ZTMP1_DEVICE)
@@ -819,7 +819,7 @@ IF(HTURBDIM=='3DIM') THEN
   ! Complete the Dynamical production with the W wind component 
   !
 #ifndef MNH_OPENACC
-  ZA(:,:,:)=-MZF(KKA,KKU,KKL, MXF ( ZFLXZ(:,:,:) * GX_W_UW(KKA,KKU,KKL, PWM,PDXX,PDZZ,PDZX) )  )
+  ZA(:,:,:)=-MZF( MXF ( ZFLXZ * GX_W_UW(KKA,KKU,KKL, PWM,PDXX,PDZZ,PDZX) )  )
 #else
   CALL GX_W_UW_DEVICE(KKA,KKU,KKL, PWM,PDXX,PDZZ,PDZX,ZTMP1_DEVICE)
 !$acc kernels
@@ -873,17 +873,17 @@ IF(HTURBDIM=='3DIM') THEN
   IF (LLES_CALL) THEN
     CALL SECOND_MNH(ZTIME1)
 #ifndef MNH_OPENACC
-    CALL LES_MEAN_SUBGRID( MZF(KKA,KKU,KKL,MXF(GX_W_UW(KKA,KKU,KKL,PWM,PDXX,&
-      PDZZ,PDZX)*ZFLXZ(:,:,:))), X_LES_RES_ddxa_W_SBG_UaW )
+    CALL LES_MEAN_SUBGRID( MZF(MXF(GX_W_UW(KKA,KKU,KKL,PWM,PDXX,&
+      PDZZ,PDZX)*ZFLXZ)), X_LES_RES_ddxa_W_SBG_UaW )
     CALL LES_MEAN_SUBGRID( MXF(GX_M_U(KKA,KKU,KKL,PTHLM,PDXX,PDZZ,PDZX)&
-      * MZF(KKA,KKU,KKL,ZFLXZ)), X_LES_RES_ddxa_Thl_SBG_UaW )
+      * MZF(ZFLXZ)), X_LES_RES_ddxa_Thl_SBG_UaW )
     IF (KRR>=1) THEN
       CALL LES_MEAN_SUBGRID(MXF(GX_U_M(KKA,KKU,KKL,PRM(:,:,:,1),PDXX,PDZZ,PDZX)&
-      *MZF(KKA,KKU,KKL,ZFLXZ)),X_LES_RES_ddxa_Rt_SBG_UaW )
+      *MZF(ZFLXZ)),X_LES_RES_ddxa_Rt_SBG_UaW )
     END IF
     DO JSV=1,NSV
       CALL LES_MEAN_SUBGRID( MXF(GX_U_M(KKA,KKU,KKL,PSVM(:,:,:,JSV),PDXX,PDZZ,&
-      PDZX)*MZF(KKA,KKU,KKL,ZFLXZ)),X_LES_RES_ddxa_Sv_SBG_UaW(:,:,:,JSV) )
+      PDZX)*MZF(ZFLXZ)),X_LES_RES_ddxa_Sv_SBG_UaW(:,:,:,JSV) )
     END DO
 #else
 !$acc data copy(X_LES_RES_ddxa_W_SBG_UaW,X_LES_RES_ddxa_Thl_SBG_UaW, &
@@ -944,7 +944,7 @@ END IF
 !!
 #ifndef MNH_OPENACC
 ZA(:,:,:)    = - PTSTEP * XCMFS *                              &
-              MYM( ZKEFF ) * MYM(MZM(KKA,KKU,KKL, PRHODJ )) /  &
+              MYM( ZKEFF ) * MYM(MZM( PRHODJ )) /  &
 #ifndef MNH_BITREP
               MYM( PDZZ )**2
 #else
@@ -1055,7 +1055,7 @@ PRVS(:,:,:)=PRVS(:,:,:)+ZTMP1_DEVICE*(ZRES(:,:,:)-PVM(:,:,:))/PTSTEP
 !
 #ifndef MNH_OPENACC
 ZFLXZ(:,:,:)   = -XCMFS * MYM(ZKEFF) * &
-                DZM(KKA,KKU,KKL, PIMPL*ZRES + PEXPL*PVM ) / MYM(PDZZ)
+                DZM( PIMPL*ZRES + PEXPL*PVM ) / MYM(PDZZ)
 !
 ZFLXZ(:,:,IKB:IKB)   =   MYM(PDZZ(:,:,IKB:IKB))  *                       &
   ( ZSOURCE(:,:,IKB:IKB)                                                 &
@@ -1111,7 +1111,7 @@ PWV(:,:,:) = ZFLXZ(:,:,:)
 ! compute the dynamic production contribution at the mass point
 !
 #ifndef MNH_OPENACC
-ZA(:,:,:) = - MZF(KKA,KKU,KKL, MYF ( ZFLXZ * GZ_V_VW(KKA,KKU,KKL,PVM,PDZZ) ) )
+ZA(:,:,:) = - MZF( MYF ( ZFLXZ * GZ_V_VW(KKA,KKU,KKL,PVM,PDZZ) ) )
 #else
 CALL GZ_V_VW_DEVICE(KKA,KKU,KKL,PVM,PDZZ,ZTMP1_DEVICE)
 !$acc kernels
@@ -1149,8 +1149,8 @@ PDP(:,:,:)=PDP(:,:,:)+ZA(:,:,:)
 IF (LLES_CALL) THEN
   CALL SECOND_MNH(ZTIME1)
 #ifndef MNH_OPENACC
-  CALL LES_MEAN_SUBGRID( MZF(KKA,KKU,KKL,MYF(ZFLXZ)), X_LES_SUBGRID_WV ) 
-  CALL LES_MEAN_SUBGRID( MZF(KKA,KKU,KKL,MYF(GZ_V_VW(KKA,KKU,KKL,PVM,PDZZ)*&
+  CALL LES_MEAN_SUBGRID( MZF(MYF(ZFLXZ)), X_LES_SUBGRID_WV )
+  CALL LES_MEAN_SUBGRID( MZF(MYF(GZ_V_VW(KKA,KKU,KKL,PVM,PDZZ)*&
                     & ZFLXZ)), X_LES_RES_ddxa_V_SBG_UaV )
 #else
 !$acc data copy(X_LES_SUBGRID_WV,X_LES_RES_ddxa_V_SBG_UaV)
@@ -1186,12 +1186,12 @@ IF(HTURBDIM=='3DIM') THEN
   IF (.NOT. L2D) THEN 
     IF (.NOT. LFLAT) THEN
       PRWS(:,:,:)= PRWS(:,:,:)                               &
-                  -DYF( MZM(KKA,KKU,KKL, MYM(PRHODJ) /PDYY ) * ZFLXZ )   &
-                  +DZM(KKA,KKU,KKL, PRHODJ / MZF(KKA,KKU,KKL,PDZZ ) *                &
-                        MYF( MZF(KKA,KKU,KKL, ZFLXZ*PDZY ) / PDYY )      &
+                  -DYF( MZM( MYM(PRHODJ) /PDYY ) * ZFLXZ )   &
+                  +DZM( PRHODJ / MZF(PDZZ ) *                &
+                        MYF( MZF( ZFLXZ*PDZY ) / PDYY )      &
                       )
     ELSE
-      PRWS(:,:,:)= PRWS(:,:,:) -DYF( MZM(KKA,KKU,KKL, MYM(PRHODJ) /PDYY ) * ZFLXZ )
+      PRWS(:,:,:)= PRWS(:,:,:) -DYF( MZM( MYM(PRHODJ) /PDYY ) * ZFLXZ )
     END IF
   END IF
 #else
@@ -1233,7 +1233,7 @@ IF(HTURBDIM=='3DIM') THEN
   ! Complete the Dynamical production with the W wind component 
   IF (.NOT. L2D) THEN
 #ifndef MNH_OPENACC
-    ZA(:,:,:) = - MZF(KKA,KKU,KKL, MYF ( ZFLXZ(:,:,:) * GY_W_VW(KKA,KKU,KKL, PWM,PDYY,PDZZ,PDZY) )  )
+    ZA(:,:,:) = - MZF( MYF ( ZFLXZ(:,:,:) * GY_W_VW(KKA,KKU,KKL, PWM,PDYY,PDZZ,PDZY) )  )
 #else
     CALL GY_W_VW_DEVICE(KKA,KKU,KKL, PWM,PDYY,PDZZ,PDZY,ZTMP1_DEVICE)
 !$acc kernels
@@ -1288,13 +1288,13 @@ IF(HTURBDIM=='3DIM') THEN
   IF (LLES_CALL) THEN
     CALL SECOND_MNH(ZTIME1)
 #ifndef MNH_OPENACC
-    CALL LES_MEAN_SUBGRID( MZF(KKA,KKU,KKL,MYF(GY_W_VW(KKA,KKU,KKL,PWM,PDYY,&
+    CALL LES_MEAN_SUBGRID( MZF(MYF(GY_W_VW(KKA,KKU,KKL,PWM,PDYY,&
     PDZZ,PDZY)*ZFLXZ(:,:,:))), X_LES_RES_ddxa_W_SBG_UaW , .TRUE. )
     CALL LES_MEAN_SUBGRID( MYF(GY_M_V(KKA,KKU,KKL,PTHLM,PDYY,PDZZ,PDZY)&
-    *MZF(KKA,KKU,KKL,ZFLXZ)), X_LES_RES_ddxa_Thl_SBG_UaW , .TRUE. )
+    *MZF(ZFLXZ)), X_LES_RES_ddxa_Thl_SBG_UaW , .TRUE. )
     IF (KRR>=1) THEN
       CALL LES_MEAN_SUBGRID( MYF(GY_V_M(KKA,KKU,KKL,PRM(:,:,:,1),PDYY,PDZZ,&
-      PDZY)*MZF(KKA,KKU,KKL,ZFLXZ)),X_LES_RES_ddxa_Rt_SBG_UaW , .TRUE. )
+      PDZY)*MZF(ZFLXZ)),X_LES_RES_ddxa_Rt_SBG_UaW , .TRUE. )
     END IF
 #else
 !$acc data copy(X_LES_RES_ddxa_W_SBG_UaW,X_LES_RES_ddxa_Thl_SBG_UaW,X_LES_RES_ddxa_Rt_SBG_UaW)
diff --git a/src/MNH/turb_ver_sv_corr.f90 b/src/MNH/turb_ver_sv_corr.f90
index cdac705065b008b6669450c203d04420c9e671e3..1b5f2ed4013ee68410f839dbf425e3e6dd7f2821 100644
--- a/src/MNH/turb_ver_sv_corr.f90
+++ b/src/MNH/turb_ver_sv_corr.f90
@@ -1,4 +1,4 @@
-!MNH_LIC Copyright 2002-2019 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 2002-2020 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
 !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
@@ -223,9 +223,9 @@ DO JSV=1,NSV
 #else
     ZFLXZ(:,:,:) =  PPSI_SV(:,:,:,JSV)*BR_P2(GZ_M_W(KKA,KKU,KKL,PSVM(:,:,:,JSV),PDZZ))
 #endif
-    ZFLXZ(:,:,:) = ZCSV / ZCSVD * PLM * PLEPS * MZF(KKA,KKU,KKL,ZFLXZ(:,:,:) )
+    ZFLXZ(:,:,:) = ZCSV / ZCSVD * PLM * PLEPS * MZF(ZFLXZ(:,:,:) )
     CALL LES_MEAN_SUBGRID( -2.*ZCSVD*SQRT(PTKEM)*ZFLXZ/PLEPS, X_LES_SUBGRID_DISS_Sv2(:,:,:,JSV) )
-    CALL LES_MEAN_SUBGRID( MZF(KKA,KKU,KKL,PWM)*ZFLXZ, X_LES_RES_W_SBG_Sv2(:,:,:,JSV) )
+    CALL LES_MEAN_SUBGRID( MZF(PWM)*ZFLXZ, X_LES_RES_W_SBG_Sv2(:,:,:,JSV) )
   END IF
   !
   ! covariance ThvSv
@@ -243,7 +243,7 @@ call Print_msg( NVERB_WARNING, 'GEN', 'TURB_VER_SV_CORR', 'OpenACC: LLES_CALL no
     ZFLXZ(:,:,:)= ( XCSHF * PPHI3 + ZCSV * PPSI_SV(:,:,:,JSV) )              &
                   *  GZ_M_W(KKA,KKU,KKL,PTHLM,PDZZ)                          &
                   *  GZ_M_W(KKA,KKU,KKL,PSVM(:,:,:,JSV),PDZZ)
-    ZFLXZ(:,:,:)= PLM * PLEPS / (2.*ZCTSVD) * MZF(KKA,KKU,KKL,ZFLXZ)
+    ZFLXZ(:,:,:)= PLM * PLEPS / (2.*ZCTSVD) * MZF(ZFLXZ)
     CALL LES_MEAN_SUBGRID( ZA*ZFLXZ, X_LES_SUBGRID_SvThv(:,:,:,JSV) ) 
     CALL LES_MEAN_SUBGRID( -XG/PTHVREF/3.*ZA*ZFLXZ, X_LES_SUBGRID_SvPz(:,:,:,JSV), .TRUE.)
     !
@@ -258,7 +258,7 @@ call Print_msg( NVERB_WARNING, 'GEN', 'TURB_VER_SV_CORR', 'OpenACC: LLES_CALL no
       ZFLXZ(:,:,:)= ( XCHF * PPSI3 + ZCSV * PPSI_SV(:,:,:,JSV) )             &
                     *  GZ_M_W(KKA,KKU,KKL,PRM(:,:,:,1),PDZZ)                 &
                     *  GZ_M_W(KKA,KKU,KKL,PSVM(:,:,:,JSV),PDZZ)
-      ZFLXZ(:,:,:)= PLM * PLEPS / (2.*ZCQSVD) * MZF(KKA,KKU,KKL,ZFLXZ)
+      ZFLXZ(:,:,:)= PLM * PLEPS / (2.*ZCQSVD) * MZF(ZFLXZ)
       CALL LES_MEAN_SUBGRID( ZA*ZFLXZ, X_LES_SUBGRID_SvThv(:,:,:,JSV) , .TRUE.)
       CALL LES_MEAN_SUBGRID( -XG/PTHVREF/3.*ZA*ZFLXZ, X_LES_SUBGRID_SvPz(:,:,:,JSV), .TRUE.)
     END IF
diff --git a/src/MNH/turb_ver_sv_flux.f90 b/src/MNH/turb_ver_sv_flux.f90
index 6a2f8fcba1a92ee14544c1bc0ef0b49f053c1331..cf6b79fa3b697a1baeff8fe015b9cb4bb82a4bf3 100644
--- a/src/MNH/turb_ver_sv_flux.f90
+++ b/src/MNH/turb_ver_sv_flux.f90
@@ -1,4 +1,4 @@
-!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 1994-2020 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
 !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
@@ -404,7 +404,7 @@ IKTB =1+JPVEXT_TURB
 !
 ISV=SIZE(PSVM,4)
 !
-ZKEFF(:,:,:) = MZM(KKA,KKU,KKL, PLM(:,:,:) * SQRT(PTKEM(:,:,:)) )
+ZKEFF(:,:,:) = MZM( PLM(:,:,:) * SQRT(PTKEM(:,:,:)) )
 !
 IF(LBLOWSNOW) THEN
 ! See Vionnet (PhD, 2012) for a complete discussion around the value of the Schmidt number for blowing snow variables           
@@ -423,7 +423,7 @@ DO JSV=1,ISV
 !
 ! Preparation of the arguments for TRIDIAG 
   ZA(:,:,:)    = -PTSTEP*ZCSV*PPSI_SV(:,:,:,JSV) *   &
-                 ZKEFF * MZM(KKA,KKU,KKL,PRHODJ) /   &
+                 ZKEFF * MZM(PRHODJ) /   &
 #ifndef MNH_BITREP
                  PDZZ**2
 #else
@@ -460,8 +460,8 @@ DO JSV=1,ISV
   IF ( (OTURB_FLX .AND. OCLOSE_OUT) .OR. LLES_CALL ) THEN
     ! Diagnostic of the cartesian vertical flux
     !
-    ZFLXZ(:,:,:) = -ZCSV * PPSI_SV(:,:,:,JSV) * MZM(KKA,KKU,KKL,PLM*SQRT(PTKEM)) / PDZZ * &
-                  DZM(KKA,KKU,KKL, PIMPL*ZRES(:,:,:) + PEXPL*PSVM(:,:,:,JSV) )
+    ZFLXZ(:,:,:) = -ZCSV * PPSI_SV(:,:,:,JSV) * MZM(PLM*SQRT(PTKEM)) / PDZZ * &
+                  DZM( PIMPL*ZRES(:,:,:) + PEXPL*PSVM(:,:,:,JSV) )
     ! surface flux
     !* in 3DIM case, a part of the flux goes vertically, and another goes horizontally
     ! (in presence of slopes)
@@ -505,13 +505,13 @@ DO JSV=1,ISV
   !
   IF (LLES_CALL) THEN
     CALL SECOND_MNH(ZTIME1)
-    CALL LES_MEAN_SUBGRID( MZF(KKA,KKU,KKL,ZFLXZ), X_LES_SUBGRID_WSv(:,:,:,JSV) )
-    CALL LES_MEAN_SUBGRID( GZ_W_M(KKA,KKU,KKL,PWM,PDZZ)*MZF(KKA,KKU,KKL,ZFLXZ), &
+    CALL LES_MEAN_SUBGRID( MZF(ZFLXZ), X_LES_SUBGRID_WSv(:,:,:,JSV) )
+    CALL LES_MEAN_SUBGRID( GZ_W_M(KKA,KKU,KKL,PWM,PDZZ)*MZF(ZFLXZ), &
                            X_LES_RES_ddxa_W_SBG_UaSv(:,:,:,JSV) )
-    CALL LES_MEAN_SUBGRID( MZF(KKA,KKU,KKL,GZ_M_W(KKA,KKU,KKL,PSVM(:,:,:,JSV),PDZZ)*ZFLXZ), &
+    CALL LES_MEAN_SUBGRID( MZF(GZ_M_W(KKA,KKU,KKL,PSVM(:,:,:,JSV),PDZZ)*ZFLXZ), &
                            X_LES_RES_ddxa_Sv_SBG_UaSv(:,:,:,JSV) )
-    CALL LES_MEAN_SUBGRID( -ZCSVP*SQRT(PTKEM)/PLM*MZF(KKA,KKU,KKL,ZFLXZ), X_LES_SUBGRID_SvPz(:,:,:,JSV) )
-    CALL LES_MEAN_SUBGRID( MZF(KKA,KKU,KKL,PWM*ZFLXZ), X_LES_RES_W_SBG_WSv(:,:,:,JSV) )
+    CALL LES_MEAN_SUBGRID( -ZCSVP*SQRT(PTKEM)/PLM*MZF(ZFLXZ), X_LES_SUBGRID_SvPz(:,:,:,JSV) )
+    CALL LES_MEAN_SUBGRID( MZF(PWM*ZFLXZ), X_LES_RES_W_SBG_WSv(:,:,:,JSV) )
     CALL SECOND_MNH(ZTIME2)
     XTIME_LES = XTIME_LES + ZTIME2 - ZTIME1
   END IF
diff --git a/src/MNH/turb_ver_thermo_corr.f90 b/src/MNH/turb_ver_thermo_corr.f90
index 000e3cf61d70bfc03b38eeb0281ff2160923a7af..a10e618784c22ccdcb3c8c92b8451e609f1d3b56 100644
--- a/src/MNH/turb_ver_thermo_corr.f90
+++ b/src/MNH/turb_ver_thermo_corr.f90
@@ -1,4 +1,4 @@
-!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 1994-2020 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
 !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
@@ -502,7 +502,7 @@ ZCOEFF(:,:,IKB)= - (PDZZ(:,:,IKB+2*KKL)+2.*PDZZ(:,:,IKB+KKL)) /      &
        ( (PDZZ(:,:,IKB+2*KKL)+PDZZ(:,:,IKB+KKL)) * PDZZ(:,:,IKB+KKL) )
 !
 #ifndef MNH_OPENACC
-ZKEFF(:,:,:) = MZM(KKA,KKU,KKL, PLM(:,:,:) * SQRT(PTKEM(:,:,:)) )
+ZKEFF(:,:,:) = MZM( PLM(:,:,:) * SQRT(PTKEM(:,:,:)) )
 #else
 ZTMP1_DEVICE(:,:,:) = PLM(:,:,:) * SQRT(PTKEM(:,:,:))
 !$acc end kernels
@@ -536,9 +536,9 @@ END IF
 ! Compute the turbulent variance F and F' at time t-dt.
 #ifndef MNH_OPENACC
 #ifndef MNH_BITREP
-  ZF      (:,:,:) = XCTV*PLM(:,:,:)*PLEPS(:,:,:)*MZF(KKA,KKU,KKL,PPHI3(:,:,:)*PDTH_DZ(:,:,:)**2)
+  ZF      (:,:,:) = XCTV*PLM(:,:,:)*PLEPS(:,:,:)*MZF(PPHI3(:,:,:)*PDTH_DZ(:,:,:)**2)
 #else
-  ZF      (:,:,:) = XCTV*PLM(:,:,:)*PLEPS(:,:,:)*MZF(KKA,KKU,KKL,PPHI3(:,:,:)*BR_P2(PDTH_DZ(:,:,:)))
+  ZF      (:,:,:) = XCTV*PLM(:,:,:)*PLEPS(:,:,:)*MZF(PPHI3(:,:,:)*BR_P2(PDTH_DZ(:,:,:)))
 #endif
   ZDFDDTDZ(:,:,:) = 0.     ! this term, because of discretization, is treated separately
 #else
@@ -584,9 +584,9 @@ END IF
 #ifndef MNH_OPENACC
   IF (GFWTH) THEN
     ZF(:,:,:)       = ZF(:,:,:)       + M3_TH2_W2TH(KKA,KKU,KKL,PREDTH1(:,:,:),PREDR1(:,:,:),PD(:,:,:),PDTH_DZ(:,:,:),&
-     & PLM(:,:,:),PLEPS(:,:,:),PTKEM(:,:,:)) * MZF(KKA,KKU,KKL,PFWTH(:,:,:))
+     & PLM(:,:,:),PLEPS(:,:,:),PTKEM(:,:,:)) * MZF(PFWTH(:,:,:))
     ZDFDDTDZ(:,:,:) = ZDFDDTDZ(:,:,:) + D_M3_TH2_W2TH_O_DDTDZ(KKA,KKU,KKL,PREDTH1(:,:,:),PREDR1(:,:,:),PD(:,:,:),&
-     & PLM(:,:,:),PLEPS(:,:,:),PTKEM(:,:,:),GUSERV) * MZF(KKA,KKU,KKL,PFWTH(:,:,:))
+     & PLM(:,:,:),PLEPS(:,:,:),PTKEM(:,:,:),GUSERV) * MZF(PFWTH(:,:,:))
   END IF
 #else
   IF (GFWTH) THEN
@@ -632,9 +632,9 @@ END IF
 #ifndef MNH_OPENACC
     IF (GFWR) THEN
       ZF(:,:,:)       = ZF(:,:,:)       + M3_TH2_W2R(KKA,KKU,KKL,PD(:,:,:),PLM(:,:,:),PLEPS(:,:,:),PTKEM(:,:,:),PBLL_O_E(:,:,:),&
-       & PEMOIST(:,:,:),PDTH_DZ(:,:,:)) * MZF(KKA,KKU,KKL,PFWR(:,:,:))
+       & PEMOIST(:,:,:),PDTH_DZ(:,:,:)) * MZF(PFWR(:,:,:))
       ZDFDDTDZ(:,:,:) = ZDFDDTDZ(:,:,:) + D_M3_TH2_W2R_O_DDTDZ(KKA,KKU,KKL,PREDTH1(:,:,:),PREDR1(:,:,:),PD(:,:,:),&
-       & PLM(:,:,:),PLEPS(:,:,:),PTKEM(:,:,:),PBLL_O_E(:,:,:),PEMOIST(:,:,:),PDTH_DZ(:,:,:)) * MZF(KKA,KKU,KKL,PFWR(:,:,:))
+       & PLM(:,:,:),PLEPS(:,:,:),PTKEM(:,:,:),PBLL_O_E(:,:,:),PEMOIST(:,:,:),PDTH_DZ(:,:,:)) * MZF(PFWR(:,:,:))
     END IF
 #else
     IF (GFWR) THEN
@@ -680,10 +680,10 @@ END IF
 #ifndef MNH_OPENACC
   ZFLXZ(:,:,:)   = ZF(:,:,:)                                                              &
   !     + PIMPL * XCTV*PLM(:,:,:)*PLEPS(:,:,:)                                                   &
-  !        *MZF(KKA,KKU,KKL,D_PHI3DTDZ2_O_DDTDZ(PPHI3(:,:,:),PREDTH1(:,:,:),PREDR1(:,:,:),PRED2TH3(:,:,:),&
+  !        *MZF(D_PHI3DTDZ2_O_DDTDZ(PPHI3(:,:,:),PREDTH1(:,:,:),PREDR1(:,:,:),PRED2TH3(:,:,:),&
   !                                             PRED2THR3(:,:,:),PDTH_DZ(:,:,:),HTURBDIM,GUSERV)   &
-  !             *DZM(KKA,KKU,KKL,PTHLP(:,:,:) - PTHLM(:,:,:)) / PDZZ(:,:,:)                                        ) &
-        + PIMPL * ZDFDDTDZ(:,:,:) * MZF(KKA,KKU,KKL,DZM(KKA,KKU,KKL,PTHLP(:,:,:) - PTHLM(:,:,:)) / PDZZ(:,:,:) )
+  !             *DZM(PTHLP(:,:,:) - PTHLM(:,:,:)) / PDZZ(:,:,:)                                        ) &
+        + PIMPL * ZDFDDTDZ(:,:,:) * MZF(DZM(PTHLP(:,:,:) - PTHLM(:,:,:)) / PDZZ(:,:,:) )
 #else
   ZTMP1_DEVICE(:,:,:) = PTHLP(:,:,:) - PTHLM(:,:,:)
   CALL DZM_DEVICE(KKA,KKU,KKL,ZTMP1_DEVICE(:,:,:),ZTMP2_DEVICE(:,:,:))
@@ -758,7 +758,7 @@ END IF
     CALL SECOND_MNH(ZTIME1)
 #ifndef MNH_OPENACC
     CALL LES_MEAN_SUBGRID( ZFLXZ(:,:,:), X_LES_SUBGRID_Thl2 )
-    CALL LES_MEAN_SUBGRID( MZF(KKA,KKU,KKL,PWM(:,:,:))*ZFLXZ(:,:,:), X_LES_RES_W_SBG_Thl2 )
+    CALL LES_MEAN_SUBGRID( MZF(PWM(:,:,:))*ZFLXZ(:,:,:), X_LES_RES_W_SBG_Thl2 )
     CALL LES_MEAN_SUBGRID( -2.*XCTD*PSQRT_TKE(:,:,:)*ZFLXZ(:,:,:)/PLEPS(:,:,:), X_LES_SUBGRID_DISS_Thl2 )
     CALL LES_MEAN_SUBGRID( PETHETA(:,:,:)*ZFLXZ(:,:,:), X_LES_SUBGRID_ThlThv )
     CALL LES_MEAN_SUBGRID( -XA3*PBETA(:,:,:)*PETHETA(:,:,:)*ZFLXZ(:,:,:), X_LES_SUBGRID_ThlPz, .TRUE. )
@@ -801,7 +801,7 @@ END IF
 !
     ! Compute the turbulent variance F and F' at time t-dt.
 #ifndef MNH_OPENACC
-    ZF      (:,:,:) = XCTV*PLM(:,:,:)*PLEPS(:,:,:)*MZF(KKA,KKU,KKL,0.5*(PPHI3(:,:,:)+PPSI3(:,:,:))*PDTH_DZ(:,:,:)*PDR_DZ(:,:,:))
+    ZF      (:,:,:) = XCTV*PLM(:,:,:)*PLEPS(:,:,:)*MZF(0.5*(PPHI3(:,:,:)+PPSI3(:,:,:))*PDTH_DZ(:,:,:)*PDR_DZ(:,:,:))
 #else
 !$acc kernels
     ZTMP1_DEVICE(:,:,:) = 0.5*(PPHI3(:,:,:)+PPSI3(:,:,:))*PDTH_DZ(:,:,:)*PDR_DZ(:,:,:)
@@ -850,11 +850,11 @@ END IF
 #ifndef MNH_OPENACC
     IF (GFWTH) THEN
       ZF(:,:,:)       = ZF(:,:,:)       + M3_THR_W2TH(KKA,KKU,KKL,PREDR1(:,:,:),PD(:,:,:),PLM(:,:,:),PLEPS(:,:,:),PTKEM(:,:,:),&
-       PDR_DZ(:,:,:)) * MZF(KKA,KKU,KKL,PFWTH(:,:,:))
+       PDR_DZ(:,:,:)) * MZF(PFWTH(:,:,:))
       ZDFDDTDZ(:,:,:) = ZDFDDTDZ(:,:,:) + D_M3_THR_W2TH_O_DDTDZ(KKA,KKU,KKL,PREDTH1(:,:,:),PREDR1(:,:,:),&
-       PD(:,:,:),PLM(:,:,:),PLEPS(:,:,:),PTKEM(:,:,:),PBLL_O_E(:,:,:),PDR_DZ(:,:,:),PETHETA(:,:,:)) * MZF(KKA,KKU,KKL,PFWTH(:,:,:))
+       PD(:,:,:),PLM(:,:,:),PLEPS(:,:,:),PTKEM(:,:,:),PBLL_O_E(:,:,:),PDR_DZ(:,:,:),PETHETA(:,:,:)) * MZF(PFWTH(:,:,:))
       ZDFDDRDZ(:,:,:) = ZDFDDRDZ(:,:,:) + D_M3_THR_W2TH_O_DDRDZ(KKA,KKU,KKL,PREDTH1(:,:,:),PREDR1(:,:,:),&
-       PD(:,:,:),PLM(:,:,:),PLEPS(:,:,:),PTKEM(:,:,:)) * MZF(KKA,KKU,KKL,PFWTH(:,:,:))
+       PD(:,:,:),PLM(:,:,:),PLEPS(:,:,:),PTKEM(:,:,:)) * MZF(PFWTH(:,:,:))
     END IF
 #else
     IF (GFWTH) THEN
@@ -911,11 +911,11 @@ END IF
 #ifndef MNH_OPENACC
     IF (GFWR) THEN
       ZF(:,:,:)       = ZF(:,:,:)       + M3_THR_W2R(KKA,KKU,KKL,PREDTH1(:,:,:),PD(:,:,:),PLM(:,:,:),PLEPS(:,:,:),PTKEM(:,:,:),&
-      & PDTH_DZ(:,:,:)) * MZF(KKA,KKU,KKL,PFWR(:,:,:))
+      & PDTH_DZ(:,:,:)) * MZF(PFWR(:,:,:))
       ZDFDDTDZ(:,:,:) = ZDFDDTDZ(:,:,:) + D_M3_THR_W2R_O_DDTDZ(KKA,KKU,KKL,PREDR1(:,:,:),PREDTH1(:,:,:),PD(:,:,:),&
-      & PLM(:,:,:),PLEPS(:,:,:),PTKEM(:,:,:)) * MZF(KKA,KKU,KKL,PFWR(:,:,:))
+      & PLM(:,:,:),PLEPS(:,:,:),PTKEM(:,:,:)) * MZF(PFWR(:,:,:))
       ZDFDDRDZ(:,:,:) = ZDFDDRDZ(:,:,:) + D_M3_THR_W2R_O_DDRDZ(KKA,KKU,KKL,PREDR1(:,:,:),PREDTH1(:,:,:),PD(:,:,:),&
-      & PLM(:,:,:),PLEPS(:,:,:),PTKEM(:,:,:),PBLL_O_E(:,:,:),PDTH_DZ(:,:,:),PEMOIST(:,:,:)) * MZF(KKA,KKU,KKL,PFWR(:,:,:))
+      & PLM(:,:,:),PLEPS(:,:,:),PTKEM(:,:,:),PBLL_O_E(:,:,:),PDTH_DZ(:,:,:),PEMOIST(:,:,:)) * MZF(PFWR(:,:,:))
     END IF
 #else
     IF (GFWR) THEN
@@ -971,19 +971,19 @@ END IF
 #ifndef MNH_OPENACC
     ZFLXZ(:,:,:)   = ZF(:,:,:)                                                     &
         + PIMPL * XCTV*PLM(:,:,:)*PLEPS(:,:,:)*0.5                                        &
-          * MZF(KKA,KKU,KKL, ( D_PHI3DTDZ_O_DDTDZ(PPHI3(:,:,:),PREDTH1(:,:,:),PREDR1(:,:,:), &
+          * MZF( ( D_PHI3DTDZ_O_DDTDZ(PPHI3(:,:,:),PREDTH1(:,:,:),PREDR1(:,:,:), &
                                                   PRED2TH3(:,:,:),PRED2THR3(:,:,:),HTURBDIM,GUSERV) & ! d(phi3*dthdz)/ddthdz term
                   +D_PSI3DTDZ_O_DDTDZ(PPSI3(:,:,:),PREDR1(:,:,:),PREDTH1(:,:,:),PRED2R3(:,:,:), &
                                       PRED2THR3(:,:,:),HTURBDIM,GUSERV) & ! d(psi3*dthdz)/ddthdz term
-                 ) *PDR_DZ(:,:,:)  *DZM(KKA,KKU,KKL,PTHLP(:,:,:) - PTHLM(:,:,:)       ) / PDZZ(:,:,:)               &
+                 ) *PDR_DZ(:,:,:)  *DZM(PTHLP(:,:,:) - PTHLM(:,:,:)       ) / PDZZ(:,:,:)               &
                 +( D_PHI3DRDZ_O_DDRDZ(PPHI3(:,:,:),PREDTH1(:,:,:),PREDR1(:,:,:),PRED2TH3(:,:,:), &
                                       PRED2THR3(:,:,:),HTURBDIM,GUSERV) & ! d(phi3*drdz )/ddrdz term
                   +D_PSI3DRDZ_O_DDRDZ(PPSI3(:,:,:),PREDR1(:,:,:),PREDTH1(:,:,:),PRED2R3(:,:,:), &
                                       PRED2THR3(:,:,:),HTURBDIM,GUSERV) & ! d(psi3*drdz )/ddrdz term
-                 ) *PDTH_DZ(:,:,:) *DZM(KKA,KKU,KKL,PRP(:,:,:)   - PRM(:,:,:,1)) / PDZZ(:,:,:)               &
+                 ) *PDTH_DZ(:,:,:) *DZM(PRP(:,:,:)   - PRM(:,:,:,1)) / PDZZ(:,:,:)               &
                )                                                            &
-        + PIMPL * ZDFDDTDZ(:,:,:) * MZF(KKA,KKU,KKL,DZM(KKA,KKU,KKL,PTHLP(:,:,:) - PTHLM(:,:,:)) / PDZZ(:,:,:) )         &
-        + PIMPL * ZDFDDRDZ(:,:,:) * MZF(KKA,KKU,KKL,DZM(KKA,KKU,KKL,PRP(:,:,:)   - PRM(:,:,:,1)) / PDZZ(:,:,:) )
+        + PIMPL * ZDFDDTDZ(:,:,:) * MZF(DZM(PTHLP(:,:,:) - PTHLM(:,:,:)) / PDZZ(:,:,:) )         &
+        + PIMPL * ZDFDDRDZ(:,:,:) * MZF(DZM(PRP(:,:,:)   - PRM(:,:,:,1)) / PDZZ(:,:,:) )
 #else
     !$acc kernels
     ZTMP1_DEVICE(:,:,:) = PTHLP(:,:,:) - PTHLM(:,:,:)
@@ -1084,7 +1084,7 @@ END IF
       CALL SECOND_MNH(ZTIME1)
 #ifndef MNH_OPENACC
       CALL LES_MEAN_SUBGRID( ZFLXZ(:,:,:), X_LES_SUBGRID_THlRt )
-      CALL LES_MEAN_SUBGRID( MZF(KKA,KKU,KKL,PWM(:,:,:))*ZFLXZ(:,:,:), X_LES_RES_W_SBG_ThlRt )
+      CALL LES_MEAN_SUBGRID( MZF(PWM(:,:,:))*ZFLXZ(:,:,:), X_LES_RES_W_SBG_ThlRt )
       CALL LES_MEAN_SUBGRID( -2.*XCTD*PSQRT_TKE(:,:,:)*ZFLXZ(:,:,:)/PLEPS(:,:,:), X_LES_SUBGRID_DISS_ThlRt )
       CALL LES_MEAN_SUBGRID( PETHETA(:,:,:)*ZFLXZ(:,:,:), X_LES_SUBGRID_RtThv )
       CALL LES_MEAN_SUBGRID( -XA3*PBETA(:,:,:)*PETHETA(:,:,:)*ZFLXZ(:,:,:), X_LES_SUBGRID_RtPz, .TRUE. )
@@ -1140,9 +1140,9 @@ END IF
     ! Compute the turbulent variance F and F' at time t-dt.
 #ifndef MNH_OPENACC
 #ifndef MNH_BITREP
-    ZF      (:,:,:) = XCTV*PLM(:,:,:)*PLEPS(:,:,:)*MZF(KKA,KKU,KKL,PPSI3(:,:,:)*PDR_DZ(:,:,:)**2)
+    ZF      (:,:,:) = XCTV*PLM(:,:,:)*PLEPS(:,:,:)*MZF(PPSI3(:,:,:)*PDR_DZ(:,:,:)**2)
 #else
-    ZF      (:,:,:) = XCTV*PLM(:,:,:)*PLEPS(:,:,:)*MZF(KKA,KKU,KKL,PPSI3(:,:,:)*BR_P2(PDR_DZ(:,:,:)))
+    ZF      (:,:,:) = XCTV*PLM(:,:,:)*PLEPS(:,:,:)*MZF(PPSI3(:,:,:)*BR_P2(PDR_DZ(:,:,:)))
 #endif
 #else
     !$acc kernels
@@ -1188,9 +1188,9 @@ END IF
 #ifndef MNH_OPENACC
     IF (GFWR) THEN
       ZF(:,:,:)       = ZF(:,:,:)       + M3_R2_W2R(KKA,KKU,KKL,PREDR1(:,:,:),PREDTH1(:,:,:),PD(:,:,:),PDR_DZ(:,:,:),&
-      & PLM(:,:,:),PLEPS(:,:,:),PTKEM(:,:,:)) * MZF(KKA,KKU,KKL,PFWR(:,:,:))
+      & PLM(:,:,:),PLEPS(:,:,:),PTKEM(:,:,:)) * MZF(PFWR(:,:,:))
       ZDFDDRDZ(:,:,:) = ZDFDDRDZ(:,:,:) + D_M3_R2_W2R_O_DDRDZ(KKA,KKU,KKL,PREDR1(:,:,:),PREDTH1(:,:,:),&
-      & PD(:,:,:),PLM(:,:,:),PLEPS(:,:,:),PTKEM(:,:,:),GUSERV) * MZF(KKA,KKU,KKL,PFWR(:,:,:))
+      & PD(:,:,:),PLM(:,:,:),PLEPS(:,:,:),PTKEM(:,:,:),GUSERV) * MZF(PFWR(:,:,:))
     END IF
 #else
     IF (GFWR) THEN
@@ -1236,10 +1236,10 @@ END IF
 #ifndef MNH_OPENACC
       IF (GFWTH) THEN
         ZF(:,:,:)       = ZF(:,:,:)       + M3_R2_W2TH(KKA,KKU,KKL,PD(:,:,:),PLM(:,:,:),PLEPS(:,:,:),PTKEM(:,:,:),&
-          PBLL_O_E(:,:,:),PETHETA(:,:,:),PDR_DZ(:,:,:)) * MZF(KKA,KKU,KKL,PFWTH(:,:,:))
+          PBLL_O_E(:,:,:),PETHETA(:,:,:),PDR_DZ(:,:,:)) * MZF(PFWTH(:,:,:))
         ZDFDDRDZ(:,:,:) = ZDFDDRDZ(:,:,:) + D_M3_R2_W2TH_O_DDRDZ(KKA,KKU,KKL,PREDR1(:,:,:),PREDTH1(:,:,:),&
           PD(:,:,:),PLM(:,:,:),PLEPS(:,:,:),PTKEM(:,:,:),PBLL_O_E(:,:,:),PETHETA(:,:,:),PDR_DZ(:,:,:))  &
-          * MZF(KKA,KKU,KKL,PFWTH(:,:,:))
+          * MZF(PFWTH(:,:,:))
       END IF
 #else
       IF (GFWTH) THEN
@@ -1285,10 +1285,10 @@ END IF
 #ifndef MNH_OPENACC
     ZFLXZ(:,:,:)   = ZF(:,:,:)                                                              &
           + PIMPL * XCTV*PLM(:,:,:)*PLEPS(:,:,:)                                                   &
-            *MZF(KKA,KKU,KKL,D_PSI3DRDZ2_O_DDRDZ(PPSI3(:,:,:),PREDR1(:,:,:),PREDTH1(:,:,:),PRED2R3(:,:,:),PRED2THR3(:,:,:), &
+            *MZF(D_PSI3DRDZ2_O_DDRDZ(PPSI3(:,:,:),PREDR1(:,:,:),PREDTH1(:,:,:),PRED2R3(:,:,:),PRED2THR3(:,:,:), &
                                                  PDR_DZ(:,:,:),HTURBDIM,GUSERV)    &
-                 *DZM(KKA,KKU,KKL,PRP(:,:,:) - PRM(:,:,:,1)) / PDZZ(:,:,:)                                   ) &
-          + PIMPL * ZDFDDRDZ(:,:,:) * MZF(KKA,KKU,KKL,DZM(KKA,KKU,KKL,PRP(:,:,:) - PRM(:,:,:,1)) / PDZZ(:,:,:) )
+                 *DZM(PRP(:,:,:) - PRM(:,:,:,1)) / PDZZ(:,:,:)                                   ) &
+          + PIMPL * ZDFDDRDZ(:,:,:) * MZF(DZM(PRP(:,:,:) - PRM(:,:,:,1)) / PDZZ(:,:,:) )
 #else
     CALL D_PSI3DRDZ2_O_DDRDZ(PPSI3(:,:,:),PREDR1(:,:,:),PREDTH1(:,:,:),PRED2R3(:,:,:),PRED2THR3(:,:,:),PDR_DZ(:,:,:), &
                              HTURBDIM,GUSERV,ZTMP1_DEVICE(:,:,:))
@@ -1369,7 +1369,7 @@ END IF
       CALL SECOND_MNH(ZTIME1)
 #ifndef MNH_OPENACC
       CALL LES_MEAN_SUBGRID( ZFLXZ(:,:,:), X_LES_SUBGRID_Rt2 )
-      CALL LES_MEAN_SUBGRID( MZF(KKA,KKU,KKL,PWM(:,:,:))*ZFLXZ(:,:,:), X_LES_RES_W_SBG_Rt2 )
+      CALL LES_MEAN_SUBGRID( MZF(PWM(:,:,:))*ZFLXZ(:,:,:), X_LES_RES_W_SBG_Rt2 )
       CALL LES_MEAN_SUBGRID( PEMOIST(:,:,:)*ZFLXZ(:,:,:), X_LES_SUBGRID_RtThv , .TRUE. )
       CALL LES_MEAN_SUBGRID( -XA3*PBETA(:,:,:)*PEMOIST(:,:,:)*ZFLXZ(:,:,:), X_LES_SUBGRID_RtPz, .TRUE. )
       CALL LES_MEAN_SUBGRID( -2.*XCTD*PSQRT_TKE(:,:,:)*ZFLXZ(:,:,:)/PLEPS(:,:,:), X_LES_SUBGRID_DISS_Rt2 )
diff --git a/src/MNH/turb_ver_thermo_flux.f90 b/src/MNH/turb_ver_thermo_flux.f90
index 770c4cf96d51798455a2e30723040c80be28559d..1e0baf89868ed3a953387b65cbfa2b78be35a241 100644
--- a/src/MNH/turb_ver_thermo_flux.f90
+++ b/src/MNH/turb_ver_thermo_flux.f90
@@ -1,4 +1,4 @@
-!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 1994-2020 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
 !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
@@ -567,7 +567,7 @@ GUSERV = (KRR/=0)
 !  ground
 !
 #ifndef MNH_OPENACC
-ZKEFF(:,:,:) = MZM(KKA,KKU,KKL, PLM(:,:,:) * SQRT(PTKEM(:,:,:)) )
+ZKEFF(:,:,:) = MZM( PLM(:,:,:) * SQRT(PTKEM(:,:,:)) )
 #else
 !$acc kernels
 ZTMP1_DEVICE(:,:,:) = PLM(:,:,:) * SQRT(PTKEM(:,:,:))
@@ -601,7 +601,7 @@ END IF
 ! Compute the turbulent flux F and F' at time t-dt.
 !
 #ifndef MNH_OPENACC
-ZF      (:,:,:) = -XCSHF*PPHI3(:,:,:)*ZKEFF(:,:,:)*DZM(KKA,KKU,KKL,PTHLM)/PDZZ(:,:,:)
+ZF      (:,:,:) = -XCSHF*PPHI3(:,:,:)*ZKEFF(:,:,:)*DZM(PTHLM)/PDZZ(:,:,:)
 ZDFDDTDZ(:,:,:) = -XCSHF*ZKEFF(:,:,:)*D_PHI3DTDZ_O_DDTDZ(PPHI3,PREDTH1,PREDR1,PRED2TH3,PRED2THR3,HTURBDIM,GUSERV)
 #else
 CALL DZM_DEVICE(KKA,KKU,KKL,PTHLM,ZTMP1_DEVICE)
@@ -646,9 +646,9 @@ END IF
 IF (GFTH2) THEN
   Z3RDMOMENT(:,:,:)= M3_WTH_WTH2(PREDTH1,PREDR1,PD,PBLL_O_E,PETHETA)
 !
-  ZF(:,:,:)       = ZF(:,:,:)       + Z3RDMOMENT(:,:,:) * MZM(KKA,KKU,KKL,PFTH2)
+  ZF(:,:,:)       = ZF(:,:,:)       + Z3RDMOMENT(:,:,:) * MZM(PFTH2)
   ZDFDDTDZ(:,:,:) = ZDFDDTDZ(:,:,:) + D_M3_WTH_WTH2_O_DDTDZ(Z3RDMOMENT,PREDTH1,PREDR1,&
-    & PD,PBLL_O_E,PETHETA) * MZM(KKA,KKU,KKL,PFTH2)
+    & PD,PBLL_O_E,PETHETA) * MZM(PFTH2)
 END IF
 #else
 IF (GFTH2) THEN
@@ -694,9 +694,9 @@ END IF
 #ifndef MNH_OPENACC
 IF (GFR2) THEN
   ZF(:,:,:)       = ZF(:,:,:)       + M3_WTH_WR2(KKA,KKU,KKL,PREDTH1,PREDR1,PD,ZKEFF,PTKEM,&
-    & PSQRT_TKE,PBLL_O_E,PBETA,PLEPS,PEMOIST,PDTH_DZ) * MZM(KKA,KKU,KKL,PFR2)
+    & PSQRT_TKE,PBLL_O_E,PBETA,PLEPS,PEMOIST,PDTH_DZ) * MZM(PFR2)
   ZDFDDTDZ(:,:,:) = ZDFDDTDZ(:,:,:) + D_M3_WTH_WR2_O_DDTDZ(KKA,KKU,KKL,PREDTH1,PREDR1,PD,&
-    & ZKEFF,PTKEM,PSQRT_TKE,PBLL_O_E,PBETA,PLEPS,PEMOIST) * MZM(KKA,KKU,KKL,PFR2)
+    & ZKEFF,PTKEM,PSQRT_TKE,PBLL_O_E,PBETA,PLEPS,PEMOIST) * MZM(PFR2)
 END IF
 #else
 IF (GFR2) THEN
@@ -720,9 +720,9 @@ END IF
 IF (GFTHR) THEN
   Z3RDMOMENT(:,:,:)= M3_WTH_WTHR(KKA,KKU,KKL,PREDR1,PD,ZKEFF,PTKEM,PSQRT_TKE,PBETA,PLEPS,PEMOIST)
 !
-  ZF(:,:,:)       = ZF(:,:,:)       + Z3RDMOMENT(:,:,:) * MZM(KKA,KKU,KKL,PFTHR)
+  ZF(:,:,:)       = ZF(:,:,:)       + Z3RDMOMENT(:,:,:) * MZM(PFTHR)
   ZDFDDTDZ(:,:,:) = ZDFDDTDZ(:,:,:) + D_M3_WTH_WTHR_O_DDTDZ(Z3RDMOMENT,PREDTH1,&
-    & PREDR1,PD,PBLL_O_E,PETHETA) * MZM(KKA,KKU,KKL,PFTHR)
+    & PREDR1,PD,PBLL_O_E,PETHETA) * MZM(PFTHR)
 END IF
 #else
 IF (GFTHR) THEN
@@ -776,7 +776,7 @@ PRTHLS(:,:,:)= PRTHLS(:,:,:)  +    &
 !
 #ifndef MNH_OPENACC
 ZFLXZ(:,:,:)   = ZF(:,:,:)                                                &
-               + PIMPL * ZDFDDTDZ(:,:,:) * DZM(KKA,KKU,KKL,PTHLP - PTHLM(:,:,:)) / PDZZ(:,:,:)
+               + PIMPL * ZDFDDTDZ(:,:,:) * DZM(PTHLP - PTHLM(:,:,:)) / PDZZ(:,:,:)
 #else
 !$acc kernels
 ZTMP1_DEVICE(:,:,:) = PTHLP(:,:,:) - PTHLM(:,:,:)
@@ -816,11 +816,11 @@ END IF
 ! Contribution of the conservative temperature flux to the buoyancy flux
 #ifndef MNH_OPENACC
 IF (KRR /= 0) THEN
-  PTP(:,:,:)  =  PBETA(:,:,:) * MZF(KKA,KKU,KKL, MZM(KKA,KKU,KKL,PETHETA) * ZFLXZ(:,:,:) )
+  PTP(:,:,:)  =  PBETA(:,:,:) * MZF( MZM(PETHETA) * ZFLXZ(:,:,:) )
   PTP(:,:,IKB)=  PBETA(:,:,IKB) * PETHETA(:,:,IKB) *   &
                  0.5 * ( ZFLXZ(:,:,IKB) + ZFLXZ(:,:,IKB+KKL) )
 ELSE
-  PTP(:,:,:)=  PBETA(:,:,:) * MZF(KKA,KKU,KKL, ZFLXZ )
+  PTP(:,:,:)=  PBETA(:,:,:) * MZF( ZFLXZ )
 END IF
 #else
 IF (KRR /= 0) THEN
@@ -845,7 +845,7 @@ END IF
 ! Buoyancy flux at flux points
 ! 
 #ifndef MNH_OPENACC
-PWTHV(:,:,:) = MZM(KKA,KKU,KKL,PETHETA) * ZFLXZ(:,:,:)
+PWTHV(:,:,:) = MZM(PETHETA) * ZFLXZ(:,:,:)
 #else
 CALL MZM_DEVICE(PETHETA,ZTMP1_DEVICE)
 !$acc kernels
@@ -860,14 +860,14 @@ PWTHV(:,:,IKB) = PETHETA(:,:,IKB) * ZFLXZ(:,:,IKB)
 IF ( KRRL >= 1 ) THEN
   IF ( KRRI >= 1 ) THEN
     PRRS(:,:,:,2) = PRRS(:,:,:,2) -                                        &
-                    DZF(KKA,KKU,KKL, MZM(KKA,KKU,KKL, PRHODJ(:,:,:)*PATHETA(:,:,:)*2.*PSRCM(:,:,:) )*ZFLXZ(:,:,:)/PDZZ(:,:,:) ) &
+                    DZF( MZM( PRHODJ(:,:,:)*PATHETA(:,:,:)*2.*PSRCM(:,:,:) )*ZFLXZ(:,:,:)/PDZZ(:,:,:) ) &
                     *(1.0-PFRAC_ICE(:,:,:))
     PRRS(:,:,:,4) = PRRS(:,:,:,4) -                                        &
-                    DZF(KKA,KKU,KKL, MZM(KKA,KKU,KKL, PRHODJ(:,:,:)*PATHETA(:,:,:)*2.*PSRCM(:,:,:) )*ZFLXZ(:,:,:)/PDZZ(:,:,:) ) &
+                    DZF( MZM( PRHODJ(:,:,:)*PATHETA(:,:,:)*2.*PSRCM(:,:,:) )*ZFLXZ(:,:,:)/PDZZ(:,:,:) ) &
                     *PFRAC_ICE(:,:,:)
   ELSE
     PRRS(:,:,:,2) = PRRS(:,:,:,2) -                                        &
-                    DZF(KKA,KKU,KKL, MZM(KKA,KKU,KKL, PRHODJ(:,:,:)*PATHETA(:,:,:)*2.*PSRCM(:,:,:) )*ZFLXZ(:,:,:)/PDZZ(:,:,:) )
+                    DZF( MZM( PRHODJ(:,:,:)*PATHETA(:,:,:)*2.*PSRCM(:,:,:) )*ZFLXZ(:,:,:)/PDZZ(:,:,:) )
   END IF
 END IF
 #else
@@ -906,22 +906,22 @@ END IF
 IF (LLES_CALL) THEN
   CALL SECOND_MNH(ZTIME1)
 #ifndef MNH_OPENACC
-  CALL LES_MEAN_SUBGRID( MZF(KKA,KKU,KKL,ZFLXZ), X_LES_SUBGRID_WThl ) 
-  CALL LES_MEAN_SUBGRID( MZF(KKA,KKU,KKL,PWM(:,:,:)*ZFLXZ(:,:,:)), X_LES_RES_W_SBG_WThl )
-  CALL LES_MEAN_SUBGRID( GZ_W_M(KKA,KKU,KKL,PWM,PDZZ)*MZF(KKA,KKU,KKL,ZFLXZ),&
+  CALL LES_MEAN_SUBGRID( MZF(ZFLXZ), X_LES_SUBGRID_WThl )
+  CALL LES_MEAN_SUBGRID( MZF(PWM(:,:,:)*ZFLXZ(:,:,:)), X_LES_RES_W_SBG_WThl )
+  CALL LES_MEAN_SUBGRID( GZ_W_M(KKA,KKU,KKL,PWM,PDZZ)*MZF(ZFLXZ),&
       & X_LES_RES_ddxa_W_SBG_UaThl )
-  CALL LES_MEAN_SUBGRID( MZF(KKA,KKU,KKL,PDTH_DZ(:,:,:)*ZFLXZ(:,:,:)), X_LES_RES_ddxa_Thl_SBG_UaThl )
-  CALL LES_MEAN_SUBGRID( -XCTP*PSQRT_TKE(:,:,:)/PLM(:,:,:)*MZF(KKA,KKU,KKL,ZFLXZ), X_LES_SUBGRID_ThlPz )
-  CALL LES_MEAN_SUBGRID( MZF(KKA,KKU,KKL,MZM(KKA,KKU,KKL,PETHETA)*ZFLXZ(:,:,:)), X_LES_SUBGRID_WThv )
+  CALL LES_MEAN_SUBGRID( MZF(PDTH_DZ(:,:,:)*ZFLXZ(:,:,:)), X_LES_RES_ddxa_Thl_SBG_UaThl )
+  CALL LES_MEAN_SUBGRID( -XCTP*PSQRT_TKE(:,:,:)/PLM(:,:,:)*MZF(ZFLXZ), X_LES_SUBGRID_ThlPz )
+  CALL LES_MEAN_SUBGRID( MZF(MZM(PETHETA)*ZFLXZ(:,:,:)), X_LES_SUBGRID_WThv )
   IF (KRR>=1) THEN
-    CALL LES_MEAN_SUBGRID( MZF(KKA,KKU,KKL,PDR_DZ(:,:,:)*ZFLXZ(:,:,:)), X_LES_RES_ddxa_Rt_SBG_UaThl )
+    CALL LES_MEAN_SUBGRID( MZF(PDR_DZ(:,:,:)*ZFLXZ(:,:,:)), X_LES_RES_ddxa_Rt_SBG_UaThl )
   END IF
   !* diagnostic of mixing coefficient for heat
-  ZA(:,:,:) = DZM(KKA,KKU,KKL,PTHLP)
+  ZA(:,:,:) = DZM(PTHLP)
   WHERE (ZA(:,:,:)==0.) ZA(:,:,:)=1.E-6
   ZA(:,:,:) = - ZFLXZ(:,:,:) / ZA(:,:,:) * PDZZ(:,:,:)
   ZA(:,:,IKB) = XCSHF*PPHI3(:,:,IKB)*ZKEFF(:,:,IKB)
-  ZA(:,:,:) = MZF(KKA,KKU,KKL, ZA )
+  ZA(:,:,:) = MZF( ZA )
   ZA(:,:,:) = MIN(MAX(ZA(:,:,:),-1000.),1000.)
   CALL LES_MEAN_SUBGRID( ZA, X_LES_SUBGRID_Kh   )
 #else
@@ -1000,7 +1000,7 @@ IF (KRR /= 0) THEN
   ! Compute the turbulent flux F and F' at time t-dt.
   !
 #ifndef MNH_OPENACC
-  ZF      (:,:,:) = -XCSHF*PPSI3(:,:,:)*ZKEFF(:,:,:)*DZM(KKA,KKU,KKL,PRM(:,:,:,1))/PDZZ(:,:,:)
+  ZF      (:,:,:) = -XCSHF*PPSI3(:,:,:)*ZKEFF(:,:,:)*DZM(PRM(:,:,:,1))/PDZZ(:,:,:)
   ZDFDDRDZ(:,:,:) = -XCSHF*ZKEFF(:,:,:)*D_PSI3DRDZ_O_DDRDZ(PPSI3,PREDR1,PREDTH1,PRED2R3,PRED2THR3,HTURBDIM,GUSERV)
 #else
   CALL DZM_DEVICE(KKA,KKU,KKL,PRM(:,:,:,1),ZTMP1_DEVICE)
@@ -1045,9 +1045,9 @@ IF (KRR /= 0) THEN
   IF (GFR2) THEN
     Z3RDMOMENT(:,:,:)= M3_WR_WR2(PREDR1,PREDTH1,PD,PBLL_O_E,PEMOIST)
   !
-    ZF(:,:,:)       = ZF(:,:,:)       + Z3RDMOMENT(:,:,:) * MZM(KKA,KKU,KKL,PFR2)
+    ZF(:,:,:)       = ZF(:,:,:)       + Z3RDMOMENT(:,:,:) * MZM(PFR2)
     ZDFDDRDZ(:,:,:) = ZDFDDRDZ(:,:,:) + D_M3_WR_WR2_O_DDRDZ(Z3RDMOMENT,PREDR1,&
-     & PREDTH1,PD,PBLL_O_E,PEMOIST) * MZM(KKA,KKU,KKL,PFR2)
+     & PREDTH1,PD,PBLL_O_E,PEMOIST) * MZM(PFR2)
   END IF
 #else
   IF (GFR2) THEN
@@ -1092,9 +1092,9 @@ IF (KRR /= 0) THEN
 #ifndef MNH_OPENACC
   IF (GFTH2) THEN
     ZF(:,:,:)       = ZF(:,:,:)       + M3_WR_WTH2(KKA,KKU,KKL,PREDR1,PREDTH1,PD,ZKEFF,PTKEM,&
-    & PSQRT_TKE,PBLL_O_E,PBETA,PLEPS,PETHETA,PDR_DZ) * MZM(KKA,KKU,KKL,PFTH2)
+    & PSQRT_TKE,PBLL_O_E,PBETA,PLEPS,PETHETA,PDR_DZ) * MZM(PFTH2)
     ZDFDDRDZ(:,:,:) = ZDFDDRDZ(:,:,:) + D_M3_WR_WTH2_O_DDRDZ(KKA,KKU,KKL,PREDR1,PREDTH1,PD,&
-     &ZKEFF,PTKEM,PSQRT_TKE,PBLL_O_E,PBETA,PLEPS,PETHETA) * MZM(KKA,KKU,KKL,PFTH2)
+     &ZKEFF,PTKEM,PSQRT_TKE,PBLL_O_E,PBETA,PLEPS,PETHETA) * MZM(PFTH2)
   END IF
 #else
   IF (GFTH2) THEN
@@ -1118,9 +1118,9 @@ IF (KRR /= 0) THEN
     Z3RDMOMENT(:,:,:)= M3_WR_WTHR(KKA,KKU,KKL,PREDTH1,PD,ZKEFF,PTKEM,PSQRT_TKE,PBETA,&
      & PLEPS,PETHETA)
   !
-    ZF(:,:,:)       = ZF(:,:,:)       + Z3RDMOMENT(:,:,:) * MZM(KKA,KKU,KKL,PFTHR)
+    ZF(:,:,:)       = ZF(:,:,:)       + Z3RDMOMENT(:,:,:) * MZM(PFTHR)
     ZDFDDRDZ(:,:,:) = ZDFDDRDZ(:,:,:) + D_M3_WR_WTHR_O_DDRDZ(KKA,KKU,KKL,Z3RDMOMENT,PREDR1, &
-     & PREDTH1,PD,PBLL_O_E,PEMOIST) * MZM(KKA,KKU,KKL,PFTHR)
+     & PREDTH1,PD,PBLL_O_E,PEMOIST) * MZM(PFTHR)
   END IF
 #else
   IF (GFTHR) THEN
@@ -1174,7 +1174,7 @@ IF (KRR /= 0) THEN
   !
 #ifndef MNH_OPENACC
   ZFLXZ(:,:,:)   = ZF(:,:,:)                                                &
-                 + PIMPL * ZDFDDRDZ(:,:,:) * DZM(KKA,KKU,KKL,PRP - PRM(:,:,:,1)) / PDZZ(:,:,:)
+                 + PIMPL * ZDFDDRDZ(:,:,:) * DZM(PRP - PRM(:,:,:,1)) / PDZZ(:,:,:)
 #else
 !$acc kernels
   ZTMP1_DEVICE(:,:,:) = PRP(:,:,:) - PRM(:,:,:,1)
@@ -1216,7 +1216,7 @@ IF (KRR /= 0) THEN
   !
   ! Contribution of the conservative water flux to the Buoyancy flux
 #ifndef MNH_OPENACC
-  ZA(:,:,:)   =  PBETA(:,:,:) * MZF(KKA,KKU,KKL, MZM(KKA,KKU,KKL,PEMOIST) * ZFLXZ(:,:,:) )
+  ZA(:,:,:)   =  PBETA(:,:,:) * MZF( MZM(PEMOIST) * ZFLXZ(:,:,:) )
 #else
   CALL MZM_DEVICE(PEMOIST,ZTMP1_DEVICE)
   !$acc kernels
@@ -1234,7 +1234,7 @@ IF (KRR /= 0) THEN
   ! Buoyancy flux at flux points
   ! 
 #ifndef MNH_OPENACC
-  PWTHV(:,:,:)          = PWTHV(:,:,:)          + MZM(KKA,KKU,KKL,PEMOIST) * ZFLXZ(:,:,:)
+  PWTHV(:,:,:)          = PWTHV(:,:,:)          + MZM(PEMOIST) * ZFLXZ(:,:,:)
 #else
   CALL MZM_DEVICE(PEMOIST,ZTMP1_DEVICE)
   !$acc kernels
@@ -1249,14 +1249,14 @@ IF (KRR /= 0) THEN
   IF ( KRRL >= 1 ) THEN
     IF ( KRRI >= 1 ) THEN
       PRRS(:,:,:,2) = PRRS(:,:,:,2) -                                        &
-                      DZF(KKA,KKU,KKL, MZM(KKA,KKU,KKL, PRHODJ(:,:,:)*PAMOIST(:,:,:)*2.*PSRCM(:,:,:) )*ZFLXZ(:,:,:)/PDZZ(:,:,:) ) &
+                      DZF( MZM( PRHODJ(:,:,:)*PAMOIST(:,:,:)*2.*PSRCM(:,:,:) )*ZFLXZ(:,:,:)/PDZZ(:,:,:) ) &
                       *(1.0-PFRAC_ICE(:,:,:))
       PRRS(:,:,:,4) = PRRS(:,:,:,4) -                                        &
-                      DZF(KKA,KKU,KKL, MZM(KKA,KKU,KKL, PRHODJ(:,:,:)*PAMOIST(:,:,:)*2.*PSRCM(:,:,:) )*ZFLXZ(:,:,:)/PDZZ(:,:,:) ) &
+                      DZF( MZM( PRHODJ(:,:,:)*PAMOIST(:,:,:)*2.*PSRCM(:,:,:) )*ZFLXZ(:,:,:)/PDZZ(:,:,:) ) &
                       *PFRAC_ICE(:,:,:)
     ELSE
       PRRS(:,:,:,2) = PRRS(:,:,:,2) -                                        &
-                      DZF(KKA,KKU,KKL, MZM(KKA,KKU,KKL, PRHODJ(:,:,:)*PAMOIST(:,:,:)*2.*PSRCM(:,:,:) )*ZFLXZ(:,:,:)/PDZZ(:,:,:) )
+                      DZF( MZM( PRHODJ(:,:,:)*PAMOIST(:,:,:)*2.*PSRCM(:,:,:) )*ZFLXZ(:,:,:)/PDZZ(:,:,:) )
     END IF
   END IF
 #else
@@ -1295,14 +1295,14 @@ IF (KRR /= 0) THEN
   IF (LLES_CALL) THEN
     CALL SECOND_MNH(ZTIME1)
 #ifndef MNH_OPENACC
-    CALL LES_MEAN_SUBGRID( MZF(KKA,KKU,KKL,ZFLXZ), X_LES_SUBGRID_WRt ) 
-    CALL LES_MEAN_SUBGRID( MZF(KKA,KKU,KKL,PWM(:,:,:)*ZFLXZ(:,:,:)), X_LES_RES_W_SBG_WRt )
-    CALL LES_MEAN_SUBGRID( GZ_W_M(KKA,KKU,KKL,PWM,PDZZ)*MZF(KKA,KKU,KKL,ZFLXZ),&
+    CALL LES_MEAN_SUBGRID( MZF(ZFLXZ), X_LES_SUBGRID_WRt )
+    CALL LES_MEAN_SUBGRID( MZF(PWM(:,:,:)*ZFLXZ(:,:,:)), X_LES_RES_W_SBG_WRt )
+    CALL LES_MEAN_SUBGRID( GZ_W_M(KKA,KKU,KKL,PWM,PDZZ)*MZF(ZFLXZ),&
     & X_LES_RES_ddxa_W_SBG_UaRt )
-    CALL LES_MEAN_SUBGRID( MZF(KKA,KKU,KKL,PDTH_DZ(:,:,:)*ZFLXZ(:,:,:)), X_LES_RES_ddxa_Thl_SBG_UaRt )
-    CALL LES_MEAN_SUBGRID( MZF(KKA,KKU,KKL,PDR_DZ(:,:,:)*ZFLXZ(:,:,:)), X_LES_RES_ddxa_Rt_SBG_UaRt )
-    CALL LES_MEAN_SUBGRID( MZF(KKA,KKU,KKL,MZM(KKA,KKU,KKL,PEMOIST)*ZFLXZ(:,:,:)), X_LES_SUBGRID_WThv , .TRUE. )
-    CALL LES_MEAN_SUBGRID( -XCTP*PSQRT_TKE(:,:,:)/PLM(:,:,:)*MZF(KKA,KKU,KKL,ZFLXZ), X_LES_SUBGRID_RtPz )
+    CALL LES_MEAN_SUBGRID( MZF(PDTH_DZ(:,:,:)*ZFLXZ(:,:,:)), X_LES_RES_ddxa_Thl_SBG_UaRt )
+    CALL LES_MEAN_SUBGRID( MZF(PDR_DZ(:,:,:)*ZFLXZ(:,:,:)), X_LES_RES_ddxa_Rt_SBG_UaRt )
+    CALL LES_MEAN_SUBGRID( MZF(MZM(PEMOIST)*ZFLXZ(:,:,:)), X_LES_SUBGRID_WThv , .TRUE. )
+    CALL LES_MEAN_SUBGRID( -XCTP*PSQRT_TKE(:,:,:)/PLM(:,:,:)*MZF(ZFLXZ), X_LES_SUBGRID_RtPz )
 #else
 !$acc data copy(X_LES_SUBGRID_WRt,X_LES_RES_W_SBG_WRt,X_LES_RES_ddxa_W_SBG_UaRt,X_LES_RES_ddxa_Thl_SBG_UaRt,&
 !$acc &         X_LES_RES_ddxa_Rt_SBG_UaRt,X_LES_SUBGRID_WThv,X_LES_SUBGRID_RtPz)
@@ -1368,8 +1368,8 @@ IF ( ((OTURB_FLX .AND. OCLOSE_OUT) .OR. LLES_CALL) .AND. (KRRL > 0) ) THEN
   !  
   ! recover the Conservative potential temperature flux : 
 #ifndef MNH_OPENACC
-  ZA(:,:,:)   = DZM(KKA,KKU,KKL,PIMPL * PTHLP(:,:,:) + PEXPL * PTHLM(:,:,:)) / PDZZ(:,:,:) *       &
-                  (-PPHI3(:,:,:)*MZM(KKA,KKU,KKL,PLM(:,:,:)*PSQRT_TKE(:,:,:))) * XCSHF
+  ZA(:,:,:)   = DZM(PIMPL * PTHLP(:,:,:) + PEXPL * PTHLM(:,:,:)) / PDZZ(:,:,:) *       &
+                  (-PPHI3(:,:,:)*MZM(PLM(:,:,:)*PSQRT_TKE(:,:,:))) * XCSHF
 #else
 !$acc kernels
   ZTMP1_DEVICE(:,:,:) = PIMPL * PTHLP(:,:,:) + PEXPL * PTHLM(:,:,:)
@@ -1387,8 +1387,8 @@ IF ( ((OTURB_FLX .AND. OCLOSE_OUT) .OR. LLES_CALL) .AND. (KRRL > 0) ) THEN
   !  
   ! compute <w Rc>
 #ifndef MNH_OPENACC
-  ZFLXZ(:,:,:) = MZM(KKA,KKU,KKL, PAMOIST(:,:,:) * 2.* PSRCM(:,:,:) ) * ZFLXZ(:,:,:) + &
-                 MZM(KKA,KKU,KKL, PATHETA(:,:,:) * 2.* PSRCM(:,:,:) ) * ZA(:,:,:)
+  ZFLXZ(:,:,:) = MZM( PAMOIST(:,:,:) * 2.* PSRCM(:,:,:) ) * ZFLXZ(:,:,:) + &
+                 MZM( PATHETA(:,:,:) * 2.* PSRCM(:,:,:) ) * ZA(:,:,:)
 #else
   !$acc kernels
   ZTMP1_DEVICE(:,:,:) = PAMOIST(:,:,:) * 2.* PSRCM(:,:,:)
@@ -1426,7 +1426,7 @@ IF ( ((OTURB_FLX .AND. OCLOSE_OUT) .OR. LLES_CALL) .AND. (KRRL > 0) ) THEN
   IF (LLES_CALL) THEN
     CALL SECOND_MNH(ZTIME1)
 #ifndef MNH_OPENACC
-    CALL LES_MEAN_SUBGRID( MZF(KKA,KKU,KKL,ZFLXZ), X_LES_SUBGRID_WRc ) 
+    CALL LES_MEAN_SUBGRID( MZF(ZFLXZ), X_LES_SUBGRID_WRc )
 #else
 !$acc data copy(X_LES_SUBGRID_WRc)
     CALL MZF_DEVICE(KKA,KKU,KKL,ZFLXZ,ZTMP1_DEVICE)
diff --git a/src/MNH/two_wayn.f90 b/src/MNH/two_wayn.f90
index 52a22f8d530b86603579bc88ea8c555f242ced5c..5b361e3f9b57f7960993ed78924b5bab83fc2107 100644
--- a/src/MNH/two_wayn.f90
+++ b/src/MNH/two_wayn.f90
@@ -1,4 +1,4 @@
-!MNH_LIC Copyright 1997-2019 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 1997-2020 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
 !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
@@ -1286,7 +1286,7 @@ ZRHODJ(IXOR:IXEND,IYOR:IYEND,IKB) = 2.*ZRHODJ(IXOR:IXEND,IYOR:IYEND,IKB)
 ZRHODJ(IXOR:IXEND,IYOR:IYEND,IKB+1:IKU) = ZRHODJ(IXOR:IXEND,IYOR:IYEND,IKB+1:IKU)   &
                                          +ZRHODJ(IXOR:IXEND,IYOR:IYEND,IKB:IKU-1)
 !
-ZAVE_RHODJ=MZM(1,IKU,1,PRHODJ)
+ZAVE_RHODJ=MZM(PRHODJ)
 PRWS(IXOR:IXEND,IYOR:IYEND,:) = PRWS(IXOR:IXEND,IYOR:IYEND,:)        &
      - ZK2W * ZAVE_RHODJ(IXOR:IXEND,IYOR:IYEND,:) * ( PWM(IXOR:IXEND,IYOR:IYEND,:) &
                  -ZWM(IXOR:IXEND,IYOR:IYEND,:)/ZRHODJ(IXOR:IXEND,IYOR:IYEND,:) )
diff --git a/src/MNH/ver_dyn.f90 b/src/MNH/ver_dyn.f90
index 49b6ef42936c3747e2784377d34bee9ae7ee0850..925c2225b66e5466ba7fc21484e247670678eb61 100644
--- a/src/MNH/ver_dyn.f90
+++ b/src/MNH/ver_dyn.f90
@@ -1,4 +1,4 @@
-!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 1994-2020 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
 !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
@@ -80,7 +80,7 @@ END MODULE MODI_VER_DYN
 !!    subroutine VER_INT_DYN    : to initialize the horizontal momentum
 !!    subroutine WGUESS         : to initialize vertical momentum
 !!    subroutine ANEL_BALANCE1  : to apply the anelastic correction
-!!    functions MXM ,MYM ,MZM   : Shuman operators
+!!    functions  MXM, MYM       : Shuman operators
 !!
 !!
 !!    IMPLICIT ARGUMENTS
diff --git a/src/MNH/ver_int_dyn.f90 b/src/MNH/ver_int_dyn.f90
index 1065cdc10a890b91b3cdee4f2164fc58bcc768b4..912522f9835bd6d86bd2020c7baaa1a92d5c2eae 100644
--- a/src/MNH/ver_int_dyn.f90
+++ b/src/MNH/ver_int_dyn.f90
@@ -1,4 +1,4 @@
-!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 1994-2020 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
 !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
@@ -186,7 +186,7 @@ ZRHODV_SH(:,:,1) = ZRHODV_SH(:,:,2)
 !*       3.1   Altitude of the mass points on the MESO-NH grid
 !              -----------------------------------------------
 !
-ZZMASS(:,:,:)=MZF(1,IKU,1,XZZ(:,:,:))
+ZZMASS(:,:,:)=MZF(XZZ(:,:,:))
 ZZMASS(:,:,SIZE(XZZ,3))=1.5*XZZ(:,:,SIZE(XZZ,3))-0.5*XZZ(:,:,SIZE(XZZ,3)-1)
 !
 !*       3.2   Interpolation on the MESO-NH grid
diff --git a/src/MNH/ver_int_thermo.f90 b/src/MNH/ver_int_thermo.f90
index caace8ad5fa37979d8840f7c279c6c98bf95ce92..1d3424a943e422cf37b2ec52dd4651470c25a108 100644
--- a/src/MNH/ver_int_thermo.f90
+++ b/src/MNH/ver_int_thermo.f90
@@ -1,4 +1,4 @@
-!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 1994-2020 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
 !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
@@ -198,7 +198,7 @@ REAL,DIMENSION(:,:,:), OPTIONAL, INTENT(OUT) :: PLSRVM  ! Large scale vapor
 !              ------------------------------
 !
 INTEGER                    ::ILUOUT0, IRESP
-INTEGER                    ::IKB,IKE,IIB,IIE,IJB,IJE,IKU
+INTEGER                    ::IKB,IKE,IIB,IIE,IJB,IJE
 INTEGER, DIMENSION(2)      ::IIJ
 INTEGER                    :: IK4000
 INTEGER                    ::JK
@@ -270,7 +270,6 @@ ILUOUT0 = TLUOUT0%NLU
 CALL GET_INDICE_ll (IIB,IJB,IIE,IJE)
 IKB=JPVEXT+1
 IKE=SIZE(XZZ,3)-JPVEXT
-IKU=SIZE(XZZ,3)
 !
 !
 !-------------------------------------------------------------------------------
@@ -515,7 +514,7 @@ PDIAG = ZTIME2 - ZTIME1
 !
 !20140217 upgrade shuman fct MZF
 !$ZZMASS(:,:,:)=MZF(XZZ(:,:,:))
-ZZMASS(:,:,:)=MZF(1,IKU,1,XZZ(:,:,:))
+ZZMASS(:,:,:)=MZF(XZZ(:,:,:))
 !20131113 check
 CALL MPPDB_CHECK3D(ZZMASS,"ver_int_thermo6::ZZMASS",PRECISION)
 ZZMASS(:,:,SIZE(XZZ,3))=1.5*XZZ(:,:,SIZE(XZZ,3))-0.5*XZZ(:,:,SIZE(XZZ,3)-1)
diff --git a/src/MNH/ver_interp_field.f90 b/src/MNH/ver_interp_field.f90
index 1eb52591ae889b6f813b5238972b3f79384bb79f..e380b7da0d431d133a1decd4e6ace07786cf7887 100644
--- a/src/MNH/ver_interp_field.f90
+++ b/src/MNH/ver_interp_field.f90
@@ -1,4 +1,4 @@
-!MNH_LIC Copyright 1997-2019 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 1997-2020 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
 !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
@@ -157,9 +157,9 @@ CALL GET_INDICE_ll (IIB,IJB,IIE,IJE)
 !               -----------
 !
 !* shift of grids to mass points
-ZGRID1(:,:,:)=MZF(1,IKU,1,PZZ_LS(:,:,:))
+ZGRID1(:,:,:)=MZF(PZZ_LS(:,:,:))
 ZGRID1(:,:,IKU)=2.*ZGRID1(:,:,IKU-1)-ZGRID1(:,:,IKU-2)
-ZGRID2(:,:,:)=MZF(1,IKU,1,PZZ(:,:,:))
+ZGRID2(:,:,:)=MZF(PZZ(:,:,:))
 ZGRID2(:,:,IKU)=2.*ZGRID2(:,:,IKU-1)-ZGRID2(:,:,IKU-2)
 !* move the first physical level if above the target grid
 ZGRID1(:,:,1:IKB)=MIN(ZGRID1(:,:,1:IKB),ZGRID2(:,:,1:IKB))
@@ -199,9 +199,9 @@ CALL MPPDB_CHECK3D(PUT,"VERINTERPFIELD:PUT",PRECISION)
 !               -----------
 !
 !* shift of grids to mass points
-ZGRID1(:,:,:)=MZF(1,IKU,1,PZZ_LS(:,:,:))
+ZGRID1(:,:,:)=MZF(PZZ_LS(:,:,:))
 ZGRID1(:,:,IKU)=2.*ZGRID1(:,:,IKU-1)-ZGRID1(:,:,IKU-2)
-ZGRID2(:,:,:)=MZF(1,IKU,1,PZZ(:,:,:))
+ZGRID2(:,:,:)=MZF(PZZ(:,:,:))
 ZGRID2(:,:,IKU)=2.*ZGRID2(:,:,IKU-1)-ZGRID2(:,:,IKU-2)
 !* move the first physical level if above the target grid
 ZGRID1(:,:,1:IKB)=MIN(ZGRID1(:,:,1:IKB),ZGRID2(:,:,1:IKB))
@@ -246,9 +246,9 @@ PLSWM (:,:,:)  =  VER_INTERP_LIN(PLSWM (:,:,:),NKLIN(:,:,:),XCOEFLIN(:,:,:))
 !               -------------------------
 !
 !* shift of grids to mass points
-ZGRID1(:,:,:)=MZF(1,IKU,1,PZZ_LS(:,:,:))
+ZGRID1(:,:,:)=MZF(PZZ_LS(:,:,:))
 ZGRID1(:,:,IKU)=2.*ZGRID1(:,:,IKU-1)-ZGRID1(:,:,IKU-2)
-ZGRID2(:,:,:)=MZF(1,IKU,1,PZZ(:,:,:))
+ZGRID2(:,:,:)=MZF(PZZ(:,:,:))
 ZGRID2(:,:,IKU)=2.*ZGRID2(:,:,IKU-1)-ZGRID2(:,:,IKU-2)
 !
 CALL COEF_VER_INTERP_LIN(ZGRID1(:,:,:),ZGRID2(:,:,:))
@@ -292,9 +292,9 @@ END DO
 !               ------------
 !
 !* shift of grids to mass points
-ZGRID1(:,:,:)=MZF(1,IKU,1,PZZ_LS(:,:,:))
+ZGRID1(:,:,:)=MZF(PZZ_LS(:,:,:))
 ZGRID1(:,:,IKU)=2.*ZGRID1(:,:,IKU-1)-ZGRID1(:,:,IKU-2)
-ZGRID2(:,:,:)=MZF(1,IKU,1,PZZ(:,:,:))
+ZGRID2(:,:,:)=MZF(PZZ(:,:,:))
 ZGRID2(:,:,IKU)=2.*ZGRID2(:,:,IKU-1)-ZGRID2(:,:,IKU-2)
 !* move the first physical level if above the target grid
 ZGRID1(:,:,1:IKB)=MIN(ZGRID1(:,:,1:IKB),ZGRID2(:,:,1:IKB))
diff --git a/src/MNH/ver_interp_to_mixed_grid.f90 b/src/MNH/ver_interp_to_mixed_grid.f90
index 1b2d4d6a0fb5905bb397b94dfcec75e811a99c00..94b161a5d4989fd24bcc8dc2305436acfc304d03 100644
--- a/src/MNH/ver_interp_to_mixed_grid.f90
+++ b/src/MNH/ver_interp_to_mixed_grid.f90
@@ -1,4 +1,4 @@
-!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 1994-2020 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
 !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
@@ -290,13 +290,13 @@ IF (HFILE=='ATM ') THEN
   ALLOCATE(XZFLUX_MX(IIU,IJU,IKU))
   ALLOCATE(XZMASS_MX(IIU,IJU,IKU))
   CALL VERT_COORD(LSLEVE,PZS_LS,PZSMT_LS,XLEN1,XLEN2,XZHAT,XZFLUX_MX)
-  XZMASS_MX(:,:,:)=MZF(1,IKU,1,XZFLUX_MX)
+  XZMASS_MX(:,:,:)=MZF(XZFLUX_MX)
   XZMASS_MX(:,:,IKU)=1.5*XZFLUX_MX(:,:,IKU)-0.5*XZFLUX_MX(:,:,IKU-1)
 ELSE IF (HFILE=='CHEM') THEN
   ALLOCATE(ZZFLUX_MX(IIU,IJU,IKU))
   ALLOCATE(ZZMASS_MX(IIU,IJU,IKU))
   CALL VERT_COORD(LSLEVE,PZS_LS,PZSMT_LS,XLEN1,XLEN2,XZHAT,ZZFLUX_MX)
-  ZZMASS_MX(:,:,:)=MZF(1,IKU,1,ZZFLUX_MX)
+  ZZMASS_MX(:,:,:)=MZF(ZZFLUX_MX)
   ZZMASS_MX(:,:,IKU)=1.5*ZZFLUX_MX(:,:,IKU)-0.5*ZZFLUX_MX(:,:,IKU-1)
 END IF
 !
diff --git a/src/MNH/ver_prep_mesonh_case.f90 b/src/MNH/ver_prep_mesonh_case.f90
index 15ea1cc313fc52f699651a95190f5dab63a50c35..e50abec0ec100cf2792eddd685cd647ba7943322 100644
--- a/src/MNH/ver_prep_mesonh_case.f90
+++ b/src/MNH/ver_prep_mesonh_case.f90
@@ -169,7 +169,7 @@ CALL VERT_COORD(LSLEVE_LS,XZS_LS,XZSMT_LS,XLEN1_LS,XLEN2_LS,XZHAT_LS,XZFLUX_LS)
 !
 !20140217 upgrade MZF
 !$XZMASS_LS(:,:,:)=MZF(XZFLUX_LS(:,:,:))
-XZMASS_LS(:,:,:)=MZF(1,ILU,1,XZFLUX_LS(:,:,:))
+XZMASS_LS(:,:,:)=MZF(XZFLUX_LS(:,:,:))
 !20131112 add update_halo for this type of calculation
 CALL MPPDB_CHECK3D(XZMASS_LS,"ver_prep_mesonh_case1.2a::XZMASS_LS",PRECISION)
 CALL ADD3DFIELD_ll( TZFIELDS_ll, XZMASS_LS, 'VER_PREP_MESONH_CASE::XZMASS_LS' )
diff --git a/src/MNH/viscosity.f90 b/src/MNH/viscosity.f90
index b3d3e6a44a3bfa855d8555943dc035330e27689d..d02759b83919be70fb614b6fe82bae858675325e 100644
--- a/src/MNH/viscosity.f90
+++ b/src/MNH/viscosity.f90
@@ -1,4 +1,4 @@
-!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 1994-2020 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
 !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
@@ -297,7 +297,7 @@ ENDIF
    IKB = JPVEXT + 1
    IKE = SIZE(PWT,3) - JPVEXT
 
-   ZTMP = MZF(1,IKU,1,PWT)
+   ZTMP = MZF(PWT)
 !
    IF (ODRAG) THEN
          WHERE (PDRAG==-1)
@@ -310,7 +310,7 @@ ENDIF
       ZTMP(:,:,IKE+IK) = ZTMP(:,:,IKE)
    END DO
 !
-   ZTMP = MZM(1,IKU,1, PNU * &
+   ZTMP = MZM( PNU * &
           LAP_M(HLBCX,HLBCY,PDXX,PDYY,PDZX,PDZY,PDZZ,PRHODJ,ZTMP) )
 !
    DO IK = 1,JPVEXT
diff --git a/src/MNH/wguess.f90 b/src/MNH/wguess.f90
index 189707fef4876f91574364f272cb5a500f8bc0ab..d6324d60702c9724022327ca7d0efc5550ddf6a6 100644
--- a/src/MNH/wguess.f90
+++ b/src/MNH/wguess.f90
@@ -1,6 +1,6 @@
-!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 1994-2020 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
-!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt  
+!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
 !-----------------------------------------------------------------
 !     ##################
@@ -140,8 +140,8 @@ END DO
 !*       2.1   General case
 !              ------------
 !
-PRHODJW= PDZZ*ZRHODJWC + MXF(PDZX*MZM(1,IKU,1,PRHODJU/PDXX)) &
-                       + MYF(PDZY*MZM(1,IKU,1,PRHODJV/PDYY))
+PRHODJW= PDZZ*ZRHODJWC + MXF(PDZX*MZM(PRHODJU/PDXX)) &
+                       + MYF(PDZY*MZM(PRHODJV/PDYY))
 !
 !*       2.2   Copies on boundaries
 !              --------------------
diff --git a/src/MNH/write_lfifm1_for_diag.f90 b/src/MNH/write_lfifm1_for_diag.f90
index 6655d27e109d94115783b87e80f9edc5251e5616..8f16be8070cb6635cd5738c66844de016144cdb4 100644
--- a/src/MNH/write_lfifm1_for_diag.f90
+++ b/src/MNH/write_lfifm1_for_diag.f90
@@ -1,4 +1,4 @@
-!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 1994-2020 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
 !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
@@ -491,8 +491,8 @@ ZVOZ(:,:,1)=ZVOZ(:,:,3)
 ZWORK31(:,:,:)=GX_M_M(1,IKU,1,XTHT,XDXX,XDZZ,XDZX)
 ZWORK32(:,:,:)=GY_M_M(1,IKU,1,XTHT,XDYY,XDZZ,XDZY)
 ZWORK33(:,:,:)=GZ_M_M(1,IKU,1,XTHT,XDZZ)
-ZPOVO(:,:,:)= ZWORK31(:,:,:)*MZF(1,IKU,1,MYF(ZVOX(:,:,:)))     &
-             + ZWORK32(:,:,:)*MZF(1,IKU,1,MXF(ZVOY(:,:,:)))     &
+ZPOVO(:,:,:)= ZWORK31(:,:,:)*MZF(MYF(ZVOX(:,:,:)))     &
+             + ZWORK32(:,:,:)*MZF(MXF(ZVOY(:,:,:)))     &
              + ZWORK33(:,:,:)*(MYF(MXF(ZVOZ(:,:,:))) + ZCORIOZ(:,:,:))
 ZPOVO(:,:,:)= ZPOVO(:,:,:)*1E6/XRHODREF(:,:,:)
 ZPOVO(:,:,1)  =-1.E+11
@@ -704,7 +704,7 @@ IF (LVAR_PR ) THEN
   ZWORK21(:,:) = 0.
   ZWORK22(:,:) = 0.
   ZWORK23(:,:) = 0.
-  ZWORK31(:,:,:) = DZF(1,IKU,1,XZZ(:,:,:))
+  ZWORK31(:,:,:) = DZF(XZZ(:,:,:))
   DO JK = IKB,IKE
     !* Calcul de qtot
     IF  (CCLOUD(1:3) == 'ICE' .OR. CCLOUD == 'LIMA') THEN
@@ -760,7 +760,7 @@ IF (LHU_FLX) THEN
       IKTOP(:,:)=JK
     END WHERE
   END DO
-  ZDELTAZ(:,:,:)=DZF(1,IKU,1,XZZ) 
+  ZDELTAZ(:,:,:)=DZF(XZZ)
   ZWORK21(:,:) = 0.
   ZWORK22(:,:) = 0.
   ZWORK25(:,:) = 0.  
@@ -2274,7 +2274,7 @@ IF (LTPZH .OR. LCOREF) THEN
       TZFIELD%LTIMEDEP   = .TRUE.
       CALL IO_Field_write(TPFILE,TZFIELD,ZWORK33)
       !
-      ZWORK33(:,:,:)=ZWORK33(:,:,:)+MZF(1,IKU,1,XZZ(:,:,:))*1E6/XRADIUS
+      ZWORK33(:,:,:)=ZWORK33(:,:,:)+MZF(XZZ(:,:,:))*1E6/XRADIUS
       TZFIELD%CMNHNAME   = 'MCOREF'
       TZFIELD%CSTDNAME   = ''
       TZFIELD%CLONGNAME  = 'MCOREF'
@@ -2584,7 +2584,7 @@ END IF
 !
 IF (LVORT) THEN
 ! Vorticity x
-  ZWORK31(:,:,:)=MYF(MZF(1,IKU,1,MXM(ZVOX(:,:,:))))
+  ZWORK31(:,:,:)=MYF(MZF(MXM(ZVOX(:,:,:))))
   TZFIELD%CMNHNAME   = 'UM1'
   TZFIELD%CSTDNAME   = ''
   TZFIELD%CLONGNAME  = 'UM1'
@@ -2598,7 +2598,7 @@ IF (LVORT) THEN
   CALL IO_Field_write(TPFILE,TZFIELD,ZWORK31)
 !    
 ! Vorticity y
-  ZWORK32(:,:,:)=MZF(1,IKU,1,MXF(MYM(ZVOY(:,:,:))))
+  ZWORK32(:,:,:)=MZF(MXF(MYM(ZVOY(:,:,:))))
   TZFIELD%CMNHNAME   = 'VM1'
   TZFIELD%CSTDNAME   = ''
   TZFIELD%CLONGNAME  = 'VM1'
@@ -2638,7 +2638,7 @@ IF (LVORT) THEN
   ENDIF
 !    
 ! Vorticity z
-  ZWORK31(:,:,:)=MXF(MYF(MZM(1,IKU,1,ZVOZ(:,:,:))))
+  ZWORK31(:,:,:)=MXF(MYF(MZM(ZVOZ(:,:,:))))
   TZFIELD%CMNHNAME   = 'WM1'
   TZFIELD%CSTDNAME   = ''
   TZFIELD%CLONGNAME  = 'WM1'
@@ -2703,8 +2703,8 @@ IF (LMOIST_V .AND. (NRR>0) ) THEN
   ZWORK31(:,:,:)=GX_M_M(1,IKU,1,ZTHETAV,XDXX,XDZZ,XDZX)
   ZWORK32(:,:,:)=GY_M_M(1,IKU,1,ZTHETAV,XDYY,XDZZ,XDZY)
   ZWORK33(:,:,:)=GZ_M_M(1,IKU,1,ZTHETAV,XDZZ)
-  ZWORK34(:,:,:)= ZWORK31(:,:,:)*MZF(1,IKU,1,MYF(ZVOX(:,:,:)))     &
-               + ZWORK32(:,:,:)*MZF(1,IKU,1,MXF(ZVOY(:,:,:)))     &
+  ZWORK34(:,:,:)= ZWORK31(:,:,:)*MZF(MYF(ZVOX(:,:,:)))     &
+               + ZWORK32(:,:,:)*MZF(MXF(ZVOY(:,:,:)))     &
                + ZWORK33(:,:,:)*(MYF(MXF(ZVOZ(:,:,:))) + ZCORIOZ(:,:,:))
   ZWORK34(:,:,:)=ZWORK34(:,:,:)*1E6/XRHODREF(:,:,:)
   TZFIELD%CMNHNAME   = 'POVOV'
@@ -2749,8 +2749,8 @@ IF (LMOIST_E .AND. (NRR>0) ) THEN
   ZWORK31(:,:,:)=GX_M_M(1,IKU,1,ZTHETAE,XDXX,XDZZ,XDZX)
   ZWORK32(:,:,:)=GY_M_M(1,IKU,1,ZTHETAE,XDYY,XDZZ,XDZY)
   ZWORK33(:,:,:)=GZ_M_M(1,IKU,1,ZTHETAE,XDZZ)
-  ZWORK34(:,:,:)= ZWORK31(:,:,:)*MZF(1,IKU,1,MYF(ZVOX(:,:,:)))     &
-                + ZWORK32(:,:,:)*MZF(1,IKU,1,MXF(ZVOY(:,:,:)))     &
+  ZWORK34(:,:,:)= ZWORK31(:,:,:)*MZF(MYF(ZVOX(:,:,:)))     &
+                + ZWORK32(:,:,:)*MZF(MXF(ZVOY(:,:,:)))     &
                 + ZWORK33(:,:,:)*(MYF(MXF(ZVOZ(:,:,:))) + ZCORIOZ(:,:,:))
   ZWORK34(:,:,:)=ZWORK34(:,:,:)*1E6/XRHODREF(:,:,:)
   TZFIELD%CMNHNAME   = 'POVOE'
@@ -2796,8 +2796,8 @@ IF (LMOIST_ES .AND. (NRR>0) ) THEN
   ZWORK31(:,:,:)=GX_M_M(1,IKU,1,ZTHETAES,XDXX,XDZZ,XDZX)
   ZWORK32(:,:,:)=GY_M_M(1,IKU,1,ZTHETAES,XDYY,XDZZ,XDZY)
   ZWORK33(:,:,:)=GZ_M_M(1,IKU,1,ZTHETAES,XDZZ)
-  ZWORK34(:,:,:)= ZWORK31(:,:,:)*MZF(1,IKU,1,MYF(ZVOX(:,:,:)))     &
-                + ZWORK32(:,:,:)*MZF(1,IKU,1,MXF(ZVOY(:,:,:)))     &
+  ZWORK34(:,:,:)= ZWORK31(:,:,:)*MZF(MYF(ZVOX(:,:,:)))     &
+                + ZWORK32(:,:,:)*MZF(MXF(ZVOY(:,:,:)))     &
                 + ZWORK33(:,:,:)*(MYF(MXF(ZVOZ(:,:,:))) + ZCORIOZ(:,:,:))
   ZWORK34(:,:,:)=ZWORK34(:,:,:)*1E6/XRHODREF(:,:,:)
   TZFIELD%CMNHNAME   = 'POVOES'
@@ -3496,7 +3496,7 @@ ENDIF
 !* B-V frequency to assess thermal tropopause
 !
 IF (LBV_FR) THEN
-  ZWORK32(:,:,:)=DZM(1,IKU,1,XTHT(:,:,:))/ MZM(1,IKU,1,XTHT(:,:,:))
+  ZWORK32(:,:,:)=DZM(XTHT(:,:,:))/ MZM(XTHT(:,:,:))
   DO JK=1,IKU
    DO JJ=1,IJU
     DO JI=1,IIU
@@ -3522,7 +3522,7 @@ IF (LBV_FR) THEN
   CALL IO_Field_write(TPFILE,TZFIELD,ZWORK31)
 !  
   IF (NRR > 0) THEN
-    ZWORK32(:,:,:)=DZM(1,IKU,1,ZTHETAE(:,:,:))/ MZM(1,IKU,1,ZTHETAE(:,:,:))
+    ZWORK32(:,:,:)=DZM(ZTHETAE(:,:,:))/ MZM(ZTHETAE(:,:,:))
     DO JK=1,IKU
      DO JJ=1,IJU
       DO JI=1,IIU
diff --git a/src/MNH/write_lfifm1_for_diag_supp.f90 b/src/MNH/write_lfifm1_for_diag_supp.f90
index 4908ec514781ac6d48a5ffeb717a3024e9f4007e..a55567a215d706c5347e0568864a98f391da8bd9 100644
--- a/src/MNH/write_lfifm1_for_diag_supp.f90
+++ b/src/MNH/write_lfifm1_for_diag_supp.f90
@@ -1,4 +1,4 @@
-!MNH_LIC Copyright 2000-2019 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 2000-2020 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
 !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
@@ -420,7 +420,7 @@ IF (LCLD_COV .AND. LUSERC) THEN
   ZCLMR=1.E-4         ! detection of clouds for cloud mixing ratio > .1g/kg
 !
   GMASK2(:,:)=.TRUE.
-  ZWORK31(:,:,:)= MZM(1,IKU,1, XRT(:,:,:,2) ) ! cloud mixing ratio at zz levels
+  ZWORK31(:,:,:)= MZM( XRT(:,:,:,2) ) ! cloud mixing ratio at zz levels
   DO JK=IKE,IKB,-1
     WHERE ( (GMASK2(:,:)).AND.(ZWORK31(:,:,JK)>ZCLMR) )
       GMASK2(:,:)=.FALSE.
@@ -430,7 +430,7 @@ IF (LCLD_COV .AND. LUSERC) THEN
 !
   IF (LUSERI) THEN
     GMASK2(:,:)=.TRUE.
-    ZWORK31(:,:,:)= MZM(1,IKU,1, XRT(:,:,:,4) ) ! cloud mixing ratio at zz levels
+    ZWORK31(:,:,:)= MZM( XRT(:,:,:,4) ) ! cloud mixing ratio at zz levels
     DO JK=IKE,IKB,-1
       WHERE ( (GMASK2(:,:)).AND.(ZWORK31(:,:,JK)>ZCLMR) )
         GMASK2(:,:)=.FALSE.
@@ -466,7 +466,7 @@ IF (LCLD_COV .AND. LUSERC) THEN
 !  Higher top of the different species of clouds
 !
   IWORK1(:,:)=IKB  ! initialization with the ground values
-  ZWORK31(:,:,:)=MZM(1,IKU,1,ZTEMP(:,:,:)) ! temperature (K) at zz levels
+  ZWORK31(:,:,:)=MZM(ZTEMP(:,:,:)) ! temperature (K) at zz levels
   IF(CRAD/='NONE')  ZWORK31(:,:,IKB)=XTSRAD(:,:)
   ZWORK21(:,:)=0.
   ZWORK22(:,:)=0.
@@ -1124,7 +1124,7 @@ ALLOCATE(ZWORK34(IIU,IJU,IKU))
 ! *********************
 ! Geopotential in meters
 ! *********************
-  ZWORK31(:,:,:) = MZF(1,IKU,1,XZZ(:,:,:))
+  ZWORK31(:,:,:) = MZF(XZZ(:,:,:))
   CALL PINTER(ZWORK31, XPABST, XZZ, ZTEMP, ZWRES, ZPRES, &
            IIU, IJU, IKU, IKB, IPRES, 'LOG', 'RHU.')
   DO JK=1,IPRES
@@ -1203,8 +1203,8 @@ ALLOCATE(ZWORK34(IIU,IJU,IKU))
   ZWORK31(:,:,:)=GX_M_M(1,IKU,1,XTHT,XDXX,XDZZ,XDZX)
   ZWORK32(:,:,:)=GY_M_M(1,IKU,1,XTHT,XDYY,XDZZ,XDZY)
   ZWORK33(:,:,:)=GZ_M_M(1,IKU,1,XTHT,XDZZ)
-  ZPOVO(:,:,:)= ZWORK31(:,:,:)*MZF(1,IKU,1,MYF(ZVOX(:,:,:)))     &
-  + ZWORK32(:,:,:)*MZF(1,IKU,1,MXF(ZVOY(:,:,:)))     &
+  ZPOVO(:,:,:)= ZWORK31(:,:,:)*MZF(MYF(ZVOX(:,:,:)))     &
+  + ZWORK32(:,:,:)*MZF(MXF(ZVOY(:,:,:)))     &
    + ZWORK33(:,:,:)*(MYF(MXF(ZVOZ(:,:,:))) + ZCORIOZ(:,:,:))
   ZPOVO(:,:,:)= ZPOVO(:,:,:)*1E6/XRHODREF(:,:,:)
   ZPOVO(:,:,1)  =-1.E+11
@@ -1352,8 +1352,8 @@ IF (LISOAL .AND.XISOAL(1)/=0.) THEN
   ZWORK31(:,:,:)=GX_M_M(1,IKU,1,XTHT,XDXX,XDZZ,XDZX)
   ZWORK32(:,:,:)=GY_M_M(1,IKU,1,XTHT,XDYY,XDZZ,XDZY)
   ZWORK33(:,:,:)=GZ_M_M(1,IKU,1,XTHT,XDZZ)
-  ZPOVO(:,:,:)= ZWORK31(:,:,:)*MZF(1,IKU,1,MYF(ZVOX(:,:,:)))     &
-  + ZWORK32(:,:,:)*MZF(1,IKU,1,MXF(ZVOY(:,:,:)))     &
+  ZPOVO(:,:,:)= ZWORK31(:,:,:)*MZF(MYF(ZVOX(:,:,:)))     &
+  + ZWORK32(:,:,:)*MZF(MXF(ZVOY(:,:,:)))     &
    + ZWORK33(:,:,:)*(MYF(MXF(ZVOZ(:,:,:))) + ZCORIOZ(:,:,:))
   ZPOVO(:,:,:)= ZPOVO(:,:,:)*1E6/XRHODREF(:,:,:)
   ZPOVO(:,:,1)  =-1.E+11
@@ -1450,7 +1450,7 @@ IF (LCOARSE) THEN
   CALL BLOCKAVG(ZWORK31,IDX,IDX,ZUU_AVG)
   ZWORK31=MYF(ZVT_PRM*ZVT_PRM)
   CALL BLOCKAVG(ZWORK31,IDX,IDX,ZVV_AVG)
-  ZWORK31=MZF(1,IKU,1,ZWT_PRM*ZWT_PRM)
+  ZWORK31=MZF(ZWT_PRM*ZWT_PRM)
   CALL BLOCKAVG(ZWORK31,IDX,IDX,ZWW_AVG)
   CALL BLOCKAVG(XTKET,IDX,IDX,ZWORK31)
   ZWORK31=0.5*( ZUU_AVG+ZVV_AVG+ZWW_AVG ) + ZWORK31
@@ -1480,7 +1480,7 @@ IF (LCOARSE) THEN
   CALL MOVINGAVG(ZWORK31,IDX,IDX,ZUU_AVG)
   ZWORK31=MYF(ZVT_PRM*ZVT_PRM)
   CALL MOVINGAVG(ZWORK31,IDX,IDX,ZVV_AVG)
-  ZWORK31=MZF(1,IKU,1,ZWT_PRM*ZWT_PRM)
+  ZWORK31=MZF(ZWT_PRM*ZWT_PRM)
   CALL MOVINGAVG(ZWORK31,IDX,IDX,ZWW_AVG)
   CALL MOVINGAVG(XTKET,IDX,IDX,ZWORK31)
   ZWORK31=0.5*( ZUU_AVG+ZVV_AVG+ZWW_AVG ) + ZWORK31
diff --git a/src/MNH/zdiffusetup.f90 b/src/MNH/zdiffusetup.f90
index 3b7abb83c752596d0e25eb7aa264231b45efe6b0..955853512eb79517e052560b117e01f2952d3117 100644
--- a/src/MNH/zdiffusetup.f90
+++ b/src/MNH/zdiffusetup.f90
@@ -1,4 +1,4 @@
-!MNH_LIC Copyright 2006-2019 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 2006-2020 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
 !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
@@ -151,7 +151,7 @@ ALLOCATE (ZN4HGTI_HALO2(IIB-2:IIE+2,IJB-2:IJE+2),ZN4HGTJ_HALO2(IIB-2:IIE+2,IJB-2
 NULLIFY(TZHGTMASS_ll,TZHGTHALO2_ll)
 
 ! Compute height field at mass points
-ZZMASS = MZF(1,IKU,1,PZZ)
+ZZMASS = MZF(PZZ)
 
 CALL INIT_HALO2_ll(TZHGTHALO2_ll,1,IIU,IJU,IKU)
 CALL ADD3DFIELD_ll( TZHGTMASS_ll, ZZMASS, 'ZDIFFUSETUP::ZZMASS' )