From 644874d0f88632217977132fb0b08152deb0a1d0 Mon Sep 17 00:00:00 2001
From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr>
Date: Wed, 12 Jan 2022 09:53:21 +0100
Subject: [PATCH] Philippe 12/01/2022: OpenACC: remove unused dummy arguments
 of DZF_DEVICE

---
 src/MNH/advecuvw_4th.f90             |   6 +-
 src/MNH/advecuvw_weno_k.f90          |  14 +--
 src/MNH/gradient_w.f90               |   4 +-
 src/MNH/ppm.f90                      | 149 ++++++++++++++++++---------
 src/MNH/shuman_device.f90            |  10 +-
 src/MNH/tke_eps_sources.f90          |   4 +-
 src/MNH/turb_hor_dyn_corr.f90        |   4 +-
 src/MNH/turb_hor_sv_flux.f90         |   6 +-
 src/MNH/turb_hor_thermo_flux.f90     |  20 ++--
 src/MNH/turb_hor_tke.f90             |   6 +-
 src/MNH/turb_hor_uv.f90              |   4 +-
 src/MNH/turb_hor_uw.f90              |   4 +-
 src/MNH/turb_hor_vw.f90              |   4 +-
 src/MNH/turb_ver_thermo_flux.f90     |  10 +-
 src/ZSOLVER/advecuvw_weno_k.f90      |  12 +--
 src/ZSOLVER/ppm.f90                  |   4 +-
 src/ZSOLVER/turb_hor_dyn_corr.f90    |   6 +-
 src/ZSOLVER/turb_hor_thermo_flux.f90 |  22 ++--
 18 files changed, 168 insertions(+), 121 deletions(-)

diff --git a/src/MNH/advecuvw_4th.f90 b/src/MNH/advecuvw_4th.f90
index c9e254c8b..d90db2748 100644
--- a/src/MNH/advecuvw_4th.f90
+++ b/src/MNH/advecuvw_4th.f90
@@ -1,4 +1,4 @@
-!MNH_LIC Copyright 2005-2020 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 2005-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.
@@ -304,7 +304,7 @@ call mxm_device(PRWCT,ZTEMP2)
 !$acc kernels
 ZTEMP3 = ZTEMP1 * ZTEMP2
 !$acc end kernels
-call dzf_device(1,IKU,1,ZTEMP3,ZTEMP4)
+call dzf_device( ZTEMP3, ZTEMP4 )
 !$acc kernels
 PRUS(:,:,:) = PRUS(:,:,:) - ZTEMP4
 !$acc end kernels
@@ -353,7 +353,7 @@ ZTEMP2 = MZM4( PVT )
 !$acc kernels
 ZTEMP3 = ZTEMP1 * ZTEMP2
 !$acc end kernels
-call dzf_device(1,IKU,1,ZTEMP3,ZTEMP4)
+call dzf_device( ZTEMP3, ZTEMP4 )
 !$acc kernels
 PRVS(:,:,:) = PRVS(:,:,:) - ZTEMP4
 !$acc end kernels
diff --git a/src/MNH/advecuvw_weno_k.f90 b/src/MNH/advecuvw_weno_k.f90
index f86a88619..7a9ac0776 100644
--- a/src/MNH/advecuvw_weno_k.f90
+++ b/src/MNH/advecuvw_weno_k.f90
@@ -1,4 +1,4 @@
-!MNH_LIC Copyright 2013-2020 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 2013-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.
@@ -223,7 +223,7 @@ CASE(1) ! WENO 1
   !PRUS = PRUS - DZF(1,IKU,1,UP_MZ(PUT,MXM(PRWCT)))
   CALL MXM_DEVICE(PRWCT,ZWORK)
   CALL UP_MZ_DEVICE(PUT,ZWORK,ZMEAN)
-  CALL DZF_DEVICE(1,IKU,1,ZMEAN,ZWORK)
+  CALL DZF_DEVICE( ZMEAN, ZWORK )
 !$acc kernels
   PRUS(:,:,:) = PRUS(:,:,:) - ZWORK(:,:,:)
 !$acc end kernels
@@ -249,7 +249,7 @@ CASE(1) ! WENO 1
   !PRVS = PRVS - DZF(1,IKU,1,UP_MZ(PVT,MYM(PRWCT)))
   CALL MYM_DEVICE(PRWCT,ZWORK)
   CALL UP_MZ_DEVICE(PVT,ZWORK,ZMEAN)
-  CALL DZF_DEVICE(1,IKU,1,ZMEAN,ZWORK)
+  CALL DZF_DEVICE( ZMEAN, ZWORK )
 !$acc kernels
   PRVS(:,:,:) = PRVS(:,:,:) - ZWORK(:,:,:)
 !$acc end kernels
@@ -360,7 +360,7 @@ CASE(3) ! WENO 3
                    ZT3D(:,:,:,IZFPOS1), ZT3D(:,:,:,IZFPOS2), ZT3D(:,:,:,IZFNEG1), ZT3D(:,:,:,IZFNEG2), &
                    ZT3D(:,:,:,IZBPOS1), ZT3D(:,:,:,IZBPOS2), ZT3D(:,:,:,IZBNEG1), ZT3D(:,:,:,IZBNEG2), &
                    ZT3D(:,:,:,IZOMP1),  ZT3D(:,:,:,IZOMP2),  ZT3D(:,:,:,IZOMN1),  ZT3D(:,:,:,IZOMN2) )
-  CALL DZF_DEVICE(1,IKU,1,ZMEAN,ZWORK)
+  CALL DZF_DEVICE( ZMEAN, ZWORK )
 !$acc kernels
   PRUS(:,:,:) = PRUS(:,:,:) - ZWORK(:,:,:)
 !$acc end kernels
@@ -394,7 +394,7 @@ CASE(3) ! WENO 3
                      ZT3D(:,:,:,IZFPOS1), ZT3D(:,:,:,IZFPOS2), ZT3D(:,:,:,IZFNEG1), ZT3D(:,:,:,IZFNEG2), &
                      ZT3D(:,:,:,IZBPOS1), ZT3D(:,:,:,IZBPOS2), ZT3D(:,:,:,IZBNEG1), ZT3D(:,:,:,IZBNEG2), &
                      ZT3D(:,:,:,IZOMP1),  ZT3D(:,:,:,IZOMP2),  ZT3D(:,:,:,IZOMN1),  ZT3D(:,:,:,IZOMN2) )
-    CALL DZF_DEVICE(1,IKU,1,ZMEAN,ZWORK)
+    CALL DZF_DEVICE( ZMEAN, ZWORK )
 !$acc kernels
     PRVS(:,:,:) = PRVS(:,:,:) - ZWORK(:,:,:)
 !$acc end kernels
@@ -544,7 +544,7 @@ CASE(5) ! WENO 5
                    ZT3D(:,:,:,IZOMP1),  ZT3D(:,:,:,IZOMP2),  ZT3D(:,:,:,IZOMP3),  &
                    ZT3D(:,:,:,IZOMN1),  ZT3D(:,:,:,IZOMN2),  ZT3D(:,:,:,IZOMN3) )
   CALL GET_HALO_D(ZMEAN)! Update HALO - maybe not necessary (T.Lunet)
-  CALL DZF_DEVICE(1,IKU,1,ZMEAN,ZWORK)
+  CALL DZF_DEVICE( ZMEAN, ZWORK )
 !$acc kernels
   PRUS(:,:,:) = PRUS(:,:,:) - ZWORK(:,:,:)
 !$acc end kernels
@@ -589,7 +589,7 @@ CASE(5) ! WENO 5
                      ZT3D(:,:,:,IZOMP1),  ZT3D(:,:,:,IZOMP2),  ZT3D(:,:,:,IZOMP3),  &
                      ZT3D(:,:,:,IZOMN1),  ZT3D(:,:,:,IZOMN2),  ZT3D(:,:,:,IZOMN3) )
     CALL GET_HALO_D(ZMEAN)! Update HALO - maybe not necessary (T.Lunet)
-    CALL DZF_DEVICE(1,IKU,1,ZMEAN,ZWORK)
+    CALL DZF_DEVICE( ZMEAN, ZWORK )
 !$acc kernels
     PRVS(:,:,:) = PRVS(:,:,:) - ZWORK(:,:,:)
 !$acc end kernels
diff --git a/src/MNH/gradient_w.f90 b/src/MNH/gradient_w.f90
index f49ddab87..9f0c4291a 100644
--- a/src/MNH/gradient_w.f90
+++ b/src/MNH/gradient_w.f90
@@ -1,4 +1,4 @@
-!MNH_LIC Copyright 1994-2020 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.
@@ -217,7 +217,7 @@ iztmp2_device = MNH_ALLOCATE_ZT3D( ztmp2_device,JIU,JJU,JKU )
 !*       1.    DEFINITION of GZ_W_M_DEVICE
 !              --------------------
 !
-CALL DZF_DEVICE(KKA,KKU,KL,PA(:,:,:),ZTMP1_DEVICE)
+CALL DZF_DEVICE( PA(:,:,:), ZTMP1_DEVICE )
 CALL MZF_DEVICE(KKA,KKU,KL,PDZZ(:,:,:),ZTMP2_DEVICE)
 !$acc kernels
 PGZ_W_M_DEVICE(:,:,:)= ZTMP1_DEVICE(:,:,:)/ZTMP2_DEVICE(:,:,:)
diff --git a/src/MNH/ppm.f90 b/src/MNH/ppm.f90
index 2db3a4daa..b121afec5 100644
--- a/src/MNH/ppm.f90
+++ b/src/MNH/ppm.f90
@@ -1,4 +1,4 @@
-!MNH_LIC Copyright 1994-2020 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.
@@ -427,7 +427,7 @@ REAL,                   INTENT(IN)  :: PTSTEP  ! Time step
 #ifndef MNH_OPENACC
 REAL, DIMENSION(SIZE(PCR,1),SIZE(PCR,2),SIZE(PCR,3)) :: PR
 #else
