diff --git a/src/MNH/gradient_m.f90 b/src/MNH/gradient_m.f90
index b74fb40d947f7c3ace3aba78574019cc06d47e59..f99ed00d5a50afb89410f694d5d1e6bc34a85f69 100644
--- a/src/MNH/gradient_m.f90
+++ b/src/MNH/gradient_m.f90
@@ -23,9 +23,7 @@ END FUNCTION GX_M_M
 !
 !
 #ifdef MNH_OPENACC
-SUBROUTINE GX_M_M_DEVICE(KKA,KKU,KL,PA,PDXX,PDZZ,PDZX,PGX_M_M)
-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
+SUBROUTINE GX_M_M_DEVICE(PA,PDXX,PDZZ,PDZX,PGX_M_M)
 REAL, DIMENSION(:,:,:),  INTENT(IN)  :: PA      ! variable at the mass point
 REAL, DIMENSION(:,:,:),  INTENT(IN)  :: PDXX    ! metric coefficient dxx
 REAL, DIMENSION(:,:,:),  INTENT(IN)  :: PDZZ    ! metric coefficient dzz
@@ -49,9 +47,7 @@ END FUNCTION GY_M_M
 !
 !
 #ifdef MNH_OPENACC
-SUBROUTINE GY_M_M_DEVICE(KKA,KKU,KL,PA,PDYY,PDZZ,PDZY,PGY_M_M)
-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
+SUBROUTINE GY_M_M_DEVICE(PA,PDYY,PDZZ,PDZY,PGY_M_M)
 REAL, DIMENSION(:,:,:),  INTENT(IN)  :: PA      ! variable at the mass point
 REAL, DIMENSION(:,:,:),  INTENT(IN)  :: PDYY    ! metric coefficient dyy
 REAL, DIMENSION(:,:,:),  INTENT(IN)  :: PDZZ    ! metric coefficient dzz
@@ -74,9 +70,7 @@ END FUNCTION GZ_M_M
 !
 !
 #ifdef MNH_OPENACC
-SUBROUTINE GZ_M_M_DEVICE(KKA,KKU,KL,PA,PDZZ,PGZ_M_M)
-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
+SUBROUTINE GZ_M_M_DEVICE(PA,PDZZ,PGZ_M_M)
 REAL, DIMENSION(:,:,:),  INTENT(IN)  :: PA      ! variable at the mass point
 REAL, DIMENSION(:,:,:),  INTENT(IN)  :: PDZZ    ! metric coefficient dzz
 !
@@ -276,7 +270,7 @@ END FUNCTION GX_M_M
 !
 #ifdef MNH_OPENACC
 !     #######################################################
-      SUBROUTINE GX_M_M_DEVICE(KKA,KKU,KL,PA,PDXX,PDZZ,PDZX,PGX_M_M)
+      SUBROUTINE GX_M_M_DEVICE(PA,PDXX,PDZZ,PDZX,PGX_M_M)
 !     #######################################################
 !
 !*       0.    DECLARATIONS
@@ -292,8 +286,6 @@ IMPLICIT NONE
 !
 !*       0.1   declarations of arguments 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 the mass point
 REAL, DIMENSION(:,:,:),  INTENT(IN)  :: PDXX    ! metric coefficient dxx
 REAL, DIMENSION(:,:,:),  INTENT(IN)  :: PDZZ    ! metric coefficient dzz
@@ -446,7 +438,7 @@ END FUNCTION GY_M_M
 !
 #ifdef MNH_OPENACC
 !     #######################################################
-      SUBROUTINE GY_M_M_DEVICE(KKA,KKU,KL,PA,PDYY,PDZZ,PDZY,PGY_M_M)
+      SUBROUTINE GY_M_M_DEVICE(PA,PDYY,PDZZ,PDZY,PGY_M_M)
 !     #######################################################
 !
 !*       0.    DECLARATIONS
@@ -462,8 +454,6 @@ IMPLICIT NONE
 !
 !*       0.1   declarations of arguments 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 the mass point
 REAL, DIMENSION(:,:,:),  INTENT(IN)  :: PDYY    ! metric coefficient dyy
 REAL, DIMENSION(:,:,:),  INTENT(IN)  :: PDZZ    ! metric coefficient dzz
@@ -602,7 +592,7 @@ END FUNCTION GZ_M_M
 !
 #ifdef MNH_OPENACC
 !     #######################################################
-      SUBROUTINE GZ_M_M_DEVICE(KKA,KKU,KL,PA,PDZZ,PGZ_M_M)
+      SUBROUTINE GZ_M_M_DEVICE(PA,PDZZ,PGZ_M_M)
 !     #######################################################
 !
 !*       0.    DECLARATIONS
@@ -618,8 +608,6 @@ IMPLICIT NONE
 !
 !*       0.1   declarations of arguments 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 the mass point
 REAL, DIMENSION(:,:,:),  INTENT(IN)  :: PDZZ    ! metric coefficient dzz
 !
diff --git a/src/MNH/prandtl.f90 b/src/MNH/prandtl.f90
index af2fb057768313d44db11abdb482884215f10fb5..4f07ff0d0ce8ced2e9365b4012f7c8119309fd8e 100644
--- a/src/MNH/prandtl.f90
+++ b/src/MNH/prandtl.f90
@@ -1,4 +1,4 @@
-!MNH_LIC Copyright 1994-2021 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 1994-2022 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.
@@ -563,7 +563,7 @@ ELSE IF (L2D) THEN                      ! 3D case in a 2D model
 #endif
     PRED2TH3(:,:,IKB)=PRED2TH3(:,:,IKB+KKL)
 #else
-    CALL GX_M_M_DEVICE(KKA,KKU,KKL,PTHLM,PDXX,PDZZ,PDZX,ZTMP1_DEVICE)
+    CALL GX_M_M_DEVICE(PTHLM,PDXX,PDZZ,PDZX,ZTMP1_DEVICE)
 !$acc kernels
 #ifndef MNH_BITREP
 !$acc loop independent collapse(3)    