-REAL, DIMENSION(IIU,IJU,IKU), INTENT(OUT) :: PR
+REAL, DIMENSION(:,:,:), INTENT(OUT) :: PR
 #endif
 !
 !*       0.2   Declarations of local variables :
@@ -457,7 +457,7 @@ INTEGER                          :: I,J,K
 !
 !!$!
 !!$! terms used in parabolic interpolation, dmq, qL, qR, dq, q6
-REAL , DIMENSION(IIU,IJU,IKU) :: &
+REAL , DIMENSION(:,:,:) :: &
   ZQL,ZQR, ZDQ,ZQ6, ZDMQ &
 !!$!
 !!$! extra variables for the initial guess of parabolae parameters
@@ -515,7 +515,7 @@ ZQ60 (:,:,:) = PSRC(:,:,:)
 ZFPOS(:,:,:) = PSRC(:,:,:)
 ZFNEG(:,:,:) = PSRC(:,:,:)
 #else
-CALL GET_HALO_D(PSRC,HDIR="01_X", HNAME='PSRC')
+CALL GET_HALO_D(PSRC,HDIR="01_X", HNAME='UPDATE_HALO_ll::GET_HALO::PSRC')
 !
 !$acc kernels 
 !$acc loop independent collapse(3)
@@ -753,7 +753,7 @@ CASE('OPEN')
    CALL  GET_HALO(ZDMQ, HNAME='ZDMQ')
 #else
 !$acc end kernels
-   CALL  GET_HALO_D(ZDMQ, HDIR="01_X", HNAME='ZDMQ')
+   CALL  GET_HALO_D(ZDMQ, HDIR="01_X", HNAME='UPDATE_HALO_ll::GET_HALO::ZDMQ')
 #endif
 !$acc kernels
 !
@@ -774,7 +774,7 @@ CASE('OPEN')
    CALL  GET_HALO(ZQL0, HNAME='ZQL0')
 #else
 !$acc end kernels
-   CALL  GET_HALO_D(ZQL0,HDIR="01_X", HNAME='ZQL0')
+   CALL  GET_HALO_D(ZQL0,HDIR="01_X", HNAME='UPDATE_HALO_ll::GET_HALO::ZQL0')
 !$acc kernels
 #endif
 !  
@@ -790,7 +790,7 @@ CASE('OPEN')
    CALL  GET_HALO(ZQR0, HNAME='ZQR0')
 #else
 !$acc end kernels
-   CALL  GET_HALO_D(ZQR0, HDIR="01_X", HNAME='ZQR0')
+   CALL  GET_HALO_D(ZQR0, HDIR="01_X", HNAME='UPDATE_HALO_ll::GET_HALO::ZQR0')
 !$acc kernels
 #endif
 !
@@ -895,7 +895,7 @@ ENDDO ; ENDDO ; ENDDO
    CALL GET_HALO(ZFPOS, HNAME='ZFPOS')
 #else
 !$acc end kernels
-   CALL GET_HALO_D(ZFPOS, HDIR="01_X", HNAME='ZFPOS')
+   CALL GET_HALO_D(ZFPOS, HDIR="01_X", HNAME='UPDATE_HALO_ll::GET_HALO::ZFPOS')
 !$acc kernels
 #endif
 !
@@ -929,7 +929,7 @@ ENDDO ; ENDDO ; ENDDO
    CALL GET_HALO(ZFNEG, HNAME='ZFNEG')
 #else
 !$acc end kernels
-   CALL GET_HALO_D(ZFNEG, HDIR="01_X", HNAME='ZFNEG')
+   CALL GET_HALO_D(ZFNEG, HDIR="01_X", HNAME='UPDATE_HALO_ll::GET_HALO::ZFNEG')
 !$acc kernels
 #endif
 !
@@ -960,7 +960,7 @@ ENDDO ; ENDDO ; ENDDO
     !dxf(PR,ZQR)
 !$acc end kernels
    CALL DXF_DEVICE(ZQR,PR)
-   CALL GET_HALO_D(PR, HDIR="01_X", HNAME='PR')
+   CALL GET_HALO_D(PR, HDIR="01_X", HNAME='UPDATE_HALO_ll::GET_HALO::PR')
 #endif
 !
 END SELECT
@@ -1126,10 +1126,10 @@ CONTAINS
 USE MODD_CONF
 
 USE MODE_ll
+use mode_mppdb
 #ifdef MNH_OPENACC
 use mode_msg
 #endif
-use mode_mppdb
 
 #ifdef MNH_BITREP
 USE MODI_BITREP
@@ -1162,7 +1162,7 @@ REAL,                   INTENT(IN)  :: PTSTEP  ! Time step
 #ifndef MNH_OPENACC
 REAL, DIMENSION(SIZE(PCR,1),SIZE(PCR,2),SIZE(PCR,3)) :: PR
 #else
-REAL, DIMENSION(IIU,IJU,IKU), INTENT(OUT) :: PR
+REAL, DIMENSION(:,:,:), INTENT(OUT) :: PR
 #endif
 !
 !*       0.2   Declarations of local variables :
@@ -1189,7 +1189,7 @@ REAL, DIMENSION(SIZE(PCR,1),SIZE(PCR,2),SIZE(PCR,3)) :: ZFPOS, ZFNEG
 !
 #else
 ! terms used in parabolic interpolation, dmq, qL, qR, dq, q6
-REAL, DIMENSION(IIU,IJU,IKU) :: &
+REAL, DIMENSION(:,:,:) :: &
      ZQL,ZQR , ZDQ,ZQ6 , ZDMQ &
 ! extra variables for the initial guess of parabolae parameters
    , ZQL0,ZQR0,ZQ60 &
@@ -1247,7 +1247,7 @@ IKE=IKU
 !IIB=2
 !IIE=IIU-1
 !
-CALL GET_HALO_D(PSRC, HDIR="01_Y", HNAME='PSRC')
+CALL GET_HALO_D(PSRC, HDIR="01_Y", HNAME='UPDATE_HALO_ll::GET_HALO::PSRC')
 #endif
 !
 !-------------------------------------------------------------------------------
@@ -1286,6 +1286,7 @@ ZFNEG(:,:,:) = PSRC(:,:,:)
 #endif
 !$acc end kernels
 !
+print *,'PW: HLBCY(1)=',HLBCY(1);flush(5)
 SELECT CASE ( HLBCY(1) ) ! Y direction LBC type: (1) for left side
 !
 !*       2.1    CYCLIC BOUNDARY CONDITIONS IN THE Y DIRECTION
@@ -1330,7 +1331,7 @@ CASE ('CYCL','WALL')          ! In that case one must have HLBCY(1) == HLBCY(2)
    CALL GET_HALO(ZDMQ, HNAME='ZDMQ')
 #else
 !$acc end kernels
-   CALL GET_HALO_D(ZDMQ,HDIR="01_Y", HNAME='ZDMQ')
+   CALL GET_HALO_D(ZDMQ,HDIR="01_Y", HNAME='UPDATE_HALO_ll::GET_HALO::ZDMQ')
 !$acc kernels
 #endif
 !
@@ -1338,6 +1339,7 @@ CASE ('CYCL','WALL')          ! In that case one must have HLBCY(1) == HLBCY(2)
 !
 !    ZQL0(IIW:IIA,IJB:IJE+1,:) = 0.5*(PSRC(IIW:IIA,IJB:IJE+1,:) + PSRC(IIW:IIA,IJB-1:IJE,:)) - &
 !         (ZDMQ(IIW:IIA,IJB:IJE+1,:) - ZDMQ(IIW:IIA,IJB-1:IJE,:))/6.0
+#if 1
 !$acc loop independent collapse(3)
   do jk = 1, iku
     do jj = ijb, ije + 1
@@ -1346,12 +1348,23 @@ CASE ('CYCL','WALL')          ! In that case one must have HLBCY(1) == HLBCY(2)
       end do
     end do
   end do
+#else
+  DO CONCURRENT( ji = iiw : iia, jj = ijb : ije + 1, jk = 1 : iku )
+    ZQL0(ji, jj, jk ) = 0.5 * ( PSRC(ji, jj, jk ) + PSRC(ji, jj-1, jk )) - ( ZDMQ(ji, jj, jk ) - ZDMQ(ji, jj-1, jk ) ) / 6.0
+  END DO
+#endif
 !
 #ifndef MNH_OPENACC
+CALL MPPDB_CHECK(PSRC,"PPM_01_Y: PSRC")
+CALL MPPDB_CHECK(ZDMQ,"PPM_01_Y: ZDMQ")
+CALL MPPDB_CHECK(ZQL0,"PPM_01_Y: ZQL0")
    CALL GET_HALO(ZQL0, HNAME='ZQL0')
 #else
 !$acc end kernels
-  CALL GET_HALO_D(ZQL0,HDIR="01_Y", HNAME='ZQL0')
+CALL MPPDB_CHECK(PSRC,"PPM_01_Y: PSRC")
+CALL MPPDB_CHECK(ZDMQ,"PPM_01_Y: ZDMQ")
+CALL MPPDB_CHECK(ZQL0,"PPM_01_Y: ZQL0")
+  CALL GET_HALO_D(ZQL0,HDIR="01_Y", HNAME='UPDATE_HALO_ll::GET_HALO::ZQL0')
 !$acc kernels
 #endif
 !
@@ -1365,7 +1378,7 @@ CASE ('CYCL','WALL')          ! In that case one must have HLBCY(1) == HLBCY(2)
    CALL GET_HALO(ZQR0, HNAME='ZQR0')
 #else
 !$acc end kernels
-  CALL GET_HALO_D(ZQR0,HDIR="01_Y", HNAME='ZQR0')
+  CALL GET_HALO_D(ZQR0,HDIR="01_Y", HNAME='UPDATE_HALO_ll::GET_HALO::ZQR0')
 !$acc kernels
 #endif
 !
@@ -1458,7 +1471,7 @@ CASE ('CYCL','WALL')          ! In that case one must have HLBCY(1) == HLBCY(2)
   CALL GET_HALO(ZFPOS, HNAME='ZFPOS')
 #else
 !$acc end kernels