@@ -604,7 +604,7 @@ ELSE IF (L2D) THEN                      ! 3D case in a 2D model
 #endif
     PRED2R3(:,:,IKB)=PRED2R3(:,:,IKB+KKL)
 #else
-    CALL GX_M_M_DEVICE(KKA,KKU,KKL,PRM(:,:,:,1),PDXX,PDZZ,PDZX,ZTMP1_DEVICE)
+    CALL GX_M_M_DEVICE(PRM(:,:,:,1),PDXX,PDZZ,PDZX,ZTMP1_DEVICE)
 !$acc kernels
 #ifndef MNH_BITREP
     !$acc loop independent collapse(3)
@@ -646,8 +646,8 @@ ELSE IF (L2D) THEN                      ! 3D case in a 2D model
                      GX_M_M(PTHLM,PDXX,PDZZ,PDZX))
     PRED2THR3(:,:,IKB)=PRED2THR3(:,:,IKB+KKL)
 #else
-    CALL GX_M_M_DEVICE(KKA,KKU,KKL,PRM(:,:,:,1),PDXX,PDZZ,PDZX,ZTMP1_DEVICE)
-    CALL GX_M_M_DEVICE(KKA,KKU,KKL,PTHLM       ,PDXX,PDZZ,PDZX,ZTMP2_DEVICE)
+    CALL GX_M_M_DEVICE(PRM(:,:,:,1),PDXX,PDZZ,PDZX,ZTMP1_DEVICE)
+    CALL GX_M_M_DEVICE(PTHLM       ,PDXX,PDZZ,PDZX,ZTMP2_DEVICE)
 !$acc kernels
 !$acc loop independent collapse(3)    
     DO CONCURRENT ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)    
@@ -687,7 +687,7 @@ call Print_msg( NVERB_WARNING, 'GEN', 'PRANDTL', 'OpenACC: L2D=.T. and KRR=0 not
 #endif
     PRED2TH3(:,:,IKB)=PRED2TH3(:,:,IKB+KKL)
 #else
-    CALL GX_M_M_DEVICE(KKA,KKU,KKL,PTHLM,PDXX,PDZZ,PDZX,ZTMP1_DEVICE)
+    CALL GX_M_M_DEVICE(PTHLM,PDXX,PDZZ,PDZX,ZTMP1_DEVICE)
 !$acc kernels
 #ifndef MNH_BITREP
     DO CONCURRENT ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)
@@ -743,8 +743,8 @@ ELSE                                 ! 3D case in a 3D model
 #endif
     PRED2TH3(:,:,IKB)=PRED2TH3(:,:,IKB+KKL)
 #else
-    CALL GX_M_M_DEVICE(KKA,KKU,KKL,PTHLM,PDXX,PDZZ,PDZX,ZTMP1_DEVICE)
-    CALL GY_M_M_DEVICE(KKA,KKU,KKL,PTHLM,PDYY,PDZZ,PDZY,ZTMP2_DEVICE)
+    CALL GX_M_M_DEVICE(PTHLM,PDXX,PDZZ,PDZX,ZTMP1_DEVICE)
+    CALL GY_M_M_DEVICE(PTHLM,PDYY,PDZZ,PDZY,ZTMP2_DEVICE)
 !$acc kernels
 #ifndef MNH_BITREP
 !$acc loop independent collapse(3)    
@@ -787,8 +787,8 @@ ELSE                                 ! 3D case in a 3D model
 #endif
     PRED2R3(:,:,IKB)=PRED2R3(:,:,IKB+KKL)
 #else
-    CALL GX_M_M_DEVICE(KKA,KKU,KKL,PRM(:,:,:,1),PDXX,PDZZ,PDZX,ZTMP1_DEVICE)
-    CALL GY_M_M_DEVICE(KKA,KKU,KKL,PRM(:,:,:,1),PDYY,PDZZ,PDZY,ZTMP2_DEVICE)
+    CALL GX_M_M_DEVICE(PRM(:,:,:,1),PDXX,PDZZ,PDZX,ZTMP1_DEVICE)
+    CALL GY_M_M_DEVICE(PRM(:,:,:,1),PDYY,PDZZ,PDZY,ZTMP2_DEVICE)
 !$acc kernels
 #ifndef MNH_BITREP
 !$acc loop independent collapse(3)    
@@ -834,10 +834,10 @@ ELSE                                 ! 3D case in a 3D model
          GY_M_M(PTHLM,PDYY,PDZZ,PDZY) )
     PRED2THR3(:,:,IKB)=PRED2THR3(:,:,IKB+KKL)
 #else
-    CALL GX_M_M_DEVICE(KKA,KKU,KKL,PRM(:,:,:,1),PDXX,PDZZ,PDZX,ZTMP1_DEVICE)
-    CALL GX_M_M_DEVICE(KKA,KKU,KKL,PTHLM       ,PDXX,PDZZ,PDZX,ZTMP2_DEVICE)
-    CALL GY_M_M_DEVICE(KKA,KKU,KKL,PRM(:,:,:,1),PDYY,PDZZ,PDZY,ZTMP3_DEVICE)
-    CALL GY_M_M_DEVICE(KKA,KKU,KKL,PTHLM       ,PDYY,PDZZ,PDZY,ZTMP4_DEVICE)
+    CALL GX_M_M_DEVICE(PRM(:,:,:,1),PDXX,PDZZ,PDZX,ZTMP1_DEVICE)
+    CALL GX_M_M_DEVICE(PTHLM       ,PDXX,PDZZ,PDZX,ZTMP2_DEVICE)
+    CALL GY_M_M_DEVICE(PRM(:,:,:,1),PDYY,PDZZ,PDZY,ZTMP3_DEVICE)
+    CALL GY_M_M_DEVICE(PTHLM       ,PDYY,PDZZ,PDZY,ZTMP4_DEVICE)
 !$acc kernels
 !$acc loop independent collapse(3)    
     DO CONCURRENT ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)    
@@ -877,8 +877,8 @@ call Print_msg( NVERB_WARNING, 'GEN', 'PRANDTL', 'OpenACC: L2D=.F. and KRR=0 not
       + BR_P2(GY_M_M(PTHLM,PDYY,PDZZ,PDZY)) )
 #endif
 #else
-    CALL GX_M_M_DEVICE(KKA,KKU,KKL,PTHLM,PDXX,PDZZ,PDZX,ZTMP1_DEVICE)
-    CALL GY_M_M_DEVICE(KKA,KKU,KKL,PTHLM,PDYY,PDZZ,PDZY,ZTMP2_DEVICE)
+    CALL GX_M_M_DEVICE(PTHLM,PDXX,PDZZ,PDZX,ZTMP1_DEVICE)
+    CALL GY_M_M_DEVICE(PTHLM,PDYY,PDZZ,PDZY,ZTMP2_DEVICE)
 !$acc kernels
 #ifndef MNH_BITREP
 !$acc loop independent collapse(3)    
@@ -1014,8 +1014,8 @@ ELSE  IF (L2D) THEN ! 3D case in a 2D model
                              GX_M_M(PTHLM,PDXX,PDZZ,PDZX)                  &
                           )
 #else
-      CALL GX_M_M_DEVICE(KKA,KKU,KKL,PSVM(:,:,:,JSV),PDXX,PDZZ,PDZX,ZTMP1_DEVICE)
-      CALL GX_M_M_DEVICE(KKA,KKU,KKL,PTHLM          ,PDXX,PDZZ,PDZX,ZTMP2_DEVICE)
+      CALL GX_M_M_DEVICE(PSVM(:,:,:,JSV),PDXX,PDZZ,PDZX,ZTMP1_DEVICE)
+      CALL GX_M_M_DEVICE(PTHLM          ,PDXX,PDZZ,PDZX,ZTMP2_DEVICE)
 !$acc kernels
       ZTMP1_DEVICE(:,:,:) = ZTMP1_DEVICE(:,:,:)*ZTMP2_DEVICE(:,:,:)
 !$acc end kernels
@@ -1033,8 +1033,8 @@ ELSE  IF (L2D) THEN ! 3D case in a 2D model
                              GX_M_M(PRM(:,:,:,1),PDXX,PDZZ,PDZX)           &
                           )
 #else
-        CALL GX_M_M_DEVICE(KKA,KKU,KKL,PSVM(:,:,:,JSV),PDXX,PDZZ,PDZX,ZTMP1_DEVICE)
-        CALL GX_M_M_DEVICE(KKA,KKU,KKL,PRM(:,:,:,1)   ,PDXX,PDZZ,PDZX,ZTMP2_DEVICE)
+        CALL GX_M_M_DEVICE(PSVM(:,:,:,JSV),PDXX,PDZZ,PDZX,ZTMP1_DEVICE)
+        CALL GX_M_M_DEVICE(PRM(:,:,:,1)   ,PDXX,PDZZ,PDZX,ZTMP2_DEVICE)
 !$acc kernels
         ZTMP1_DEVICE(:,:,:) = ZTMP1_DEVICE(:,:,:)*ZTMP2_DEVICE(:,:,:)
 !$acc end kernels
@@ -1095,10 +1095,10 @@ ELSE ! 3D case in a 3D model
                            GY_M_M(PTHLM,PDYY,PDZZ,PDZY)                  &
                           )
 #else
-    CALL GX_M_M_DEVICE(KKA,KKU,KKL,PSVM(:,:,:,JSV),PDXX,PDZZ,PDZX,ZTMP1_DEVICE)
-    CALL GX_M_M_DEVICE(KKA,KKU,KKL,PTHLM          ,PDXX,PDZZ,PDZX,ZTMP2_DEVICE)
-    CALL GY_M_M_DEVICE(KKA,KKU,KKL,PSVM(:,:,:,JSV),PDYY,PDZZ,PDZY,ZTMP3_DEVICE)
-    CALL GY_M_M_DEVICE(KKA,KKU,KKL,PTHLM          ,PDYY,PDZZ,PDZY,ZTMP4_DEVICE)
+    CALL GX_M_M_DEVICE(PSVM(:,:,:,JSV),PDXX,PDZZ,PDZX,ZTMP1_DEVICE)
+    CALL GX_M_M_DEVICE(PTHLM          ,PDXX,PDZZ,PDZX,ZTMP2_DEVICE)
+    CALL GY_M_M_DEVICE(PSVM(:,:,:,JSV),PDYY,PDZZ,PDZY,ZTMP3_DEVICE)
+    CALL GY_M_M_DEVICE(PTHLM          ,PDYY,PDZZ,PDZY,ZTMP4_DEVICE)
 !$acc kernels
     ZTMP1_DEVICE(:,:,:) = ZTMP1_DEVICE(:,:,:)*ZTMP2_DEVICE(:,:,:)+&
                                       ZTMP3_DEVICE(:,:,:)*ZTMP4_DEVICE(:,:,:)
@@ -1120,10 +1120,10 @@ ELSE ! 3D case in a 3D model
                            GY_M_M(PRM(:,:,:,1),PDYY,PDZZ,PDZY)           &
                           )
 #else