-  CALL GET_HALO_D(ZFPOS,HDIR="01_Y", HNAME='ZFPOS')
+  CALL GET_HALO_D(ZFPOS,HDIR="01_Y", HNAME='UPDATE_HALO_ll::GET_HALO::ZFPOS')
 !$acc kernels
 #endif
 !
@@ -1475,7 +1488,7 @@ CASE ('CYCL','WALL')          ! In that case one must have HLBCY(1) == HLBCY(2)
   CALL GET_HALO(ZFNEG, HNAME='ZFNEG')
 #else
 !$acc end kernels
-  CALL GET_HALO_D(ZFNEG,HDIR="01_Y", HNAME='ZFNEG')
+  CALL GET_HALO_D(ZFNEG,HDIR="01_Y", HNAME='UPDATE_HALO_ll::GET_HALO::ZFNEG')
 !$acc kernels
 #endif
 !
@@ -1506,7 +1519,7 @@ CASE ('CYCL','WALL')          ! In that case one must have HLBCY(1) == HLBCY(2)
 #ifndef MNH_OPENACC
   CALL GET_HALO(PR, HNAME='PR')
 #else
-  CALL GET_HALO_D(PR,HDIR="01_Y", HNAME='PR')
+  CALL GET_HALO_D(PR,HDIR="01_Y", HNAME='UPDATE_HALO_ll::GET_HALO::PR')
 #endif
 !
 !*       2.2    NON-CYCLIC BOUNDARY CONDITIONS IN THE Y DIRECTION
@@ -1562,7 +1575,7 @@ end do
    CALL  GET_HALO(ZDMQ, HNAME='ZDMQ')
 #else
 !$acc end kernels
-   CALL  GET_HALO_D(ZDMQ,HDIR="01_Y", HNAME='ZDMQ')
+   CALL  GET_HALO_D(ZDMQ,HDIR="01_Y", HNAME='UPDATE_HALO_ll::GET_HALO::ZDMQ')
 !$acc kernels
 #endif
 !
@@ -1581,7 +1594,7 @@ end do
    CALL  GET_HALO(ZQL0, HNAME='ZQL0')
 #else
 !$acc end kernels
-CALL  GET_HALO_D(ZQL0,HDIR="01_Y", HNAME='ZQL0')
+CALL  GET_HALO_D(ZQL0,HDIR="01_Y", HNAME='UPDATE_HALO_ll::GET_HALO::ZQL0')
 !$acc kernels
 #endif
 !
@@ -1699,7 +1712,7 @@ CALL  GET_HALO_D(ZQL0,HDIR="01_Y", HNAME='ZQL0')
   CALL GET_HALO(ZFPOS, HNAME='ZFPOS')
 #else
 !$acc end kernels
-  CALL GET_HALO_D(ZFPOS,HDIR="01_Y", HNAME='ZFPOS')
+  CALL GET_HALO_D(ZFPOS,HDIR="01_Y", HNAME='UPDATE_HALO_ll::GET_HALO::ZFPOS')
 !$acc kernels
 #endif
 !
@@ -1734,7 +1747,7 @@ CALL  GET_HALO_D(ZQL0,HDIR="01_Y", HNAME='ZQL0')
   CALL GET_HALO(ZFNEG, HNAME='ZFNEG')
 #else
 !$acc end kernels
-  CALL GET_HALO_D(ZFNEG,HDIR="01_Y", HNAME='ZFNEG')
+  CALL GET_HALO_D(ZFNEG,HDIR="01_Y", HNAME='UPDATE_HALO_ll::GET_HALO::ZFNEG')
 !$acc kernels
 #endif
 !
@@ -1776,7 +1789,7 @@ CALL  GET_HALO_D(ZQL0,HDIR="01_Y", HNAME='ZQL0')
 #ifndef MNH_OPENACC
   CALL GET_HALO(PR, HNAME='PR')
 #else
-  CALL GET_HALO_D(PR,HDIR="01_Y", HNAME='PR')
+  CALL GET_HALO_D(PR,HDIR="01_Y", HNAME='UPDATE_HALO_ll::GET_HALO::PR')
 #endif
 !
 !
@@ -1977,7 +1990,7 @@ REAL,                   INTENT(IN)  :: PTSTEP  ! Time step
 #ifndef MNH_OPENACC
 REAL, DIMENSION(SIZE(PCR,1),SIZE(PCR,2),SIZE(PCR,3)) :: PR
 #else
-REAL, DIMENSION(IIU,IJU,IKU), INTENT(OUT) :: PR
+REAL, DIMENSION(:,:,:), INTENT(OUT) :: PR
 #endif
 !
 !*       0.2   Declarations of local variables :
@@ -1999,7 +2012,7 @@ REAL, DIMENSION(SIZE(PCR,1),SIZE(PCR,2),SIZE(PCR,3)) :: ZQL0,ZQR0,ZQ60
 REAL, DIMENSION(SIZE(PCR,1),SIZE(PCR,2),SIZE(PCR,3)) :: ZFPOS, ZFNEG
 #else
 ! terms used in parabolic interpolation, dmq, qL, qR, dq, q6
-REAL, DIMENSION(IIU,IJU,IKU) :: &
+REAL, DIMENSION(:,:,:) :: &
                                                       ZQL, ZQR, ZDQ, ZQ6, ZDMQ &
 !
 ! extra variables for the initial guess of parabolae parameters
@@ -2275,7 +2288,7 @@ do jk = 1, iku
 end do
     !dzf(PR,ZQR)
 !$acc end kernels
-    CALL DZF_DEVICE(1,1,1,ZQR,PR)
+    CALL DZF_DEVICE( ZQR, PR )
 #endif
 !
 #ifndef MNH_OPENACC
@@ -2446,6 +2459,7 @@ USE MODD_ARGSLIST_ll, ONLY : HALO2LIST_ll
 USE MODD_CONF
 
 USE MODE_ll
+USE MODE_MPPDB
 #ifdef MNH_OPENACC
 use mode_msg
 #endif
@@ -2464,7 +2478,6 @@ USE MODE_MNH_ZWORK, ONLY : IIB,IIE, IIU,IJU,IKU , IJS,IJN, GWEST,GEAST
 !
 USE MODD_IO,   ONLY : GSMONOPROC
 #endif
-USE MODE_MPPDB
 !
 IMPLICIT NONE
 !
@@ -2661,7 +2674,7 @@ ENDIF
 !   update ZPHAT HALO before next/further  utilisation 
 !
 #ifndef MNH_OPENACC
-CALL  GET_HALO(ZPHAT, HNAME='ZPHAT')
+!PW: a remettre? CALL  GET_HALO(ZPHAT, HNAME='ZPHAT')
 #else
 ! acc update self(ZPHAT)
 !CALL GET_HALO_D(ZPHAT(:,:,:), HDIR="Z0_X", HNAME='ZPHAT')
@@ -2696,7 +2709,7 @@ CALL  GET_HALO(ZPHAT, HNAME='ZPHAT')
 !$acc end kernels
 !
 #ifndef MNH_OPENACC
-CALL GET_HALO(ZFPOS, HNAME='ZFPOS') ! JUAN
+!PW: a remettre? CALL GET_HALO(ZFPOS, HNAME='ZFPOS') ! JUAN
 #else
 ! acc update self(ZFPOS)
 !CALL GET_HALO_D(ZFPOS(:,:,:), HDIR="Z0_X", HNAME='ZFPOS') ! JUAN
@@ -2724,7 +2737,7 @@ CALL GET_HALO(ZFPOS, HNAME='ZFPOS') ! JUAN
 !$acc end kernels
 !
 #ifndef MNH_OPENACC
-   CALL GET_HALO(ZFNEG, HNAME='ZFNEG') ! JUAN
+!PW: a remettre?    CALL GET_HALO(ZFNEG, HNAME='ZFNEG') ! JUAN
 #else
 ! acc update self(ZFNEG)
 !CALL GET_HALO_D(ZFNEG, HDIR="Z0_X", HNAME='ZFNEG') ! JUAN
@@ -2788,7 +2801,8 @@ END SELECT
 #ifndef MNH_OPENACC
 CALL GET_HALO(PR, HNAME='PR')
 #else
-CALL GET_HALO_D(PR, HDIR="S0_X", HNAME='PR')
+! CALL GET_HALO_D(PR, HDIR="S0_X", HNAME='PR')
+CALL GET_HALO_D(PR, HDIR="S0_X", HNAME='UPDATE_HALO_ll::GET_HALO::PR')
 #endif
 !-------------------------------------------------------------------------------
 CALL  DEL_HALO2_ll(TZ_PSRC_HALO2_ll)
@@ -2880,6 +2894,7 @@ CONTAINS
 USE MODD_CONF
 
 USE MODE_ll
+USE MODE_MPPDB
 #ifdef MNH_OPENACC
 use mode_msg
 #endif
@@ -2899,7 +2914,6 @@ USE MODE_MNH_ZWORK, ONLY : IJB,IJE, IIU,IJU,IKU , IIW,IIA, GSOUTH , GNORTH
 !
 USE MODD_IO,   ONLY : GSMONOPROC
 #endif
-USE MODE_MPPDB
 !
 IMPLICIT NONE
 !
@@ -3018,7 +3032,7 @@ PR=PSRC
 ZPHAT(IIW:IIA,IJB+1:IJE,:) = (7.0 * &
                        (PSRC(IIW:IIA,IJB+1:IJE,:) + PSRC(IIW:IIA,IJB:IJE-1,:)) - &
                        (PSRC(IIW:IIA,IJB+2:IJE+1,:) + PSRC(IIW:IIA,IJB-1:IJE-2,:))) / 12.0
-!$acc end kernels 
+!$acc end kernels
 !
 SELECT CASE ( HLBCY(1) ) ! Y direction LBC type: (1) for left side
 CASE ('CYCL','WALL')            ! In that case one must have HLBCY(1) == HLBCY(2)
@@ -3086,7 +3100,7 @@ CALL GET_HALO(ZFNEG, HNAME='ZFNEG') ! JUAN
 #endif
 !
 CASE ('OPEN')