-      CALL GX_M_M_DEVICE(KKA,KKU,KKL,PSVM(:,:,:,JSV),PDXX,PDZZ,PDZX,ZTMP1_DEVICE)
-      CALL GX_M_M_DEVICE(KKA,KKU,KKL,PRM(:,:,:,1)   ,PDXX,PDZZ,PDZX,ZTMP2_DEVICE)
-      CALL GY_M_M_DEVICE(KKA,KKU,KKL,PSVM(:,:,:,JSV),PDYY,PDZZ,PDZY,ZTMP3_DEVICE)
-      CALL GY_M_M_DEVICE(KKA,KKU,KKL,PRM(:,:,:,1)   ,PDYY,PDZZ,PDZY,ZTMP4_DEVICE)
+      CALL GX_M_M_DEVICE(PSVM(:,:,:,JSV),PDXX,PDZZ,PDZX,ZTMP1_DEVICE)
+      CALL GX_M_M_DEVICE(PRM(:,:,:,1)   ,PDXX,PDZZ,PDZX,ZTMP2_DEVICE)
+      CALL GY_M_M_DEVICE(PSVM(:,:,:,JSV),PDYY,PDZZ,PDZY,ZTMP3_DEVICE)
+      CALL GY_M_M_DEVICE(PRM(:,:,:,1)   ,PDYY,PDZZ,PDZY,ZTMP4_DEVICE)
 !$acc kernels
       ZTMP1_DEVICE(:,:,:) = ZTMP1_DEVICE(:,:,:)*ZTMP2_DEVICE(:,:,:)+&
                                         ZTMP3_DEVICE(:,:,:)*ZTMP4_DEVICE(:,:,:)
diff --git a/src/MNH/turb_hor_dyn_corr.f90 b/src/MNH/turb_hor_dyn_corr.f90
index 4581679589ed22c2803b123df662ce4b0e0f4857..5ce8a931f14d6b2306ae529b2d5199e4f47c77f5 100644
--- a/src/MNH/turb_hor_dyn_corr.f90
+++ b/src/MNH/turb_hor_dyn_corr.f90
@@ -1202,7 +1202,7 @@ IF (LLES_CALL .AND. KSPLT==1) THEN
   !$acc end kernels
   CALL LES_MEAN_SUBGRID( ZTMP1_DEVICE, X_LES_RES_ddxa_W_SBG_UaW , .TRUE.)
   !
-  CALL GZ_M_M_DEVICE(1,IKU,1,PTHLM,PDZZ,ZTMP1_DEVICE)
+  CALL GZ_M_M_DEVICE(PTHLM,PDZZ,ZTMP1_DEVICE)
   !$acc kernels
   ZTMP2_DEVICE = ZTMP1_DEVICE * ZFLX
   !$acc end kernels
@@ -1220,7 +1220,7 @@ IF (LLES_CALL .AND. KSPLT==1) THEN
   IF (KRR>=1) THEN
 !$acc data copy(X_LES_RES_ddxa_Rt_SBG_UaW,X_LES_RES_ddz_Rt_SBG_W2)
     !
-    CALL GZ_M_M_DEVICE(1,IKU,1,PRM(:,:,:,1),PDZZ,ZTMP1_DEVICE)
+    CALL GZ_M_M_DEVICE(PRM(:,:,:,1),PDZZ,ZTMP1_DEVICE)
     !$acc kernels
     ZTMP2_DEVICE = ZTMP1_DEVICE*ZFLX
     !$acc end kernels
@@ -1239,7 +1239,7 @@ IF (LLES_CALL .AND. KSPLT==1) THEN
   DO JSV=1,NSV
     !
     !
-    CALL GZ_M_M_DEVICE(1,IKU,1,PSVM(:,:,:,JSV),PDZZ,ZTMP1_DEVICE)
+    CALL GZ_M_M_DEVICE(PSVM(:,:,:,JSV),PDZZ,ZTMP1_DEVICE)
     !$acc kernels
     ZTMP2_DEVICE = ZTMP1_DEVICE*ZFLX
     !$acc end kernels
diff --git a/src/MNH/turb_hor_sv_flux.f90 b/src/MNH/turb_hor_sv_flux.f90
index 39692bb03b13808d218a0a8c0ec3f519eeff4f24..9870a9e6ff996f8397b94825e029ad50e6d39751 100644
--- a/src/MNH/turb_hor_sv_flux.f90
+++ b/src/MNH/turb_hor_sv_flux.f90
@@ -401,7 +401,7 @@ DO JSV=1,ISV
     CALL MZF_DEVICE( ZTMP1_DEVICE, ZTMP2_DEVICE )
     CALL LES_MEAN_SUBGRID( ZTMP2_DEVICE, X_LES_RES_ddxa_W_SBG_UaSv(:,:,:,JSV) , .TRUE. )
     !
-    CALL GX_M_M_DEVICE(1,IKU,1,PSVM(:,:,:,JSV),PDXX,PDZZ,PDZX,ZTMP1_DEVICE)
+    CALL GX_M_M_DEVICE(PSVM(:,:,:,JSV),PDXX,PDZZ,PDZX,ZTMP1_DEVICE)
     CALL MXF_DEVICE(ZFLXX,ZTMP2_DEVICE)
     !$acc kernels
     ZTMP3_DEVICE = ZTMP1_DEVICE*ZTMP2_DEVICE
@@ -520,7 +520,7 @@ DO JSV=1,ISV
     CALL MZF_DEVICE( ZTMP1_DEVICE, ZTMP2_DEVICE )
     CALL LES_MEAN_SUBGRID( ZTMP2_DEVICE,X_LES_RES_ddxa_W_SBG_UaSv(:,:,:,JSV) , .TRUE. )
     !
-    CALL GY_M_M_DEVICE(1,IKU,1,PSVM(:,:,:,JSV),PDYY,PDZZ,PDZY,ZTMP1_DEVICE)
+    CALL GY_M_M_DEVICE(PSVM(:,:,:,JSV),PDYY,PDZZ,PDZY,ZTMP1_DEVICE)
     CALL MYF_DEVICE(ZFLXY,ZTMP2_DEVICE)
     !$acc kernels
     ZTMP3_DEVICE = ZTMP1_DEVICE*ZTMP2_DEVICE