-!$acc kernels 
+!$acc kernels
 !
 !!$   ZPHAT(:,IJB,:) = 0.5*(PSRC(:,IJB-1,:) + PSRC(:,IJB,:))
 !!$   ZPHAT(:,IJB-1,:) = ZPHAT(:,IJB,:)   ! not used
@@ -3107,7 +3121,7 @@ CASE ('OPEN')
 !$acc end kernels
 !
 #ifndef MNH_OPENACC
-CALL  GET_HALO(ZPHAT, HNAME='ZPHAT')
+!PW: a remettre? CALL  GET_HALO(ZPHAT, HNAME='ZPHAT')
 #else
 ! acc update self(ZPHAT)
 !CALL  GET_HALO_D(ZPHAT(:,:,:), HDIR="Z0_Y", HNAME='ZPHAT')
@@ -3144,7 +3158,7 @@ CALL  GET_HALO(ZPHAT, HNAME='ZPHAT')
 !$acc end kernels
 !
 #ifndef MNH_OPENACC
-CALL GET_HALO(ZFPOS, HNAME='ZFPOS') ! JUAN
+!PW: a remettre? CALL GET_HALO(ZFPOS, HNAME='ZFPOS') ! JUAN
 #else
 ! acc update self(ZFPOS)
 !CALL GET_HALO_D(ZFPOS(:,:,:), HDIR="Z0_Y", HNAME='ZFPOS') ! JUAN
@@ -3173,7 +3187,7 @@ CALL GET_HALO(ZFPOS, HNAME='ZFPOS') ! JUAN
 !$acc end kernels
 !
 #ifndef MNH_OPENACC
-   CALL GET_HALO(ZFNEG, HNAME='ZFNEG') ! JUAN
+!PW: a remettre?    CALL GET_HALO(ZFNEG, HNAME='ZFNEG') ! JUAN
 #else
 ! acc update self(ZFNEG)
 !   CALL GET_HALO_D(ZFNEG, HDIR="Z0_Y", HNAME='ZFNEG') ! JUAN
@@ -3200,7 +3214,7 @@ CALL GET_HALO(ZFPOS, HNAME='ZFPOS') ! JUAN
 !$acc end kernels
    CALL MYM_DEVICE(PRHO,ZRHO_MYM)
 !$acc kernels
-   ZCR_MYM =  PCR* ZRHO_MYM*( ZFPOS(:,:,:)*(0.5+SIGN(0.5,PCR)) + ZFNEG*(0.5-SIGN(0.5,PCR)) ) 
+   ZCR_MYM =  PCR * ZRHO_MYM * ( ZFPOS(:,:,:)*(0.5+SIGN(0.5,PCR)) + ZFNEG*(0.5-SIGN(0.5,PCR)) )
 !$acc end kernels
    CALL DYF_DEVICE(ZCR_MYM,ZCR_DYF)
 !$acc kernels
@@ -3233,7 +3247,8 @@ END SELECT
 #ifndef MNH_OPENACC
 CALL GET_HALO(PR, HNAME='PR')
 #else
-CALL GET_HALO_D(PR, HDIR="S0_Y", HNAME='PR')
+! CALL GET_HALO_D(PR, HDIR="S0_Y", HNAME='PR')
+CALL GET_HALO_D(PR, HDIR="S0_Y", HNAME='UPDATE_HALO_ll::GET_HALO::PR')
 #endif
 !
 CALL  DEL_HALO2_ll(TZ_PSRC_HALO2_ll)
@@ -3406,7 +3421,7 @@ IKE = SIZE(PSRC,3) - JPVEXT
 #ifndef MNH_OPENACC
    CALL GET_HALO(PSRC, HNAME='PSRC')
 #else
-   CALL GET_HALO_D(PSRC, HNAME='PSRC')
+   CALL GET_HALO_D(PSRC, HNAME='UPDATE_HALO_ll::GET_HALO::PSRC')
 #endif
 !
 #ifdef MNH_OPENACC
@@ -3470,7 +3485,7 @@ PR = PSRC * PRHO - &
    ZCR_MZM =  PCR* ZRHO_MZM*( ZFPOS(:,:,:)*(0.5+SIGN(0.5,PCR)) + ZFNEG*(0.5-SIGN(0.5,PCR)) ) 
    !dzf(ZCR_DZF,ZCR_MZM)
 !$acc end kernels
-   CALL DZF_DEVICE(1,1,1,ZCR_MZM,ZCR_DZF)
+   CALL DZF_DEVICE( ZCR_MZM, ZCR_DZF )
 !$acc kernels
    PR = PSRC * PRHO - ZCR_DZF
 #endif
@@ -3482,10 +3497,14 @@ PR = PSRC * PRHO - &
 !
 !$acc end kernels 
 !
+CALL MPPDB_CHECK(ZPHAT,"PPM_S0_Z:ZPHAT")
+CALL MPPDB_CHECK(ZFPOS,"PPM_S0_Z:ZFPOS")
+CALL MPPDB_CHECK(ZFNEG,"PPM_S0_Z:ZFNEG")
+CALL MPPDB_CHECK(PR,"PPM_S0_Z:PR")
 #ifndef MNH_OPENACC
    CALL GET_HALO(PR, HNAME='PR')
 #else
-   CALL GET_HALO_D(PR, HNAME='PR')
+   CALL GET_HALO_D(PR, HNAME='UPDATE_HALO_ll::GET_HALO::PR')
 #endif
 IF (MPPDB_INITIALIZED) THEN
   !Check all INOUT arrays
@@ -3583,6 +3602,9 @@ INTEGER :: IZPHAT,IZRUT,IZFUP,IZFCOR,IZRPOS,IZRNEG
 !!
 !-------------------------------------------------------------------------------
 !
+USE MODD_CONF
+USE MODD_PARAMETERS
+
 USE MODE_ll
 use mode_mppdb
 
@@ -3592,11 +3614,7 @@ USE MODI_SHUMAN
 USE MODI_SHUMAN
 USE MODI_SHUMAN_DEVICE
 #endif
-!
-USE MODD_CONF
-USE MODD_PARAMETERS
-!USE MODD_ARGSLIST_ll, ONLY : HALO2LIST_ll
-!
+
 IMPLICIT NONE
 !
 !*       0.1   Declarations of dummy arguments :
@@ -3627,6 +3645,7 @@ 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
 !
+#ifndef MNH_OPENACC
 ! variable at cell edges
 REAL, DIMENSION(SIZE(PCR,1),SIZE(PCR,2),SIZE(PCR,3)) :: ZPHAT, ZRUT
 !
@@ -3635,6 +3654,16 @@ REAL, DIMENSION(SIZE(PCR,1),SIZE(PCR,2),SIZE(PCR,3)) :: ZFUP, ZFCOR
 !
 ! ratios for limiting the correction flux
 REAL, DIMENSION(SIZE(PCR,1),SIZE(PCR,2),SIZE(PCR,3)) :: ZRPOS, ZRNEG
+#else
+! variable at cell edges
+REAL, DIMENSION(:,:,:) :: ZPHAT, ZRUT
+!
+! advection fluxes, upwind and correction
+REAL, DIMENSION(:,:,:) :: ZFUP, ZFCOR
+!
+! ratios for limiting the correction flux
+REAL, DIMENSION(:,:,:) :: ZRPOS, ZRNEG
+#endif
 !
 ! variables for limiting the correction flux
 REAL :: ZSRCMAX, ZSRCMIN, ZFIN, ZFOUT
@@ -3982,6 +4011,7 @@ 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
 !
+#ifndef MNH_OPENACC
 ! variable at cell edges
 REAL, DIMENSION(SIZE(PCR,1),SIZE(PCR,2),SIZE(PCR,3)) :: ZPHAT, ZRVT
 !
@@ -3990,6 +4020,16 @@ REAL, DIMENSION(SIZE(PCR,1),SIZE(PCR,2),SIZE(PCR,3)) :: ZFUP, ZFCOR
 !
 ! ratios for limiting the correction flux
 REAL, DIMENSION(SIZE(PCR,1),SIZE(PCR,2),SIZE(PCR,3)) :: ZRPOS, ZRNEG
+#else
+! variable at cell edges
+REAL, DIMENSION(:,:,:) :: ZPHAT, ZRVT
+!
+! advection fluxes, upwind and correction
+REAL, DIMENSION(:,:,:) :: ZFUP, ZFCOR
+!
+! ratios for limiting the correction flux
+REAL, DIMENSION(:,:,:) :: ZRPOS, ZRNEG
+#endif
 !
 ! variables for limiting the correction flux
 REAL :: ZSRCMAX, ZSRCMIN, ZFIN, ZFOUT
@@ -4338,6 +4378,7 @@ 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
 !
+#ifndef MNH_OPENACC
 ! variable at cell edges
 REAL, DIMENSION(SIZE(PCR,1),SIZE(PCR,2),SIZE(PCR,3)) :: ZPHAT, ZRVT
 !
@@ -4346,6 +4387,16 @@ REAL, DIMENSION(SIZE(PCR,1),SIZE(PCR,2),SIZE(PCR,3)) :: ZFUP, ZFCOR
 !
 ! ratios for limiting the correction flux
 REAL, DIMENSION(SIZE(PCR,1),SIZE(PCR,2),SIZE(PCR,3)) :: ZRPOS, ZRNEG
+#else
+! variable at cell edges
+REAL, DIMENSION(:,:,:) :: ZPHAT, ZRVT
+!
+! advection fluxes, upwind and correction
+REAL, DIMENSION(:,:,:) :: ZFUP, ZFCOR
+!
+! ratios for limiting the correction flux
+REAL, DIMENSION(:,:,:) :: ZRPOS, ZRNEG
+#endif
 !
 ! variables for limiting the correction flux
 REAL :: ZSRCMAX, ZSRCMIN, ZFIN, ZFOUT
diff --git a/src/MNH/shuman_device.f90 b/src/MNH/shuman_device.f90
index 0ca7755d4..35b622525 100644
--- a/src/MNH/shuman_device.f90
+++ b/src/MNH/shuman_device.f90
@@ -1,4 +1,4 @@
-!MNH_LIC Copyright 1994-2019 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.
@@ -30,9 +30,7 @@ REAL, DIMENSION(:,:,:), INTENT(IN)  :: PA     ! variable at mass localization
 REAL, DIMENSION(:,:,:), INTENT(OUT) :: PDYM   ! result at flux side
 END SUBROUTINE DYM_DEVICE
 !
-SUBROUTINE DZF_DEVICE(KKA,KKU,KL,PA,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
+SUBROUTINE DZF_DEVICE(PA,PDZF)
 REAL, DIMENSION(:,:,:), INTENT(IN)  :: PA       ! variable at flux side
 REAL, DIMENSION(:,:,:), INTENT(OUT) :: PDZF     ! result at mass localization
 END SUBROUTINE DZF_DEVICE
@@ -1275,7 +1273,7 @@ END DO
 END SUBROUTINE DYM_DEVICE
 !
 !     ###############################
-      SUBROUTINE DZF_DEVICE(KKA,KKU,KL,PA,PDZF)
+      SUBROUTINE DZF_DEVICE(PA,PDZF)
 !     ###############################
 !
 !!****  *DZF* -  Shuman operator : finite difference operator in z direction
@@ -1325,8 +1323,6 @@ 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(:,:,:), INTENT(OUT) :: PDZF     ! result at mass localization 
 !
diff --git a/src/MNH/tke_eps_sources.f90 b/src/MNH/tke_eps_sources.f90
index 4f98499d2..5385bdf08 100644
--- a/src/MNH/tke_eps_sources.f90
+++ b/src/MNH/tke_eps_sources.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.
@@ -494,7 +494,7 @@ IF ( LLES_CALL .OR.                         &
 #else
   ZTMP1_DEVICE(:,:,:) = ZTMP2_DEVICE(:,:,:) * ZFLX(:,:,:) / PDZZ(:,:,:) !Re-use of ZTMP2_DEVICE
 !$acc end kernels
-  CALL DZF_DEVICE(KKA,KKU,KKL,ZTMP1_DEVICE,ZTMP2_DEVICE)
+  CALL DZF_DEVICE( ZTMP1_DEVICE, ZTMP2_DEVICE )
 !$acc kernels
   PTR(:,:,:)= PTR(:,:,:) - ZTMP2_DEVICE(:,:,:) / PRHODJ(:,:,:)
 !$acc end kernels
diff --git a/src/MNH/turb_hor_dyn_corr.f90 b/src/MNH/turb_hor_dyn_corr.f90
index ad9da4172..521e66616 100644
--- a/src/MNH/turb_hor_dyn_corr.f90
+++ b/src/MNH/turb_hor_dyn_corr.f90
@@ -727,7 +727,7 @@ IF (.NOT. LFLAT) THEN
      ZTMP2_DEVICE(JI,JJ,JK) = PDZX(JI,JJ,JK) / ZTMP1_DEVICE(JI,JJ,JK) * ZTMP4_DEVICE(JI,JJ,JK)
   END DO !CONCURRENT   
   !$acc end kernels
-  CALL DZF_DEVICE(1,IKU,1,ZTMP2_DEVICE,ZTMP1_DEVICE)
+  CALL DZF_DEVICE( ZTMP2_DEVICE, ZTMP1_DEVICE )
   !$acc kernels async(1)
   PRUS(:,:,:)=PRUS(:,:,:)                                           &
               -ZTMP3_DEVICE(:,:,:)                &
@@ -946,7 +946,7 @@ IF (.NOT. L2D) THEN
        ZTMP2_DEVICE(JI,JJ,JK) = PDZY(JI,JJ,JK) / ZTMP1_DEVICE(JI,JJ,JK) * ZTMP4_DEVICE(JI,JJ,JK)
     END DO !CONCURRENT   
     !$acc end kernels
-    CALL DZF_DEVICE(1,IKU,1,ZTMP2_DEVICE,ZTMP4_DEVICE )
+    CALL DZF_DEVICE( ZTMP2_DEVICE, ZTMP4_DEVICE )
     !$acc kernels async(1)
     PRVS(:,:,:)=PRVS(:,:,:)                                          &
                 -ZTMP3_DEVICE(:,:,:)              &
diff --git a/src/MNH/turb_hor_sv_flux.f90 b/src/MNH/turb_hor_sv_flux.f90
index dff4a9007..b43300c3f 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-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.
@@ -595,7 +595,7 @@ DO JSV=1,ISV
       !$acc kernels
       ZTMP3_DEVICE = PMZM_PRHODJ * PINV_PDZZ * ( ZTMP4_DEVICE + ZTMP5_DEVICE )
       !$acc end kernels
-      CALL DZF_DEVICE( 1,IKU,1, ZTMP3_DEVICE, ZTMP4_DEVICE)
+      CALL DZF_DEVICE( ZTMP3_DEVICE, ZTMP4_DEVICE )
       !$acc kernels
       PRSVS(:,:,:,JSV) = PRSVS(:,:,:,JSV) - ZTMP1_DEVICE - ZTMP2_DEVICE + ZTMP4_DEVICE
       !$acc end kernels
@@ -617,7 +617,7 @@ DO JSV=1,ISV
       !$acc kernels
       ZTMP3_DEVICE = PMZM_PRHODJ * PINV_PDZZ * ZTMP4_DEVICE
       !$acc end kernels
-      CALL DZF_DEVICE(1,IKU,1, ZTMP3_DEVICE, ZTMP2_DEVICE)
+      CALL DZF_DEVICE( ZTMP3_DEVICE, ZTMP2_DEVICE)
       !$acc kernels
       PRSVS(:,:,:,JSV) = PRSVS(:,:,:,JSV) - ZTMP1_DEVICE + ZTMP2_DEVICE
       !$acc end kernels
diff --git a/src/MNH/turb_hor_thermo_flux.f90 b/src/MNH/turb_hor_thermo_flux.f90
index 5b629bd4e..b4ae8261b 100644
--- a/src/MNH/turb_hor_thermo_flux.f90
+++ b/src/MNH/turb_hor_thermo_flux.f90
@@ -434,7 +434,7 @@ DO CONCURRENT ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)
    ZTMP2_DEVICE(JI,JJ,JK) = PMZM_PRHODJ(JI,JJ,JK) * ZTMP4_DEVICE(JI,JJ,JK) * PINV_PDZZ(JI,JJ,JK)
 END DO
 !$acc end kernels
-  CALL DZF_DEVICE(1,IKU,1,ZTMP2_DEVICE,ZTMP4_DEVICE )
+  CALL DZF_DEVICE( ZTMP2_DEVICE, ZTMP4_DEVICE )
 !$acc kernels
   PRTHLS(:,:,:) = PRTHLS(:,:,:) - ZTMP3_DEVICE(:,:,:) + ZTMP4_DEVICE(:,:,:)
 !$acc end kernels
@@ -532,7 +532,7 @@ IF ( KRRL >= 1 ) THEN
       !$acc kernels
       ZTMP3_DEVICE(:,:,:) = ZTMP4_DEVICE(:,:,:)*ZTMP5_DEVICE(:,:,:)*PINV_PDZZ(:,:,:)
       !$acc end kernels
-      CALL DZF_DEVICE(1,IKU,1, ZTMP3_DEVICE, ZTMP4_DEVICE )
+      CALL DZF_DEVICE( ZTMP3_DEVICE, ZTMP4_DEVICE )
 !$acc kernels
       PRRS(:,:,:,2) = PRRS(:,:,:,2) +  2. * (- ZTMP2_DEVICE(:,:,:) + ZTMP4_DEVICE(:,:,:) )*(1.0-PFRAC_ICE(:,:,:))
       PRRS(:,:,:,4) = PRRS(:,:,:,4) +  2. * (- ZTMP2_DEVICE(:,:,:) + ZTMP4_DEVICE(:,:,:) )*PFRAC_ICE(:,:,:)
@@ -549,7 +549,7 @@ IF ( KRRL >= 1 ) THEN
       !$acc kernels
       ZTMP3_DEVICE(:,:,:) = ZTMP4_DEVICE(:,:,:)*ZTMP5_DEVICE(:,:,:)*PINV_PDZZ(:,:,:)
       !$acc end kernels
-      CALL DZF_DEVICE(1,IKU,1, ZTMP3_DEVICE, ZTMP4_DEVICE )
+      CALL DZF_DEVICE( ZTMP3_DEVICE, ZTMP4_DEVICE )
 !$acc kernels
       PRRS(:,:,:,2) = PRRS(:,:,:,2) + 2. * (- ZTMP2_DEVICE(:,:,:) + ZTMP4_DEVICE(:,:,:) )
 !$acc end kernels
@@ -840,7 +840,7 @@ END DO
        ZTMP2_DEVICE(JI,JJ,JK) = PMZM_PRHODJ(JI,JJ,JK) * ZTMP4_DEVICE(JI,JJ,JK) * PINV_PDZZ(JI,JJ,JK)
     END DO
     !$acc end kernels
-    CALL DZF_DEVICE(1,IKU,1, ZTMP2_DEVICE, ZTMP4_DEVICE)
+    CALL DZF_DEVICE( ZTMP2_DEVICE, ZTMP4_DEVICE )
     !$acc kernels
     !$acc loop independent collapse(3)
     DO CONCURRENT ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)    
@@ -889,7 +889,7 @@ END DO
       !$acc kernels
       ZTMP6_DEVICE(:,:,:) = ZTMP4_DEVICE(:,:,:)*ZTMP5_DEVICE(:,:,:)*PINV_PDZZ(:,:,:)
       !$acc end kernels
-      CALL DZF_DEVICE(1,IKU,1, ZTMP6_DEVICE, ZTMP3_DEVICE )
+      CALL DZF_DEVICE( ZTMP6_DEVICE, ZTMP3_DEVICE )
       !$acc kernels
       ZTMP4_DEVICE(:,:,:) = ZTMP8_DEVICE(:,:,:) * ZFLX(:,:,:)*PINV_PDXX(:,:,:)
       !$acc end kernels