diff --git a/src/MNH/turb_hor_thermo_corr.f90 b/src/MNH/turb_hor_thermo_corr.f90
index f0bf84af1834082b8e21ebe2e329e54fc6dea157..eb3ec18e89228d15e304b4defed7e995ec98d318 100644
--- a/src/MNH/turb_hor_thermo_corr.f90
+++ b/src/MNH/turb_hor_thermo_corr.f90
@@ -346,8 +346,8 @@ IF ( ( KRRL > 0 .AND. OSUBG_COND) .OR. ( OTURB_FLX .AND. tpfile%lopened ) &
   END IF
 #else
   IF (.NOT. L2D) THEN
-    CALL GX_M_M_DEVICE(1,IKU,1,PTHLM,PDXX,PDZZ,PDZX,ZTMP1_DEVICE)
-    CALL GY_M_M_DEVICE(1,IKU,1,PTHLM,PDYY,PDZZ,PDZY,ZTMP2_DEVICE)
+    CALL GX_M_M_DEVICE(PTHLM,PDXX,PDZZ,PDZX,ZTMP1_DEVICE)
+    CALL GY_M_M_DEVICE(PTHLM,PDYY,PDZZ,PDZY,ZTMP2_DEVICE)
 !$acc kernels
 #ifndef MNH_BITREP
     ZFLX(:,:,:) = XCTV * PLM(:,:,:) * PLEPS(:,:,:) * ( ZTMP1_DEVICE(:,:,:)**2 + ZTMP2_DEVICE(:,:,:)**2 )
@@ -356,7 +356,7 @@ IF ( ( KRRL > 0 .AND. OSUBG_COND) .OR. ( OTURB_FLX .AND. tpfile%lopened ) &
 #endif
 !$acc end kernels
   ELSE
-    CALL GX_M_M_DEVICE(1,IKU,1,PTHLM,PDXX,PDZZ,PDZX,ZTMP1_DEVICE)
+    CALL GX_M_M_DEVICE(PTHLM,PDXX,PDZZ,PDZX,ZTMP1_DEVICE)
 !$acc kernels
 #ifndef MNH_BITREP
     ZFLX(:,:,:) = XCTV * PLM(:,:,:) * PLEPS(:,:,:) * ZTMP1_DEVICE(:,:,:)**2
@@ -512,17 +512,17 @@ IF ( ( KRRL > 0 .AND. OSUBG_COND) .OR. ( OTURB_FLX .AND. tpfile%lopened ) &
     END IF
 #else
     IF (.NOT. L2D) THEN
-      CALL GX_M_M_DEVICE(1,IKU,1,PTHLM       ,PDXX,PDZZ,PDZX,ZTMP1_DEVICE)
-      CALL GX_M_M_DEVICE(1,IKU,1,PRM(:,:,:,1),PDXX,PDZZ,PDZX,ZTMP2_DEVICE)
-      CALL GY_M_M_DEVICE(1,IKU,1,PTHLM       ,PDYY,PDZZ,PDZY,ZTMP3_DEVICE)
-      CALL GY_M_M_DEVICE(1,IKU,1,PRM(:,:,:,1),PDYY,PDZZ,PDZY,ZTMP4_DEVICE)
+      CALL GX_M_M_DEVICE(PTHLM       ,PDXX,PDZZ,PDZX,ZTMP1_DEVICE)
+      CALL GX_M_M_DEVICE(PRM(:,:,:,1),PDXX,PDZZ,PDZX,ZTMP2_DEVICE)
+      CALL GY_M_M_DEVICE(PTHLM       ,PDYY,PDZZ,PDZY,ZTMP3_DEVICE)
+      CALL GY_M_M_DEVICE(PRM(:,:,:,1),PDYY,PDZZ,PDZY,ZTMP4_DEVICE)
 !$acc kernels
       ZFLX(:,:,:)=PLM(:,:,:) * PLEPS(:,:,:) * (ZTMP1_DEVICE(:,:,:)*ZTMP2_DEVICE(:,:,:) &
                  +ZTMP3_DEVICE(:,:,:)*ZTMP4_DEVICE(:,:,:) ) * (XCHT1+XCHT2)
 !$acc end kernels
     ELSE
-      CALL GX_M_M_DEVICE(1,IKU,1,PTHLM       ,PDXX,PDZZ,PDZX,ZTMP1_DEVICE)
-      CALL GX_M_M_DEVICE(1,IKU,1,PRM(:,:,:,1),PDXX,PDZZ,PDZX,ZTMP2_DEVICE)
+      CALL GX_M_M_DEVICE(PTHLM       ,PDXX,PDZZ,PDZX,ZTMP1_DEVICE)
+      CALL GX_M_M_DEVICE(PRM(:,:,:,1),PDXX,PDZZ,PDZX,ZTMP2_DEVICE)
 !$acc kernels
       ZFLX(:,:,:)=PLM(:,:,:) * PLEPS(:,:,:) * (ZTMP1_DEVICE(:,:,:)*ZTMP2_DEVICE(:,:,:)) * (XCHT1+XCHT2)
 !$acc end kernels
@@ -725,8 +725,8 @@ IF ( ( KRRL > 0 .AND. OSUBG_COND) .OR. ( OTURB_FLX .AND. tpfile%lopened ) &
     END IF
 #else
     IF (.NOT. L2D) THEN
-      CALL GX_M_M_DEVICE(1,IKU,1,PRM(:,:,:,1),PDXX,PDZZ,PDZX,ZTMP1_DEVICE)
-      CALL GY_M_M_DEVICE(1,IKU,1,PRM(:,:,:,1),PDYY,PDZZ,PDZY,ZTMP2_DEVICE)
+      CALL GX_M_M_DEVICE(PRM(:,:,:,1),PDXX,PDZZ,PDZX,ZTMP1_DEVICE)
+      CALL GY_M_M_DEVICE(PRM(:,:,:,1),PDYY,PDZZ,PDZY,ZTMP2_DEVICE)
 !$acc kernels
 #ifndef MNH_BITREP
       ZFLX(:,:,:) = XCHV * PLM(:,:,:) * PLEPS(:,:,:) * ( ZTMP1_DEVICE(:,:,:)**2 + ZTMP2_DEVICE(:,:,:)**2 )
@@ -735,7 +735,7 @@ IF ( ( KRRL > 0 .AND. OSUBG_COND) .OR. ( OTURB_FLX .AND. tpfile%lopened ) &
 #endif
 !$acc end kernels
     ELSE
-      CALL GX_M_M_DEVICE(1,IKU,1,PRM(:,:,:,1),PDXX,PDZZ,PDZX,ZTMP1_DEVICE)
+      CALL GX_M_M_DEVICE(PRM(:,:,:,1),PDXX,PDZZ,PDZX,ZTMP1_DEVICE)
 !$acc kernels
 #ifndef MNH_BITREP
       ZFLX(:,:,:) = XCHV * PLM(:,:,:) * PLEPS(:,:,:) * ZTMP1_DEVICE(:,:,:)**2
diff --git a/src/MNH/turb_hor_thermo_flux.f90 b/src/MNH/turb_hor_thermo_flux.f90
index 9b88a408c3e561d7df4b4b5c8328d5c098764e40..8cd6d6b5fb08e2817968d1408bfa1171b8a504f4 100644
--- a/src/MNH/turb_hor_thermo_flux.f90
+++ b/src/MNH/turb_hor_thermo_flux.f90
@@ -635,7 +635,7 @@ IF (KSPLT==1 .AND. LLES_CALL) THEN
   CALL MZF_DEVICE( ZTMP1_DEVICE, ZTMP2_DEVICE )
   CALL LES_MEAN_SUBGRID( ZTMP2_DEVICE,X_LES_RES_ddxa_W_SBG_UaThl , .TRUE. )
   !
-  CALL GX_M_M_DEVICE(1,IKU,1,PTHLM,PDXX,PDZZ,PDZX,ZTMP1_DEVICE)
+  CALL GX_M_M_DEVICE(PTHLM,PDXX,PDZZ,PDZX,ZTMP1_DEVICE)
   CALL MXF_DEVICE(ZFLX,ZTMP2_DEVICE)
   !$acc kernels
   ZTMP3_DEVICE(:,:,:) = ZTMP1_DEVICE(:,:,:) * ZTMP2_DEVICE(:,:,:)
@@ -643,7 +643,7 @@ IF (KSPLT==1 .AND. LLES_CALL) THEN
   CALL LES_MEAN_SUBGRID( ZTMP3_DEVICE,X_LES_RES_ddxa_Thl_SBG_UaThl , .TRUE. )
   !
   IF (KRR>=1) THEN
-    CALL GX_M_M_DEVICE(1,IKU,1,PRM(:,:,:,1),PDXX,PDZZ,PDZX,ZTMP1_DEVICE)
+    CALL GX_M_M_DEVICE(PRM(:,:,:,1),PDXX,PDZZ,PDZX,ZTMP1_DEVICE)
     !$acc kernels
     ZTMP3_DEVICE(:,:,:) = ZTMP1_DEVICE(:,:,:) * ZTMP2_DEVICE(:,:,:)
     !$acc end kernels
@@ -964,14 +964,14 @@ END DO
     CALL MZF_DEVICE( ZTMP4_DEVICE, ZTMP3_DEVICE )
     CALL LES_MEAN_SUBGRID( ZTMP3_DEVICE, X_LES_RES_ddxa_W_SBG_UaRt , .TRUE. )
     !
-    CALL GX_M_M_DEVICE(1,IKU,1,PTHLM,PDXX,PDZZ,PDZX,ZTMP1_DEVICE)
+    CALL GX_M_M_DEVICE(PTHLM,PDXX,PDZZ,PDZX,ZTMP1_DEVICE)
     CALL MXF_DEVICE(ZFLX,ZTMP2_DEVICE)
     !$acc kernels
     ZTMP3_DEVICE(:,:,:) = ZTMP1_DEVICE(:,:,:)*ZTMP2_DEVICE(:,:,:)
     !$acc end kernels
     CALL LES_MEAN_SUBGRID( ZTMP3_DEVICE, X_LES_RES_ddxa_Thl_SBG_UaRt , .TRUE. )
     !
-    CALL GX_M_M_DEVICE(1,IKU,1,PRM(:,:,:,1),PDXX,PDZZ,PDZX,ZTMP1_DEVICE)
+    CALL GX_M_M_DEVICE(PRM(:,:,:,1),PDXX,PDZZ,PDZX,ZTMP1_DEVICE)
     CALL MXF_DEVICE(ZFLX,ZTMP2_DEVICE)
     !$acc kernels
     ZTMP3_DEVICE(:,:,:) = ZTMP1_DEVICE(:,:,:)*ZTMP2_DEVICE(:,:,:)
@@ -1365,7 +1365,7 @@ IF (KSPLT==1 .AND. LLES_CALL) THEN
   CALL MZF_DEVICE( ZTMP4_DEVICE, ZTMP1_DEVICE )
   CALL LES_MEAN_SUBGRID( ZTMP1_DEVICE, X_LES_RES_ddxa_W_SBG_UaThl , .TRUE. )
   !
-  CALL GY_M_M_DEVICE(1,IKU,1,PTHLM,PDYY,PDZZ,PDZY,ZTMP1_DEVICE)
+  CALL GY_M_M_DEVICE(PTHLM,PDYY,PDZZ,PDZY,ZTMP1_DEVICE)
   CALL MYF_DEVICE(ZFLX,ZTMP2_DEVICE)
   !$acc kernels
   ZTMP3_DEVICE(:,:,:) = ZTMP1_DEVICE(:,:,:) * ZTMP2_DEVICE(:,:,:)
@@ -1376,7 +1376,7 @@ IF (KSPLT==1 .AND. LLES_CALL) THEN
   !
   IF (KRR>=1) THEN
 !$acc data copy(X_LES_RES_ddxa_Rt_SBG_UaThl)
-    CALL GY_M_M_DEVICE(1,IKU,1,PRM(:,:,:,1),PDYY,PDZZ,PDZY,ZTMP1_DEVICE)
+    CALL GY_M_M_DEVICE(PRM(:,:,:,1),PDYY,PDZZ,PDZY,ZTMP1_DEVICE)
     CALL MYF_DEVICE(ZFLX,ZTMP2_DEVICE)
     !$acc kernels
     ZTMP3_DEVICE(:,:,:) = ZTMP1_DEVICE(:,:,:) * ZTMP2_DEVICE(:,:,:)
@@ -1723,14 +1723,14 @@ IF (KRR/=0) THEN
     CALL MZF_DEVICE( ZTMP4_DEVICE, ZTMP1_DEVICE )
     CALL LES_MEAN_SUBGRID( ZTMP1_DEVICE,X_LES_RES_ddxa_W_SBG_UaRt , .TRUE. )
     !
-    CALL GY_M_M_DEVICE(1,IKU,1,PTHLM,PDYY,PDZZ,PDZY,ZTMP1_DEVICE)
+    CALL GY_M_M_DEVICE(PTHLM,PDYY,PDZZ,PDZY,ZTMP1_DEVICE)
     CALL MYF_DEVICE(ZFLX,ZTMP2_DEVICE)
     !$acc kernels
     ZTMP3_DEVICE(:,:,:) = ZTMP1_DEVICE(:,:,:) * ZTMP2_DEVICE(:,:,:)
     !$acc end kernels
     CALL LES_MEAN_SUBGRID( ZTMP3_DEVICE, X_LES_RES_ddxa_Thl_SBG_UaRt , .TRUE. )
     !
-    CALL GY_M_M_DEVICE(1,IKU,1,PRM(:,:,:,1),PDYY,PDZZ,PDZY,ZTMP1_DEVICE)
+    CALL GY_M_M_DEVICE(PRM(:,:,:,1),PDYY,PDZZ,PDZY,ZTMP1_DEVICE)
     CALL MYF_DEVICE(ZFLX,ZTMP2_DEVICE)
     !$acc kernels
     ZTMP3_DEVICE(:,:,:) = ZTMP1_DEVICE(:,:,:) * ZTMP2_DEVICE(:,:,:)
diff --git a/src/ZSOLVER/turb_hor_dyn_corr.f90 b/src/ZSOLVER/turb_hor_dyn_corr.f90
index 4fd456bf8b1ab59908debfe23e28fe78df54b34d..18808749a8a3ddd98449ff96a99e841da3f87253 100644
--- a/src/ZSOLVER/turb_hor_dyn_corr.f90
+++ b/src/ZSOLVER/turb_hor_dyn_corr.f90
@@ -1208,7 +1208,7 @@ IF (LLES_CALL .AND. KSPLT==1) THEN
   !$acc end kernels
   CALL LES_MEAN_SUBGRID( ZTMP1_DEVICE, X_LES_RES_ddxa_W_SBG_UaW , .TRUE.)
   !
-  CALL GZ_M_M_DEVICE(1,IKU,1,PTHLM,PDZZ,ZTMP1_DEVICE)
+  CALL GZ_M_M_DEVICE(PTHLM,PDZZ,ZTMP1_DEVICE)
   !$acc kernels
   ZTMP2_DEVICE = ZTMP1_DEVICE * ZFLX
   !$acc end kernels
@@ -1226,7 +1226,7 @@ IF (LLES_CALL .AND. KSPLT==1) THEN
   IF (KRR>=1) THEN
 !$acc data copy(X_LES_RES_ddxa_Rt_SBG_UaW,X_LES_RES_ddz_Rt_SBG_W2)
     !
-    CALL GZ_M_M_DEVICE(1,IKU,1,PRM(:,:,:,1),PDZZ,ZTMP1_DEVICE)
+    CALL GZ_M_M_DEVICE(PRM(:,:,:,1),PDZZ,ZTMP1_DEVICE)
     !$acc kernels
     ZTMP2_DEVICE = ZTMP1_DEVICE*ZFLX
     !$acc end kernels
@@ -1245,7 +1245,7 @@ IF (LLES_CALL .AND. KSPLT==1) THEN
   DO JSV=1,NSV
     !
     !
-    CALL GZ_M_M_DEVICE(1,IKU,1,PSVM(:,:,:,JSV),PDZZ,ZTMP1_DEVICE)
+    CALL GZ_M_M_DEVICE(PSVM(:,:,:,JSV),PDZZ,ZTMP1_DEVICE)
     !$acc kernels
     ZTMP2_DEVICE = ZTMP1_DEVICE*ZFLX
     !$acc end kernels
diff --git a/src/ZSOLVER/turb_hor_thermo_flux.f90 b/src/ZSOLVER/turb_hor_thermo_flux.f90
index ec6c195bcbc5ed7c7f016abe73f721d2ac8b97af..a8a9b45f8bf988541fdda32ff26f656381402581 100644
--- a/src/ZSOLVER/turb_hor_thermo_flux.f90
+++ b/src/ZSOLVER/turb_hor_thermo_flux.f90
@@ -633,7 +633,7 @@ IF (KSPLT==1 .AND. LLES_CALL) THEN
   CALL MZF_DEVICE( ZTMP1_DEVICE,ZTMP2_DEVICE)
   CALL LES_MEAN_SUBGRID( ZTMP2_DEVICE,X_LES_RES_ddxa_W_SBG_UaThl , .TRUE. )
   !
-  CALL GX_M_M_DEVICE(1,IKU,1,PTHLM,PDXX,PDZZ,PDZX,ZTMP1_DEVICE)
+  CALL GX_M_M_DEVICE(PTHLM,PDXX,PDZZ,PDZX,ZTMP1_DEVICE)
   CALL MXF_DEVICE(ZFLX,ZTMP2_DEVICE)
   !$acc kernels
   ZTMP3_DEVICE(:,:,:) = ZTMP1_DEVICE(:,:,:) * ZTMP2_DEVICE(:,:,:)
@@ -641,7 +641,7 @@ IF (KSPLT==1 .AND. LLES_CALL) THEN
   CALL LES_MEAN_SUBGRID( ZTMP3_DEVICE,X_LES_RES_ddxa_Thl_SBG_UaThl , .TRUE. )
   !
   IF (KRR>=1) THEN
-    CALL GX_M_M_DEVICE(1,IKU,1,PRM(:,:,:,1),PDXX,PDZZ,PDZX,ZTMP1_DEVICE)
+    CALL GX_M_M_DEVICE(PRM(:,:,:,1),PDXX,PDZZ,PDZX,ZTMP1_DEVICE)
     !$acc kernels
     ZTMP3_DEVICE(:,:,:) = ZTMP1_DEVICE(:,:,:) * ZTMP2_DEVICE(:,:,:)
     !$acc end kernels
@@ -959,14 +959,14 @@ END DO
     CALL MZF_DEVICE( ZTMP4_DEVICE, ZTMP3_DEVICE )
     CALL LES_MEAN_SUBGRID( ZTMP3_DEVICE, X_LES_RES_ddxa_W_SBG_UaRt , .TRUE. )
     !
-    CALL GX_M_M_DEVICE(1,IKU,1,PTHLM,PDXX,PDZZ,PDZX,ZTMP1_DEVICE)
+    CALL GX_M_M_DEVICE(PTHLM,PDXX,PDZZ,PDZX,ZTMP1_DEVICE)
     CALL MXF_DEVICE(ZFLX,ZTMP2_DEVICE)
     !$acc kernels
     ZTMP3_DEVICE(:,:,:) = ZTMP1_DEVICE(:,:,:)*ZTMP2_DEVICE(:,:,:)
     !$acc end kernels
     CALL LES_MEAN_SUBGRID( ZTMP3_DEVICE, X_LES_RES_ddxa_Thl_SBG_UaRt , .TRUE. )
     !
-    CALL GX_M_M_DEVICE(1,IKU,1,PRM(:,:,:,1),PDXX,PDZZ,PDZX,ZTMP1_DEVICE)
+    CALL GX_M_M_DEVICE(PRM(:,:,:,1),PDXX,PDZZ,PDZX,ZTMP1_DEVICE)
     CALL MXF_DEVICE(ZFLX,ZTMP2_DEVICE)
     !$acc kernels
     ZTMP3_DEVICE(:,:,:) = ZTMP1_DEVICE(:,:,:)*ZTMP2_DEVICE(:,:,:)
@@ -1360,7 +1360,7 @@ IF (KSPLT==1 .AND. LLES_CALL) THEN
   CALL MZF_DEVICE( ZTMP4_DEVICE, ZTMP1_DEVICE )
   CALL LES_MEAN_SUBGRID( ZTMP1_DEVICE, X_LES_RES_ddxa_W_SBG_UaThl , .TRUE. )
   !
-  CALL GY_M_M_DEVICE(1,IKU,1,PTHLM,PDYY,PDZZ,PDZY,ZTMP1_DEVICE)
+  CALL GX_M_M_DEVICE(PTHLM,PDYY,PDZZ,PDZY,ZTMP1_DEVICE)
   CALL MYF_DEVICE(ZFLX,ZTMP2_DEVICE)
   !$acc kernels
   ZTMP3_DEVICE(:,:,:) = ZTMP1_DEVICE(:,:,:) * ZTMP2_DEVICE(:,:,:)
@@ -1371,7 +1371,7 @@ IF (KSPLT==1 .AND. LLES_CALL) THEN
   !
   IF (KRR>=1) THEN
 !$acc data copy(X_LES_RES_ddxa_Rt_SBG_UaThl)
-    CALL GY_M_M_DEVICE(1,IKU,1,PRM(:,:,:,1),PDYY,PDZZ,PDZY,ZTMP1_DEVICE)
+    CALL GX_M_M_DEVICE(PRM(:,:,:,1),PDYY,PDZZ,PDZY,ZTMP1_DEVICE)
     CALL MYF_DEVICE(ZFLX,ZTMP2_DEVICE)
     !$acc kernels
     ZTMP3_DEVICE(:,:,:) = ZTMP1_DEVICE(:,:,:) * ZTMP2_DEVICE(:,:,:)
@@ -1718,14 +1718,14 @@ IF (KRR/=0) THEN
     CALL MZF_DEVICE( ZTMP4_DEVICE, ZTMP1_DEVICE )
     CALL LES_MEAN_SUBGRID( ZTMP1_DEVICE,X_LES_RES_ddxa_W_SBG_UaRt , .TRUE. )
     !
-    CALL GY_M_M_DEVICE(1,IKU,1,PTHLM,PDYY,PDZZ,PDZY,ZTMP1_DEVICE)
+    CALL GX_M_M_DEVICE(PTHLM,PDYY,PDZZ,PDZY,ZTMP1_DEVICE)
     CALL MYF_DEVICE(ZFLX,ZTMP2_DEVICE)
     !$acc kernels
     ZTMP3_DEVICE(:,:,:) = ZTMP1_DEVICE(:,:,:) * ZTMP2_DEVICE(:,:,:)
     !$acc end kernels
     CALL LES_MEAN_SUBGRID( ZTMP3_DEVICE, X_LES_RES_ddxa_Thl_SBG_UaRt , .TRUE. )
     !
-    CALL GY_M_M_DEVICE(1,IKU,1,PRM(:,:,:,1),PDYY,PDZZ,PDZY,ZTMP1_DEVICE)
+    CALL GX_M_M_DEVICE(PRM(:,:,:,1),PDYY,PDZZ,PDZY,ZTMP1_DEVICE)
     CALL MYF_DEVICE(ZFLX,ZTMP2_DEVICE)
     !$acc kernels
     ZTMP3_DEVICE(:,:,:) = ZTMP1_DEVICE(:,:,:) * ZTMP2_DEVICE(:,:,:)