@@ -1226,7 +1226,7 @@ IF (.NOT. L2D) THEN
        ZTMP1_DEVICE(JI,JJ,JK) = PMZM_PRHODJ(JI,JJ,JK) * ZTMP2_DEVICE(JI,JJ,JK) * PINV_PDZZ(JI,JJ,JK)
     END DO
     !$acc end kernels
-    CALL DZF_DEVICE(1,IKU,1, ZTMP1_DEVICE, ZTMP2_DEVICE )
+    CALL DZF_DEVICE( ZTMP1_DEVICE, ZTMP2_DEVICE )
     !$acc kernels
     !$acc loop independent collapse(3)
     DO CONCURRENT ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)
@@ -1282,7 +1282,7 @@ IF ( KRRL >= 1 .AND. .NOT. L2D) THEN
       !$acc kernels
       ZTMP3_DEVICE(:,:,:) = ZTMP6_DEVICE(:,:,:)*PINV_PDZZ(:,:,:)
       !$acc end kernels
-      CALL DZF_DEVICE(1,IKU,1, ZTMP3_DEVICE, ZTMP5_DEVICE )
+      CALL DZF_DEVICE( ZTMP3_DEVICE, ZTMP5_DEVICE )
       !$acc kernels
       PRRS(:,:,:,2) = PRRS(:,:,:,2) + 2. * (- ZTMP4_DEVICE(:,:,:) + ZTMP5_DEVICE(:,:,:) )*(1.0-PFRAC_ICE(:,:,:))
       PRRS(:,:,:,4) = PRRS(:,:,:,4) + 2. * (- ZTMP4_DEVICE(:,:,:) + ZTMP5_DEVICE(:,:,:) )*PFRAC_ICE(:,:,:)
@@ -1295,7 +1295,7 @@ IF ( KRRL >= 1 .AND. .NOT. L2D) THEN
       !$acc kernels
       ZTMP3_DEVICE(:,:,:) = ZTMP6_DEVICE(:,:,:)*PINV_PDZZ(:,:,:)
       !$acc end kernels
-      CALL DZF_DEVICE(1,IKU,1, ZTMP3_DEVICE, ZTMP5_DEVICE )
+      CALL DZF_DEVICE( ZTMP3_DEVICE, ZTMP5_DEVICE )
       !$acc kernels
       PRRS(:,:,:,2) = PRRS(:,:,:,2) + 2. * (- ZTMP4_DEVICE(:,:,:) + ZTMP5_DEVICE(:,:,:) )
       !$acc end kernels
@@ -1593,7 +1593,7 @@ IF (KRR/=0) THEN
          ZTMP1_DEVICE(JI,JJ,JK) = PMZM_PRHODJ(JI,JJ,JK) * ZTMP2_DEVICE(JI,JJ,JK) * PINV_PDZZ(JI,JJ,JK)
       END DO
       !$acc end kernels
-      CALL DZF_DEVICE(1,IKU,1,ZTMP1_DEVICE,ZTMP2_DEVICE )
+      CALL DZF_DEVICE( ZTMP1_DEVICE, ZTMP2_DEVICE )
       !
       !$acc kernels
       !$acc loop independent collapse(3)
@@ -1649,7 +1649,7 @@ IF (KRR/=0) THEN
         !$acc kernels
         ZTMP2_DEVICE(:,:,:) = ZTMP1_DEVICE(:,:,:)* PINV_PDZZ(:,:,:)
         !$acc end kernels
-        CALL DZF_DEVICE(1,IKU,1, ZTMP2_DEVICE, ZTMP4_DEVICE )
+        CALL DZF_DEVICE( ZTMP2_DEVICE, ZTMP4_DEVICE )
         !$acc kernels
         PRRS(:,:,:,2) = PRRS(:,:,:,2) +  2. * (- ZTMP3_DEVICE(:,:,:) + ZTMP4_DEVICE(:,:,:) )*(1.0-PFRAC_ICE(:,:,:))
         PRRS(:,:,:,4) = PRRS(:,:,:,4) +  2. * (- ZTMP3_DEVICE(:,:,:) + ZTMP4_DEVICE(:,:,:) )*PFRAC_ICE(:,:,:)
diff --git a/src/MNH/turb_hor_tke.f90 b/src/MNH/turb_hor_tke.f90
index c5db45b26..2319dbaa8 100644
--- a/src/MNH/turb_hor_tke.f90
+++ b/src/MNH/turb_hor_tke.f90
@@ -1,4 +1,4 @@
-!MNH_LIC Copyright 1994-2020 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.
@@ -317,7 +317,7 @@ IF (.NOT. LFLAT) THEN
      ZTMP2_DEVICE(JI,JJ,JK) = PMZM_PRHODJ(JI,JJ,JK) * ZTMP3_DEVICE(JI,JJ,JK) * PINV_PDZZ(JI,JJ,JK)
   END DO !CONCURRENT   
   !$acc end kernels 
-  CALL DZF_DEVICE(1,IKU,1,ZTMP2_DEVICE,ZTMP3_DEVICE)
+  CALL DZF_DEVICE( ZTMP2_DEVICE, ZTMP3_DEVICE )
   !$acc kernels
   !$acc loop independent collapse(3)
   DO CONCURRENT ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)
@@ -453,7 +453,7 @@ IF (.NOT. L2D) THEN
        ZTMP2_DEVICE(JI,JJ,JK) = PMZM_PRHODJ(JI,JJ,JK) * ZTMP3_DEVICE(JI,JJ,JK) * PINV_PDZZ(JI,JJ,JK)
     END DO !CONCURRENT   
     !$acc end kernels 
-    CALL DZF_DEVICE(1,IKU,1,ZTMP2_DEVICE,ZTMP3_DEVICE)
+    CALL DZF_DEVICE( ZTMP2_DEVICE, ZTMP3_DEVICE )
     !$acc kernels
     !$acc loop independent collapse(3)
     DO CONCURRENT ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)
diff --git a/src/MNH/turb_hor_uv.f90 b/src/MNH/turb_hor_uv.f90
index f206bcee4..5027ccb57 100644
--- a/src/MNH/turb_hor_uv.f90
+++ b/src/MNH/turb_hor_uv.f90
@@ -560,7 +560,7 @@ IF (.NOT. LFLAT) THEN
      ZTMP5_DEVICE(JI,JJ,JK) = ZTMP2_DEVICE(JI,JJ,JK)*ZTMP4_DEVICE(JI,JJ,JK)
   END DO !CONCURRENT    
   !$acc end kernels
-  CALL DZF_DEVICE(1,IKU,1,ZTMP5_DEVICE,ZTMP3_DEVICE)
+  CALL DZF_DEVICE( ZTMP5_DEVICE, ZTMP3_DEVICE )
   !$acc kernels
   !$acc loop independent collapse(3)
   DO CONCURRENT ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)
@@ -630,7 +630,7 @@ IF (.NOT. LFLAT) THEN
      ZTMP5_DEVICE(JI,JJ,JK) = ZTMP2_DEVICE(JI,JJ,JK)*ZTMP4_DEVICE(JI,JJ,JK)
   END DO !CONCURRENT   
   !$acc end kernels
-  CALL DZF_DEVICE(1,IKU,1,ZTMP5_DEVICE,ZTMP3_DEVICE)
+  CALL DZF_DEVICE( ZTMP5_DEVICE, ZTMP3_DEVICE )
   !$acc kernels
   !$acc loop independent collapse(3)
   DO CONCURRENT ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)
diff --git a/src/MNH/turb_hor_uw.f90 b/src/MNH/turb_hor_uw.f90
index 5433d83f5..8978148b5 100644
--- a/src/MNH/turb_hor_uw.f90
+++ b/src/MNH/turb_hor_uw.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.
@@ -335,7 +335,7 @@ DO CONCURRENT ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)
    ZTMP3_DEVICE(JI,JJ,JK) = ZFLX(JI,JJ,JK)* ZTMP1_DEVICE(JI,JJ,JK) / ZTMP2_DEVICE(JI,JJ,JK)
 END DO !CONCURRENT   
 !$acc end kernels
-CALL DZF_DEVICE(1,IKU,1, ZTMP3_DEVICE, ZTMP1_DEVICE )
+CALL DZF_DEVICE( ZTMP3_DEVICE, ZTMP1_DEVICE )
 !$acc kernels
 !$acc loop independent collapse(3)
 DO CONCURRENT ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)
diff --git a/src/MNH/turb_hor_vw.f90 b/src/MNH/turb_hor_vw.f90
index 93446e37c..271f793be 100644
--- a/src/MNH/turb_hor_vw.f90
+++ b/src/MNH/turb_hor_vw.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.
@@ -342,7 +342,7 @@ IF (.NOT. L2D) THEN
      ZTMP3_DEVICE(JI,JJ,JK) = ZFLX(JI,JJ,JK)* ZTMP1_DEVICE(JI,JJ,JK) / ZTMP2_DEVICE(JI,JJ,JK)
   END DO !CONCURRENT   
   !$acc end kernels
-  CALL DZF_DEVICE(1,IKU,1, ZTMP3_DEVICE, ZTMP1_DEVICE )
+  CALL DZF_DEVICE( ZTMP3_DEVICE, ZTMP1_DEVICE )
   !$acc kernels
   !$acc loop independent collapse(3)
   DO CONCURRENT ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)
diff --git a/src/MNH/turb_ver_thermo_flux.f90 b/src/MNH/turb_ver_thermo_flux.f90
index f6dfef48b..a07475911 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-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.
@@ -1106,7 +1106,7 @@ IF ( KRRL >= 1 ) THEN
     ZTMP1_DEVICE(:,:,:) = PRHODJ(:,:,:) * PATHETA(:,:,:) * 2. * PSRCM(:,:,:)
     ZTMP2_DEVICE(:,:,:) = ZFLXZ(:,:,:) / PDZZ(:,:,:)
 !$acc end kernels
-    CALL DZF_DEVICE( KKA, KKU, KKL, ZTMP2_DEVICE, ZTMP3_DEVICE )
+    CALL DZF_DEVICE( ZTMP2_DEVICE, ZTMP3_DEVICE )
 !$acc kernels
     PRRS(:,:,:,2) = PRRS(:,:,:,2) - ZTMP1_DEVICE(:,:,:) * ZTMP3_DEVICE * (1.0-PFRAC_ICE(:,:,:))
     PRRS(:,:,:,4) = PRRS(:,:,:,4) - ZTMP1_DEVICE(:,:,:) * ZTMP3_DEVICE * PFRAC_ICE(:,:,:)
@@ -1116,7 +1116,7 @@ IF ( KRRL >= 1 ) THEN
     ZTMP1_DEVICE(:,:,:) = PRHODJ(:,:,:) * PATHETA(:,:,:) * 2. * PSRCM(:,:,:)
     ZTMP2_DEVICE(:,:,:) = ZFLXZ(:,:,:) / PDZZ(:,:,:)
 !$acc end kernels
-    CALL DZF_DEVICE( KKA, KKU, KKL, ZTMP2_DEVICE, ZTMP3_DEVICE )
+    CALL DZF_DEVICE( ZTMP2_DEVICE, ZTMP3_DEVICE )
 !$acc kernels
     PRRS(:,:,:,2) = PRRS(:,:,:,2) - ZTMP1_DEVICE(:,:,:) * ZTMP3_DEVICE(:,:,:)
 !$acc end kernels
@@ -1592,7 +1592,7 @@ END DO
       ZTMP1_DEVICE(:,:,:) = PRHODJ(:,:,:)*PAMOIST(:,:,:)*2.*PSRCM(:,:,:)
       ZTMP2_DEVICE(:,:,:) = ZFLXZ(:,:,:)/PDZZ(:,:,:)
 !$acc end kernels
-      CALL DZF_DEVICE(KKA,KKU,KKL, ZTMP2_DEVICE, ZTMP3_DEVICE )
+      CALL DZF_DEVICE( ZTMP2_DEVICE, ZTMP3_DEVICE )
 !$acc kernels
       PRRS(:,:,:,2) = PRRS(:,:,:,2) - ZTMP1_DEVICE(:,:,:) * ZTMP3_DEVICE(:,:,:) * (1.0-PFRAC_ICE(:,:,:))
       PRRS(:,:,:,4) = PRRS(:,:,:,4) - ZTMP1_DEVICE(:,:,:) * ZTMP3_DEVICE(:,:,:) * PFRAC_ICE(:,:,:)
@@ -1602,7 +1602,7 @@ END DO
       ZTMP1_DEVICE(:,:,:) = PRHODJ(:,:,:)*PAMOIST(:,:,:)*2.*PSRCM(:,:,:)
       ZTMP2_DEVICE(:,:,:) = ZFLXZ(:,:,:)/PDZZ(:,:,:)
 !$acc end kernels
-      CALL DZF_DEVICE(KKA,KKU,KKL, ZTMP2_DEVICE, ZTMP3_DEVICE )
+      CALL DZF_DEVICE( ZTMP2_DEVICE, ZTMP3_DEVICE )
 !$acc kernels
       PRRS(:,:,:,2) = PRRS(:,:,:,2) - ZTMP1_DEVICE(:,:,:) * ZTMP3_DEVICE(:,:,:)
 !$acc end kernels
diff --git a/src/ZSOLVER/advecuvw_weno_k.f90 b/src/ZSOLVER/advecuvw_weno_k.f90
index d9d492b81..9535df3c9 100644
--- a/src/ZSOLVER/advecuvw_weno_k.f90
+++ b/src/ZSOLVER/advecuvw_weno_k.f90
@@ -235,7 +235,7 @@ CASE(1) ! WENO 1
   !PRUS = PRUS - DZF(1,IKU,1,UP_MZ(PUT,MXM(PRWCT)))
   CALL MXM_DEVICE(PRWCT,ZWORK)
   CALL UP_MZ_DEVICE(PUT,ZWORK,ZMEAN)
-  CALL DZF_DEVICE(1,IKU,1,ZMEAN,ZWORK)
+  CALL DZF_DEVICE( ZMEAN, ZWORK )
 !$acc kernels
   PRUS(:,:,:) = PRUS(:,:,:) - ZWORK(:,:,:)
 !$acc end kernels
@@ -261,7 +261,7 @@ CASE(1) ! WENO 1
   !PRVS = PRVS - DZF(1,IKU,1,UP_MZ(PVT,MYM(PRWCT)))
   CALL MYM_DEVICE(PRWCT,ZWORK)
   CALL UP_MZ_DEVICE(PVT,ZWORK,ZMEAN)
-  CALL DZF_DEVICE(1,IKU,1,ZMEAN,ZWORK)
+  CALL DZF_DEVICE( ZMEAN, ZWORK )
 !$acc kernels
   PRVS(:,:,:) = PRVS(:,:,:) - ZWORK(:,:,:)
 !$acc end kernels
@@ -372,7 +372,7 @@ CASE(3) ! WENO 3
                    ZT3D(:,:,:,IZFPOS1), ZT3D(:,:,:,IZFPOS2), ZT3D(:,:,:,IZFNEG1), ZT3D(:,:,:,IZFNEG2), &
                    ZT3D(:,:,:,IZBPOS1), ZT3D(:,:,:,IZBPOS2), ZT3D(:,:,:,IZBNEG1), ZT3D(:,:,:,IZBNEG2), &
                    ZT3D(:,:,:,IZOMP1),  ZT3D(:,:,:,IZOMP2),  ZT3D(:,:,:,IZOMN1),  ZT3D(:,:,:,IZOMN2) )
-  CALL DZF_DEVICE(1,IKU,1,ZMEAN,ZWORK)
+  CALL DZF_DEVICE( ZMEAN, ZWORK )
 !$acc kernels
   PRUS(:,:,:) = PRUS(:,:,:) - ZWORK(:,:,:)
 !$acc end kernels
@@ -406,7 +406,7 @@ CASE(3) ! WENO 3
                      ZT3D(:,:,:,IZFPOS1), ZT3D(:,:,:,IZFPOS2), ZT3D(:,:,:,IZFNEG1), ZT3D(:,:,:,IZFNEG2), &
                      ZT3D(:,:,:,IZBPOS1), ZT3D(:,:,:,IZBPOS2), ZT3D(:,:,:,IZBNEG1), ZT3D(:,:,:,IZBNEG2), &
                      ZT3D(:,:,:,IZOMP1),  ZT3D(:,:,:,IZOMP2),  ZT3D(:,:,:,IZOMN1),  ZT3D(:,:,:,IZOMN2) )
-    CALL DZF_DEVICE(1,IKU,1,ZMEAN,ZWORK)
+    CALL DZF_DEVICE( ZMEAN, ZWORK )
 !$acc kernels
     PRVS(:,:,:) = PRVS(:,:,:) - ZWORK(:,:,:)
 !$acc end kernels
@@ -556,7 +556,7 @@ CASE(5) ! WENO 5
                    ZT3D(:,:,:,IZOMP1),  ZT3D(:,:,:,IZOMP2),  ZT3D(:,:,:,IZOMP3),  &
                    ZT3D(:,:,:,IZOMN1),  ZT3D(:,:,:,IZOMN2),  ZT3D(:,:,:,IZOMN3) )
   CALL GET_HALO_D(ZMEAN)! Update HALO - maybe not necessary (T.Lunet)
-  CALL DZF_DEVICE(1,IKU,1,ZMEAN,ZWORK)
+  CALL DZF_DEVICE( ZMEAN, ZWORK )
 !$acc kernels
   PRUS(:,:,:) = PRUS(:,:,:) - ZWORK(:,:,:)
 !$acc end kernels
@@ -601,7 +601,7 @@ CASE(5) ! WENO 5
                      ZT3D(:,:,:,IZOMP1),  ZT3D(:,:,:,IZOMP2),  ZT3D(:,:,:,IZOMP3),  &
                      ZT3D(:,:,:,IZOMN1),  ZT3D(:,:,:,IZOMN2),  ZT3D(:,:,:,IZOMN3) )
     CALL GET_HALO_D(ZMEAN)! Update HALO - maybe not necessary (T.Lunet)
-    CALL DZF_DEVICE(1,IKU,1,ZMEAN,ZWORK)
+    CALL DZF_DEVICE( ZMEAN, ZWORK )
 !$acc kernels
     PRVS(:,:,:) = PRVS(:,:,:) - ZWORK(:,:,:)
 !$acc end kernels
diff --git a/src/ZSOLVER/ppm.f90 b/src/ZSOLVER/ppm.f90
index d97a86b4e..43378661f 100644
--- a/src/ZSOLVER/ppm.f90
+++ b/src/ZSOLVER/ppm.f90
@@ -2412,7 +2412,7 @@ do jk = 1, iku
 end do
     !dzf(PR,ZQR)
 !$acc end kernels
-    CALL DZF_DEVICE(1,1,1,ZQR,PR)
+    CALL DZF_DEVICE(ZQR,PR)
 #endif
 !
 #ifndef MNH_OPENACC
@@ -3723,7 +3723,7 @@ PR = PSRC * PRHO - &
    ZCR_MZM =  PCR* ZRHO_MZM*( ZFPOS(:,:,:)*(0.5+SIGN(0.5,PCR)) + ZFNEG*(0.5-SIGN(0.5,PCR)) ) 
    !dzf(ZCR_DZF,ZCR_MZM)
 !$acc end kernels
-   CALL DZF_DEVICE(1,1,1,ZCR_MZM,ZCR_DZF)
+   CALL DZF_DEVICE(ZCR_MZM,ZCR_DZF)
 !$acc kernels
    PR = PSRC * PRHO - ZCR_DZF
 #endif
diff --git a/src/ZSOLVER/turb_hor_dyn_corr.f90 b/src/ZSOLVER/turb_hor_dyn_corr.f90
index 45e0b91b2..9c9fb79dd 100644
--- a/src/ZSOLVER/turb_hor_dyn_corr.f90
+++ b/src/ZSOLVER/turb_hor_dyn_corr.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.
@@ -733,7 +733,7 @@ IF (.NOT. LFLAT) THEN
      ZTMP2_DEVICE(JI,JJ,JK) = PDZX(JI,JJ,JK) / ZTMP1_DEVICE(JI,JJ,JK) * ZTMP4_DEVICE(JI,JJ,JK)
   END DO !CONCURRENT   
   !$acc end kernels
-  CALL DZF_DEVICE(1,IKU,1,ZTMP2_DEVICE,ZTMP1_DEVICE)
+  CALL DZF_DEVICE( ZTMP2_DEVICE, ZTMP1_DEVICE )
   !$acc kernels async(1)
   PRUS(:,:,:)=PRUS(:,:,:)                                           &
               -ZTMP3_DEVICE(:,:,:)                &
@@ -953,7 +953,7 @@ IF (.NOT. L2D) THEN
        ZTMP2_DEVICE(JI,JJ,JK) = PDZY(JI,JJ,JK) / ZTMP1_DEVICE(JI,JJ,JK) * ZTMP4_DEVICE(JI,JJ,JK)
     END DO !CONCURRENT   
     !$acc end kernels
-    CALL DZF_DEVICE(1,IKU,1,ZTMP2_DEVICE,ZTMP4_DEVICE )
+    CALL DZF_DEVICE( ZTMP2_DEVICE, ZTMP4_DEVICE )
     !$acc kernels async(1)
     PRVS(:,:,:)=PRVS(:,:,:)                                          &
                 -ZTMP3_DEVICE(:,:,:)              &
diff --git a/src/ZSOLVER/turb_hor_thermo_flux.f90 b/src/ZSOLVER/turb_hor_thermo_flux.f90
index c16b9e9c8..8217fa9da 100644
--- a/src/ZSOLVER/turb_hor_thermo_flux.f90
+++ b/src/ZSOLVER/turb_hor_thermo_flux.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.
@@ -432,7 +432,7 @@ DO CONCURRENT ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)
    ZTMP2_DEVICE(JI,JJ,JK) = PMZM_PRHODJ(JI,JJ,JK) * ZTMP4_DEVICE(JI,JJ,JK) * PINV_PDZZ(JI,JJ,JK)
 END DO
 !$acc end kernels
-  CALL DZF_DEVICE(1,IKU,1,ZTMP2_DEVICE,ZTMP4_DEVICE )
+  CALL DZF_DEVICE( ZTMP2_DEVICE, ZTMP4_DEVICE )
 !$acc kernels
   PRTHLS(:,:,:) = PRTHLS(:,:,:) - ZTMP3_DEVICE(:,:,:) + ZTMP4_DEVICE(:,:,:)
 !$acc end kernels
@@ -530,7 +530,7 @@ IF ( KRRL >= 1 ) THEN
       !$acc kernels
       ZTMP3_DEVICE(:,:,:) = ZTMP4_DEVICE(:,:,:)*ZTMP5_DEVICE(:,:,:)*PINV_PDZZ(:,:,:)
       !$acc end kernels
-      CALL DZF_DEVICE(1,IKU,1, ZTMP3_DEVICE, ZTMP4_DEVICE )
+      CALL DZF_DEVICE( ZTMP3_DEVICE, ZTMP4_DEVICE )
 !$acc kernels
       PRRS(:,:,:,2) = PRRS(:,:,:,2) +  2. * (- ZTMP2_DEVICE(:,:,:) + ZTMP4_DEVICE(:,:,:) )*(1.0-PFRAC_ICE(:,:,:))
       PRRS(:,:,:,4) = PRRS(:,:,:,4) +  2. * (- ZTMP2_DEVICE(:,:,:) + ZTMP4_DEVICE(:,:,:) )*PFRAC_ICE(:,:,:)
@@ -547,7 +547,7 @@ IF ( KRRL >= 1 ) THEN
       !$acc kernels
       ZTMP3_DEVICE(:,:,:) = ZTMP4_DEVICE(:,:,:)*ZTMP5_DEVICE(:,:,:)*PINV_PDZZ(:,:,:)
       !$acc end kernels
-      CALL DZF_DEVICE(1,IKU,1, ZTMP3_DEVICE, ZTMP4_DEVICE )
+      CALL DZF_DEVICE( ZTMP3_DEVICE, ZTMP4_DEVICE )
 !$acc kernels
       PRRS(:,:,:,2) = PRRS(:,:,:,2) + 2. * (- ZTMP2_DEVICE(:,:,:) + ZTMP4_DEVICE(:,:,:) )
 !$acc end kernels
@@ -838,7 +838,7 @@ END DO
        ZTMP2_DEVICE(JI,JJ,JK) = PMZM_PRHODJ(JI,JJ,JK) * ZTMP4_DEVICE(JI,JJ,JK) * PINV_PDZZ(JI,JJ,JK)
     END DO
     !$acc end kernels
-    CALL DZF_DEVICE(1,IKU,1, ZTMP2_DEVICE, ZTMP4_DEVICE)
+    CALL DZF_DEVICE( ZTMP2_DEVICE, ZTMP4_DEVICE)
     !$acc kernels
     !$acc loop independent collapse(3)
     DO CONCURRENT ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)    
@@ -884,7 +884,7 @@ END DO
       !
       ZTMP6_DEVICE(:,:,:) = ZTMP4_DEVICE(:,:,:)*ZTMP5_DEVICE(:,:,:)*PINV_PDZZ(:,:,:)
       !$acc end kernels
-      CALL DZF_DEVICE(1,IKU,1, ZTMP6_DEVICE, ZTMP3_DEVICE )
+      CALL DZF_DEVICE( ZTMP6_DEVICE, ZTMP3_DEVICE )
       !$acc kernels
       ZTMP4_DEVICE(:,:,:) = ZTMP8_DEVICE(:,:,:) * ZFLX(:,:,:)*PINV_PDXX(:,:,:)
       !$acc end kernels
@@ -1221,7 +1221,7 @@ IF (.NOT. L2D) THEN
        ZTMP1_DEVICE(JI,JJ,JK) = PMZM_PRHODJ(JI,JJ,JK) * ZTMP2_DEVICE(JI,JJ,JK) * PINV_PDZZ(JI,JJ,JK)
     END DO
     !$acc end kernels
-    CALL DZF_DEVICE(1,IKU,1, ZTMP1_DEVICE, ZTMP2_DEVICE )
+    CALL DZF_DEVICE( ZTMP1_DEVICE, ZTMP2_DEVICE )
     !$acc kernels
     !$acc loop independent collapse(3)
     DO CONCURRENT ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)
@@ -1277,7 +1277,7 @@ IF ( KRRL >= 1 .AND. .NOT. L2D) THEN
       !$acc kernels
       ZTMP3_DEVICE(:,:,:) = ZTMP6_DEVICE(:,:,:)*PINV_PDZZ(:,:,:)
       !$acc end kernels
-      CALL DZF_DEVICE(1,IKU,1, ZTMP3_DEVICE, ZTMP5_DEVICE )
+      CALL DZF_DEVICE( ZTMP3_DEVICE, ZTMP5_DEVICE )
       !$acc kernels
       PRRS(:,:,:,2) = PRRS(:,:,:,2) + 2. * (- ZTMP4_DEVICE(:,:,:) + ZTMP5_DEVICE(:,:,:) )*(1.0-PFRAC_ICE(:,:,:))
       PRRS(:,:,:,4) = PRRS(:,:,:,4) + 2. * (- ZTMP4_DEVICE(:,:,:) + ZTMP5_DEVICE(:,:,:) )*PFRAC_ICE(:,:,:)
@@ -1290,7 +1290,7 @@ IF ( KRRL >= 1 .AND. .NOT. L2D) THEN
       !$acc kernels
       ZTMP3_DEVICE(:,:,:) = ZTMP6_DEVICE(:,:,:)*PINV_PDZZ(:,:,:)
       !$acc end kernels
-      CALL DZF_DEVICE(1,IKU,1, ZTMP3_DEVICE, ZTMP5_DEVICE )
+      CALL DZF_DEVICE( ZTMP3_DEVICE, ZTMP5_DEVICE )
       !$acc kernels
       PRRS(:,:,:,2) = PRRS(:,:,:,2) + 2. * (- ZTMP4_DEVICE(:,:,:) + ZTMP5_DEVICE(:,:,:) )
       !$acc end kernels
@@ -1588,7 +1588,7 @@ IF (KRR/=0) THEN
          ZTMP1_DEVICE(JI,JJ,JK) = PMZM_PRHODJ(JI,JJ,JK) * ZTMP2_DEVICE(JI,JJ,JK) * PINV_PDZZ(JI,JJ,JK)
       END DO
       !$acc end kernels
-      CALL DZF_DEVICE(1,IKU,1,ZTMP1_DEVICE,ZTMP2_DEVICE )
+      CALL DZF_DEVICE( ZTMP1_DEVICE, ZTMP2_DEVICE )
       !
       !$acc kernels
       !$acc loop independent collapse(3)
@@ -1644,7 +1644,7 @@ IF (KRR/=0) THEN
         !$acc kernels
         ZTMP2_DEVICE(:,:,:) = ZTMP1_DEVICE(:,:,:)* PINV_PDZZ(:,:,:)
         !$acc end kernels
-        CALL DZF_DEVICE(1,IKU,1, ZTMP2_DEVICE, ZTMP4_DEVICE )
+        CALL DZF_DEVICE( ZTMP2_DEVICE, ZTMP4_DEVICE )
         !$acc kernels
         PRRS(:,:,:,2) = PRRS(:,:,:,2) +  2. * (- ZTMP3_DEVICE(:,:,:) + ZTMP4_DEVICE(:,:,:) )*(1.0-PFRAC_ICE(:,:,:))
         PRRS(:,:,:,4) = PRRS(:,:,:,4) +  2. * (- ZTMP3_DEVICE(:,:,:) + ZTMP4_DEVICE(:,:,:) )*PFRAC_ICE(:,:,:)
-- 
GitLab