diff --git a/src/MNH/advection_metsv.f90 b/src/MNH/advection_metsv.f90
index 39b1b0a38a0d838baf6104b7358ec053cb6fe32f..5d409068496024e40f3fbf944d0801f470b6d9a2 100644
--- a/src/MNH/advection_metsv.f90
+++ b/src/MNH/advection_metsv.f90
@@ -754,6 +754,10 @@ DO JSV=1,KSV
 END DO
 !
 IF ((HCLOUD == 'KHKO') .OR. (HCLOUD == 'C2R2')) THEN
+#ifdef _OPENACC
+  PRINT *,'OPENACC: ADVECTION_METSV::HCLOUD=''KHKO'' OR ''C2R2'' not yet implemented'
+  CALL ABORT
+#endif
   ZEXN(:,:,:)= (PPABST(:,:,:)/XP00)**(XRD/XCPD)
   ZT(:,:,:)= PTHT(:,:,:)*ZEXN(:,:,:)
   ZLV(:,:,:)=XLVTT +(XCPV-XCL) *(ZT(:,:,:)-XTT)
diff --git a/src/MNH/advecuvw_rk.f90 b/src/MNH/advecuvw_rk.f90
index 0c4c518d4ba9b19e7db02a7de8b435ec911135f1..5e45e462d2a5eceb04a221a999c1c67f1bf03a34 100644
--- a/src/MNH/advecuvw_rk.f90
+++ b/src/MNH/advecuvw_rk.f90
@@ -467,15 +467,15 @@ ZRWS = 0.
 !$acc update device(ZRUS(:,:,:,JS),ZRVS(:,:,:,JS),ZRWS(:,:,:,JS))
 !
   IF ( JS /= ISPL ) THEN
-!
-      ZUT = PU
-      ZVT = PV
-      ZWT = PW
-!
-!$acc kernels present(ZUT,ZVT,ZWT) present(ZBUT) &
+!$acc kernels present(ZUT,ZVT,ZWT) present(ZBUT) present(PU,PV,PW)        &
 !$acc & present(ZRUS,ZRVS,ZRWS) present(PRUS_OTHER,PRVS_OTHER,PRWS_OTHER) &
 !$acc & present(PMXM_RHODJ,PMYM_RHODJ,PMZM_RHODJ)
-   DO JI = 1, JS
+!
+    ZUT = PU
+    ZVT = PV
+    ZWT = PW
+!
+    DO JI = 1, JS
 !
 ! Intermediate guesses inside the RK loop
 !
diff --git a/src/MNH/tke_eps_sources.f90 b/src/MNH/tke_eps_sources.f90
index 5d7faa508fa40b28aca8b8d5524370092e502d37..5d49b954eef2f30620ea35374d89a5ae2ccc2d00 100644
--- a/src/MNH/tke_eps_sources.f90
+++ b/src/MNH/tke_eps_sources.f90
@@ -56,7 +56,8 @@ REAL, DIMENSION(:,:,:),  INTENT(OUT)  ::  PTR          ! Transport prod. of TKE
 REAL, DIMENSION(:,:,:),  INTENT(OUT)  ::  PDISS        ! Dissipati prod. of TKE
 !$acc declare present(PTKEM,PLM,PLEPS,PDP,PTRH,              &
 !$acc &               PRHODJ,PDZZ,PDXX,PDYY,PDZX,PDZY,PZZ,   &
-!$acc &               PTP,PRTKES,PRTKESM, PRTHLS,PCOEF_DISS)
+!$acc &               PTP,PRTKES,PRTKESM, PRTHLS,PCOEF_DISS, &
+!$acc &               PTR,PDISS)
 !
 !
 !
@@ -106,8 +107,6 @@ END MODULE MODI_TKE_EPS_SOURCES
 !!      MXF,MXM.MYF,MYM,MZF,MZM:  Shuman functions (mean operators)
 !!      DZF                    :  Shuman functions (difference operators)     
 !!
-!!      SUBROUTINE TRIDIAG     :  to solve an implicit temporal scheme
-!!      
 !!
 !!    IMPLICIT ARGUMENTS
 !!    ------------------
@@ -252,7 +251,8 @@ REAL, DIMENSION(:,:,:),  INTENT(OUT)  ::  PTR          ! Transport prod. of TKE
 REAL, DIMENSION(:,:,:),  INTENT(OUT)  ::  PDISS        ! Dissipati prod. of TKE
 !$acc declare present(PTKEM,PLM,PLEPS,PDP,PTRH,              &
 !$acc &               PRHODJ,PDZZ,PDXX,PDYY,PDZX,PDZY,PZZ,   &
-!$acc &               PTP,PRTKES,PRTKESM, PRTHLS,PCOEF_DISS)
+!$acc &               PTP,PRTKES,PRTKESM, PRTHLS,PCOEF_DISS, &
+!$acc &               PTR,PDISS)
 !
 !
 !
@@ -267,7 +267,6 @@ REAL, DIMENSION(SIZE(PTKEM,1),SIZE(PTKEM,2),SIZE(PTKEM,3))::         &
                    ! temporarily store some diagnostics stored in FM file
        ZFLX,     & ! horizontal or vertical flux of the treated variable
        ZSOURCE,  & ! source of evolution for the treated variable
-       ZTR,      & ! turbulent transport of TKE 
        ZKEFF       ! effectif diffusion coeff = LT * SQRT( TKE )
 !LOGICAL,DIMENSION(SIZE(PTKEM,1),SIZE(PTKEM,2),SIZE(PTKEM,3)) :: GTKENEG
 !                   ! 3D mask .T. if TKE < XTKEMIN
@@ -283,7 +282,7 @@ CHARACTER (LEN=16)  :: YRECFM       ! Name of the desired field in LFIFM file
 !
 TYPE(LIST_ll), POINTER :: TZFIELDDISS_ll ! list of fields to exchange
 INTEGER                :: IINFO_ll       ! return code of parallel routine
-!$acc declare create(ZA,ZRES,ZFLX,ZSOURCE,ZTR,ZKEFF)
+!$acc declare create(ZA,ZRES,ZFLX,ZSOURCE,ZKEFF)
 !
 #ifdef _OPENACC
 REAL, DIMENSION(SIZE(PTKEM,1),SIZE(PTKEM,2),SIZE(PTKEM,3)) :: ZTMP1_DEVICE,ZTMP2_DEVICE,ZTMP3_DEVICE,ZTMP4_DEVICE
@@ -317,9 +316,9 @@ ZKEFF(:,:,:) = PLM(:,:,:) * SQRT(PTKEM(:,:,:))
 ! Complete the sources of TKE with the horizontal turbulent explicit transport
 !
 IF (HTURBDIM=='3DIM') THEN
-  ZTR=PTRH
+  PTR=PTRH
 ELSE
-  ZTR=0.
+  PTR=0.
 END IF
 !
 !
@@ -336,7 +335,7 @@ PDP(:,:,IKB) = PDP(:,:,IKB) * (1. + PDZZ(:,:,IKB+KKL)/PDZZ(:,:,IKB))
 ZFLX(:,:,:) = XCED * SQRT(PTKEM(:,:,:)) / PLEPS(:,:,:)
 ZSOURCE(:,:,:) = PRTKES(:,:,:) / PRHODJ(:,:,:)  +  PRTKESM(:,:,:) / PRHODJ(:,:,:) &
    - PTKEM(:,:,:) / PTSTEP &
-   + PDP(:,:,:) + PTP(:,:,:) + ZTR(:,:,:) - PEXPL * ZFLX(:,:,:) * PTKEM(:,:,:)
+   + PDP(:,:,:) + PTP(:,:,:) + PTR(:,:,:) - PEXPL * ZFLX(:,:,:) * PTKEM(:,:,:)
 !$acc end kernels
 !
 !*       2.2  implicit vertical TKE transport
@@ -416,13 +415,13 @@ IF ( LLES_CALL .OR.                         &
 ! Compute the whole turbulent TRansport of TKE:
 !
 #ifndef _OPENACC
-  ZTR(:,:,:)= ZTR - DZF(KKA,KKU,KKL, MZM(KKA,KKU,KKL,PRHODJ) * ZFLX / PDZZ ) /PRHODJ
+  PTR(:,:,:)= PTR - DZF(KKA,KKU,KKL, MZM(KKA,KKU,KKL,PRHODJ) * ZFLX / PDZZ ) /PRHODJ
 #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)
 !$acc kernels
-  ZTR(:,:,:)= ZTR - ZTMP2_DEVICE / PRHODJ
+  PTR(:,:,:)= PTR - ZTMP2_DEVICE / PRHODJ
 !$acc end kernels
 #endif
 !
@@ -431,13 +430,13 @@ IF ( LLES_CALL .OR.                         &
   IF (LLES_CALL) THEN
 #ifndef _OPENACC
     CALL LES_MEAN_SUBGRID( MZF(KKA,KKU,KKL,ZFLX), X_LES_SUBGRID_WTke )
-    CALL LES_MEAN_SUBGRID( -ZTR, X_LES_SUBGRID_ddz_WTke )
+    CALL LES_MEAN_SUBGRID( -PTR, X_LES_SUBGRID_ddz_WTke )
 #else
 !$acc data copy(X_LES_SUBGRID_WTke,X_LES_SUBGRID_ddz_WTke)
     CALL MZF_DEVICE(KKA,KKU,KKL,ZFLX,ZTMP1_DEVICE)
     CALL LES_MEAN_SUBGRID( ZTMP1_DEVICE, X_LES_SUBGRID_WTke )
 !$acc kernels
-    ZTMP1_DEVICE = -ZTR
+    ZTMP1_DEVICE = -PTR
 !$acc end kernels
     CALL LES_MEAN_SUBGRID( ZTMP1_DEVICE, X_LES_SUBGRID_ddz_WTke )
 #endif
@@ -498,6 +497,7 @@ END IF
 !$acc kernels
 PRTHLS(:,:,:) = PRTHLS(:,:,:) + XCED * SQRT(PTKEM(:,:,:)) / PLEPS(:,:,:) * &
                 (PEXPL*PTKEM(:,:,:) + PIMPL*ZRES(:,:,:)) * PRHODJ(:,:,:) * PCOEF_DISS(:,:,:)
+PDISS(:,:,:) =  -XCED * (PTKEM(:,:,:)**1.5) / PLEPS(:,:,:)
 !$acc end kernels
 !
 !----------------------------------------------------------------------------
@@ -527,42 +527,32 @@ IF ( OTURB_DIAG .AND. OCLOSE_OUT ) THEN
 !
 ! stores the whole turbulent transport
 !
-!$acc update self(ZTR)
+!$acc update self(PTR)
   YRECFM  ='TR'
   YCOMMENT='X_Y_Z_TR (M**2/S**3)'
   IGRID   = 1
   ILENCH=LEN(YCOMMENT)
-  CALL FMWRIT(HFMFILE,YRECFM,HLUOUT,'XY',ZTR,IGRID,ILENCH,YCOMMENT,IRESP)
+  CALL FMWRIT(HFMFILE,YRECFM,HLUOUT,'XY',PTR,IGRID,ILENCH,YCOMMENT,IRESP)
 !
 ! stores the dissipation of TKE 
 !
+!$acc update self(PDISS)
   YRECFM  ='DISS'
   YCOMMENT='X_Y_Z_DISS (M**2/S**3)'
   IGRID   = 1
   ILENCH=LEN(YCOMMENT)
-!$acc kernels
-  ZFLX(:,:,:) =-XCED * (PTKEM(:,:,:)**1.5) / PLEPS(:,:,:) 
-!$acc end kernels
-!$acc update self(ZFLX)
-  CALL FMWRIT(HFMFILE,YRECFM,HLUOUT,'XY',ZFLX,IGRID,ILENCH,YCOMMENT,IRESP)
+  CALL FMWRIT(HFMFILE,YRECFM,HLUOUT,'XY',PDISS,IGRID,ILENCH,YCOMMENT,IRESP)
 END IF
 !
 ! Storage in the LES configuration of the Dynamic Production of TKE and
 ! the dissipation of TKE 
 ! 
 IF (LLES_CALL ) THEN
-!$acc kernels
-  ZFLX(:,:,:) =-XCED * (PTKEM(:,:,:)**1.5) / PLEPS(:,:,:) 
-!$acc end kernels
 !$acc data copy(X_LES_SUBGRID_DISS_Tke)
-  CALL LES_MEAN_SUBGRID( ZFLX, X_LES_SUBGRID_DISS_Tke )
+  CALL LES_MEAN_SUBGRID( PDISS, X_LES_SUBGRID_DISS_Tke )
 !$acc end data
 END IF
 !
-PTR=0.
-PDISS=0.
-PTR(:,:,:)   = ZTR(:,:,:)
-PDISS(:,:,:) =  -XCED * (PTKEM(:,:,:)**1.5) / PLEPS(:,:,:)
 !----------------------------------------------------------------------------
 ! 
 !
diff --git a/src/MNH/turb.f90 b/src/MNH/turb.f90
index 3d4fd8de1af44f364c703a47f5672ab6c3be648d..d14e2af30ecce5395c770be62940dc8b278532eb 100644
--- a/src/MNH/turb.f90
+++ b/src/MNH/turb.f90
@@ -119,11 +119,11 @@ REAL, DIMENSION(:,:,:), INTENT(IN)      ::  PFLXZTHVMF
 REAL, DIMENSION(:,:,:), INTENT(OUT)  :: PWTH       ! heat flux
 REAL, DIMENSION(:,:,:), INTENT(OUT)  :: PWRC       ! cloud water flux
 REAL, DIMENSION(:,:,:,:),INTENT(OUT) :: PWSV       ! scalar flux
-REAL, DIMENSION(:,:,:), INTENT(INOUT):: PDYP  ! Dynamical production of TKE
-REAL, DIMENSION(:,:,:), INTENT(INOUT):: PTHP  ! Thermal production of TKE
-REAL, DIMENSION(:,:,:), INTENT(OUT):: PTR   ! Transport production of TKE
-REAL, DIMENSION(:,:,:), INTENT(OUT):: PDISS ! Dissipation of TKE
-REAL, DIMENSION(:,:,:), INTENT(INOUT):: PLEM  ! Mixing length                   
+REAL, DIMENSION(:,:,:), INTENT(OUT)  :: PDYP  ! Dynamical production of TKE
+REAL, DIMENSION(:,:,:), INTENT(OUT)  :: PTHP  ! Thermal production of TKE
+REAL, DIMENSION(:,:,:), INTENT(OUT)  :: PTR   ! Transport production of TKE
+REAL, DIMENSION(:,:,:), INTENT(OUT)  :: PDISS ! Dissipation of TKE
+REAL, DIMENSION(:,:,:), INTENT(OUT)  :: PLEM  ! Mixing length
 
 !
 !-------------------------------------------------------------------------------
@@ -486,11 +486,11 @@ REAL, DIMENSION(:,:,:), INTENT(IN)      ::  PFLXZTHVMF
 REAL, DIMENSION(:,:,:), INTENT(OUT)  :: PWTH       ! heat flux
 REAL, DIMENSION(:,:,:), INTENT(OUT)  :: PWRC       ! cloud water flux
 REAL, DIMENSION(:,:,:,:),INTENT(OUT) :: PWSV       ! scalar flux
-REAL, DIMENSION(:,:,:), INTENT(INOUT):: PDYP  ! Dynamical production of TKE
-REAL, DIMENSION(:,:,:), INTENT(INOUT):: PTHP  ! Thermal production of TKE
-REAL, DIMENSION(:,:,:), INTENT(OUT):: PTR   ! Transport production of TKE
-REAL, DIMENSION(:,:,:), INTENT(OUT):: PDISS ! Dissipation of TKE
-REAL, DIMENSION(:,:,:), INTENT(INOUT):: PLEM  ! Mixing length                   
+REAL, DIMENSION(:,:,:), INTENT(OUT)  :: PDYP  ! Dynamical production of TKE
+REAL, DIMENSION(:,:,:), INTENT(OUT)  :: PTHP  ! Thermal production of TKE
+REAL, DIMENSION(:,:,:), INTENT(OUT)  :: PTR   ! Transport production of TKE
+REAL, DIMENSION(:,:,:), INTENT(OUT)  :: PDISS ! Dissipation of TKE
+REAL, DIMENSION(:,:,:), INTENT(OUT)  :: PLEM  ! Mixing length
 !
 ! IN variables
 !
@@ -506,7 +506,7 @@ REAL, DIMENSION(:,:,:), INTENT(INOUT):: PLEM  ! Mixing length
 !
 ! OUT variables
 !
-!$acc declare create(PSIGS,PWTH,PWRC,PWSV)
+!$acc declare create(PSIGS,PWTH,PWRC,PWSV,PDYP,PTHP,PTR,PDISS,PLEM)
 !
 !
 !-------------------------------------------------------------------------------
@@ -518,9 +518,8 @@ REAL, DIMENSION(:,:,:), INTENT(INOUT):: PLEM  ! Mixing length
 !           ZEXN,                       &  ! EXN at t-1
 !           ZT,                         &  ! T at t-1
 !           ZLOCPEXNM,                  &  ! Lv/Cp/EXNREF at t-1
-!           ZLM,                        &  ! Turbulent mixing length
 !           ZLEPS,                      &  ! Dissipative length
-!           ZDP,ZTP, ZTRH,              &  ! Dynamic and Thermal Production of TKE
+!           ZTRH,                       &  ! Dynamic and Thermal Production of TKE
 !           ZATHETA,ZAMOIST,            &  ! coefficients for s = f (Thetal,Rnp)
 !           ZCOEF_DISS,                 &  ! 1/(Cph*Exner) for dissipative heating
 !           ZFRAC_ICE,                  &  ! ri fraction of rc+ri
@@ -532,18 +531,17 @@ REAL,DIMENSION(SIZE(PTHLT,1),SIZE(PTHLT,2),SIZE(PTHLT,3)) ::&
           ZEXN,                       &  ! EXN at t-1
           ZT,                         &  ! T at t-1
           ZLOCPEXNM,                  &  ! Lv/Cp/EXNREF at t-1
-          ZLM,                        &  ! Turbulent mixing length
           ZLEPS,                      &  ! Dissipative length
-          ZDP,ZTP, ZTRH,              &  ! Dynamic and Thermal Production of TKE
+          ZTRH,                       &  ! Dynamic and Thermal Production of TKE
           ZATHETA,ZAMOIST,            &  ! coefficients for s = f (Thetal,Rnp)
           ZCOEF_DISS,                 &  ! 1/(Cph*Exner) for dissipative heating
           ZFRAC_ICE,                  &  ! ri fraction of rc+ri
           ZMWTH,ZMWR,ZMTH2,ZMR2,ZMTHR,&  ! 3rd order moments
           ZFWTH,ZFWR,ZFTH2,ZFR2,ZFTHR,&  ! opposite of verticale derivate of 3rd order moments
           ZTHLM, ZTR, ZDISS              ! initial potential temp.
-!$acc declare create(ZCP,ZEXN,ZT,ZLOCPEXNM,ZLM,ZLEPS,ZDP,ZTP,ZTRH, &
-!$acc &              ZAMOIST,ZATHETA,ZCOEF_DISS,ZFRAC_ICE,         &
-!$acc &              ZMWTH,ZMWR,ZMTH2,ZMR2,ZMTHR,                  &
+!$acc declare create(ZCP,ZEXN,ZT,ZLOCPEXNM,ZLEPS,ZTRH,      &
+!$acc &              ZAMOIST,ZATHETA,ZCOEF_DISS,ZFRAC_ICE,  &
+!$acc &              ZMWTH,ZMWR,ZMTH2,ZMR2,ZMTHR,           &
 !$acc &              ZFWTH,ZFWR,ZFTH2,ZFR2,ZFTHR,ZTHLM  )
 !
 REAL, ALLOCATABLE, DIMENSION(:,:,:,:) ::     &
@@ -602,10 +600,7 @@ REAL, DIMENSION(SIZE(PTHLT,1),SIZE(PTHLT,2),SIZE(PTHLT,3)) :: ZTMP1_DEVICE,ZTMP2
 !           ZEXN(SIZE(PTHLT,1),SIZE(PTHLT,2),SIZE(PTHLT,3)),        &  
 !           ZT(SIZE(PTHLT,1),SIZE(PTHLT,2),SIZE(PTHLT,3)),          &  
 !           ZLOCPEXNM(SIZE(PTHLT,1),SIZE(PTHLT,2),SIZE(PTHLT,3)),   & 
-!           ZLM(SIZE(PTHLT,1),SIZE(PTHLT,2),SIZE(PTHLT,3)),         & 
 !           ZLEPS(SIZE(PTHLT,1),SIZE(PTHLT,2),SIZE(PTHLT,3)),       &  
-!           ZDP(SIZE(PTHLT,1),SIZE(PTHLT,2),SIZE(PTHLT,3)),         &
-!           ZTP(SIZE(PTHLT,1),SIZE(PTHLT,2),SIZE(PTHLT,3)),         &
 !           ZTRH(SIZE(PTHLT,1),SIZE(PTHLT,2),SIZE(PTHLT,3)),        &  
 !           ZATHETA(SIZE(PTHLT,1),SIZE(PTHLT,2),SIZE(PTHLT,3)),     &
 !           ZAMOIST(SIZE(PTHLT,1),SIZE(PTHLT,2),SIZE(PTHLT,3)),     & 
@@ -808,7 +803,7 @@ SELECT CASE (HTURBLEN)
     PRINT *,'OPENACC: TURB::HTURBLEN=BL89 not yet implemented'
     CALL ABORT
 #endif
-    CALL BL89(KKA,KKU,KKL,PZZ,PDZZ,PTHVREF,ZTHLM,KRR,ZRM,PTKET,ZLM)
+    CALL BL89(KKA,KKU,KKL,PZZ,PDZZ,PTHVREF,ZTHLM,KRR,ZRM,PTKET,PLEM)
 !
 !*      3.2 Delta mixing length
 !           -------------------
@@ -818,13 +813,13 @@ SELECT CASE (HTURBLEN)
     PRINT *,'OPENACC: TURB::HTURBLEN=DELT not yet implemented'
     CALL ABORT
 #endif
-    CALL DELT(ZLM)
+    CALL DELT(PLEM)
 !
 !*      3.3 Deardorff mixing length
 !           -----------------------
 !
   CASE ('DEAR')
-    CALL DEAR(ZLM)
+    CALL DEAR(PLEM)
 !
 !*      3.4 Blackadar mixing length
 !           -----------------------
@@ -835,18 +830,18 @@ SELECT CASE (HTURBLEN)
    CALL ABORT
 #endif
    ZL0 = 100.
-   ZLM(:,:,:) = ZL0
+   PLEM(:,:,:) = ZL0
 
    ZALPHA=0.5**(-1.5)
    !
    DO JK=IKTB,IKTE
-     ZLM(:,:,JK) = ( 0.5*(PZZ(:,:,JK)+PZZ(:,:,JK+KKL)) - &
+     PLEM(:,:,JK) = ( 0.5*(PZZ(:,:,JK)+PZZ(:,:,JK+KKL)) - &
      & PZZ(:,:,KKA+JPVEXT_TURB*KKL) ) * PDIRCOSZW(:,:)
-     ZLM(:,:,JK) = ZALPHA  * ZLM(:,:,JK) * ZL0 / ( ZL0 + ZALPHA*ZLM(:,:,JK) )
+     PLEM(:,:,JK) = ZALPHA  * PLEM(:,:,JK) * ZL0 / ( ZL0 + ZALPHA*PLEM(:,:,JK) )
    END DO
 !
-   ZLM(:,:,IKTB-1) = ZLM(:,:,IKTB)
-   ZLM(:,:,IKTE+1) = ZLM(:,:,IKTE)
+   PLEM(:,:,IKTB-1) = PLEM(:,:,IKTB)
+   PLEM(:,:,IKTE+1) = PLEM(:,:,IKTE)
 !
 !
 !
@@ -869,7 +864,7 @@ END IF
 !           ------------------
 !
 !$acc kernels
-ZLEPS(:,:,:)=ZLM(:,:,:)
+ZLEPS(:,:,:)=PLEM(:,:,:)
 !
 !*      3.7 Correction in the Surface Boundary Layer (Redelsperger 2001)
 !           ----------------------------------------
@@ -877,7 +872,7 @@ ZLEPS(:,:,:)=ZLM(:,:,:)
 ZLMO=XUNDEF
 !$acc end kernels
 IF (ORMC01) THEN
-!$acc update self(ZLM,ZLEPS)
+!$acc update self(PLEM,ZLEPS)
 #ifdef _OPENACC
   PRINT *,'OPENACC: TURB::ORMC01 not yet implemented'
   CALL ABORT
@@ -890,15 +885,15 @@ IF (ORMC01) THEN
     ZSFRV=0.
     ZLMO=LMO(ZUSTAR,ZTHLM(:,:,IKB),ZRVM,PSFTH,ZSFRV)
   END IF
-  CALL RMC01(HTURBLEN,KKA,KKU,KKL,PZZ,PDXX,PDYY,PDZZ,PDIRCOSZW,PSBL_DEPTH,ZLMO,ZLM,ZLEPS)
-!$acc update device(ZLM,ZLEPS)
+  CALL RMC01(HTURBLEN,KKA,KKU,KKL,PZZ,PDXX,PDYY,PDZZ,PDIRCOSZW,PSBL_DEPTH,ZLMO,PLEM,ZLEPS)
+!$acc update device(PLEM,ZLEPS)
 END IF
 !
 !*      3.8 Mixing length in external points (used if HTURBDIM="3DIM")
 !           ----------------------------------------------------------
 !
 IF (HTURBDIM=="3DIM") THEN
-  CALL UPDATE_LM(HLBCX,HLBCY,ZLM,ZLEPS)
+  CALL UPDATE_LM(HLBCX,HLBCY,PLEM,ZLEPS)
 END IF
 !----------------------------------------------------------------------------
 !
@@ -1025,12 +1020,12 @@ CALL TURB_VER(KKA,KKU,KKL,KRR, KRRL, KRRI,               &
           PSFTH,PSFRV,PSFSV,PSFTH,PSFRV,PSFSV,           &
           ZCDUEFF,ZTAU11M,ZTAU12M,ZTAU33M,               &
           PUT,PVT,PWT,ZUSLOPE,ZVSLOPE,PTHLT,PRT,PSVT,    &
-          PTKET,ZLM,ZLEPS,                               &
+          PTKET,PLEM,ZLEPS,                              &
           ZLOCPEXNM,ZATHETA,ZAMOIST,PSRCT,ZFRAC_ICE,     &
           ZFWTH,ZFWR,ZFTH2,ZFR2,ZFTHR,PBL_DEPTH,         &
           PSBL_DEPTH,ZLMO,                               &
           PRUS,PRVS,PRWS,PRTHLS,PRRS,PRSVS,              &
-          ZDP,ZTP,PSIGS,PWTH,PWRC,PWSV                   )
+          PDYP,PTHP,PSIGS,PWTH,PWRC,PWSV                 )
 !$acc update self(PWTH,PWRC,PWSV)
 !
 #ifdef _OPENACC
@@ -1094,9 +1089,9 @@ IF (HTURBDIM=='3DIM') THEN
           PSFTH,PSFRV,PSFSV,                                   &
           ZCDUEFF,ZTAU11M,ZTAU12M,ZTAU22M,ZTAU33M,             &
           PUT,PVT,PWT,ZUSLOPE,ZVSLOPE,PTHLT,PRT,PSVT,          &
-          PTKET,ZLM,ZLEPS,                                     &
+          PTKET,PLEM,ZLEPS,                                    &
           ZLOCPEXNM,ZATHETA,ZAMOIST,PSRCT,ZFRAC_ICE,           &
-          ZDP,ZTP,PSIGS,                                       &
+          PDYP,PTHP,PSIGS,                                     &
           ZTRH,                                                &
           PRUS,PRVS,PRWS,PRTHLS,PRRS,PRSVS                     )
 END IF
@@ -1149,25 +1144,25 @@ 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 _OPENACC
-       ZTP = ZTP + XG / PTHVREF * MZF(KKA,KKU,KKL, PFLXZTHVMF )
+       PTHP = PTHP + XG / PTHVREF * MZF(KKA,KKU,KKL, PFLXZTHVMF )
 #else
       CALL MZF_DEVICE(KKA,KKU,KKL,PFLXZTHVMF,ZTMP1_DEVICE)
 !$acc kernels
-      ZTP(:,:,:) = ZTP(:,:,:) + XG / PTHVREF(:,:,:) * ZTMP1_DEVICE(:,:,:)
+      PTHP(:,:,:) = PTHP(:,:,:) + XG / PTHVREF(:,:,:) * ZTMP1_DEVICE(:,:,:)
 !$acc end kernels
 #endif
 
 !  6.2 TKE evolution equation
 !$acc update device(PRTKES)
-CALL TKE_EPS_SOURCES(KKA,KKU,KKL,KMI,PTKET,ZLM,ZLEPS,ZDP,ZTRH,       &
+CALL TKE_EPS_SOURCES(KKA,KKU,KKL,KMI,PTKET,PLEM,ZLEPS,PDYP,ZTRH,     &
                      PRHODJ,PDZZ,PDXX,PDYY,PDZX,PDZY,PZZ,            &
                      PTSTEP,PIMPL,ZEXPL,                             &
                      HTURBLEN,HTURBDIM,                              &
                      HFMFILE,HLUOUT,OCLOSE_OUT,OTURB_DIAG,           &
-                     ZTP,PRTKES,PRTKEMS,PRTHLS,ZCOEF_DISS,PTR,PDISS  )
+                     PTHP,PRTKES,PRTKEMS,PRTHLS,ZCOEF_DISS,PTR,PDISS )
 !
-PDYP = ZDP
-PTHP = ZTP
+!$acc update self(PTR,PDISS)
+!$acc update self(PDYP,PTHP)
 !
 !$acc update self(PRTKES)
 IF (LBUDGET_TH)  THEN
@@ -1187,19 +1182,18 @@ END IF
 !*      7. STORES SOME INFORMATIONS RELATED TO THE TURBULENCE SCHEME
 !          ---------------------------------------------------------
 !
-PLEM = ZLM
+!$acc update self(PLEM)
 !
 IF ( OTURB_DIAG .AND. OCLOSE_OUT ) THEN
   YCOMMENT=' '
 ! 
 ! stores the mixing length
 ! 
-!$acc update self(ZLM)
   YRECFM  ='LM'
   YCOMMENT='X_Y_Z_LM (M)'
   IGRID   = 1
   ILENCH=LEN(YCOMMENT)
-  CALL FMWRIT(HFMFILE,YRECFM,HLUOUT,'XY',ZLM,IGRID,ILENCH,YCOMMENT,IRESP)
+  CALL FMWRIT(HFMFILE,YRECFM,HLUOUT,'XY',PLEM,IGRID,ILENCH,YCOMMENT,IRESP)
 !
   IF (KRR /= 0) THEN
 !
@@ -1389,15 +1383,15 @@ IF (LLES_CALL) THEN
 !          -------------------------------------------------------
 !
 !$acc data copy(X_LES_SUBGRID_LMix,X_LES_SUBGRID_LDiss,X_LES_SUBGRID_WP)
-  CALL LES_MEAN_SUBGRID(ZLM,X_LES_SUBGRID_LMix)
+  CALL LES_MEAN_SUBGRID(PLEM,X_LES_SUBGRID_LMix)
   CALL LES_MEAN_SUBGRID(ZLEPS,X_LES_SUBGRID_LDiss)
 !
 !* presso-correlations for subgrid Tke are equal to zero.
 !
 !$acc kernels
-  ZLM = 0.
+  ZLEPS = 0. !ZLEPS is used as a work array (not used anymore)
 !$acc end kernels
-  CALL LES_MEAN_SUBGRID(ZLM,X_LES_SUBGRID_WP)
+  CALL LES_MEAN_SUBGRID(ZLEPS,X_LES_SUBGRID_WP)
 !$acc end data
 !
   CALL SECOND_MNH(ZTIME2)
@@ -1908,7 +1902,7 @@ WHERE ( PCEI(:,:,:) <  PCEI_MAX .AND.                                        &
 !              ------------------------------------------
 !
 IF (HTURBLEN_CL == HTURBLEN) THEN
-  ZLM_CLOUD(:,:,:) = ZLM(:,:,:)
+  ZLM_CLOUD(:,:,:) = PLEM(:,:,:)
 ELSE
   SELECT CASE (HTURBLEN_CL)
 !
@@ -1939,16 +1933,16 @@ IF ( OTURB_DIAG .AND. OCLOSE_OUT ) THEN
   YCOMMENT='X_Y_Z_LM CLEAR SKY (M)'
   IGRID   = 1
   ILENCH  = LEN(YCOMMENT)
-  CALL FMWRIT(HFMFILE,YRECFM,HLUOUT,'XY',ZLM,IGRID,ILENCH,YCOMMENT,IRESP)
+  CALL FMWRIT(HFMFILE,YRECFM,HLUOUT,'XY',PLEM,IGRID,ILENCH,YCOMMENT,IRESP)
 ENDIF
 !
 ! Amplification of the mixing length when the criteria are verified
 !
-WHERE (ZCOEF_AMPL(:,:,:) /= 1.) ZLM(:,:,:) = ZCOEF_AMPL(:,:,:)*ZLM_CLOUD(:,:,:)
+WHERE (ZCOEF_AMPL(:,:,:) /= 1.) PLEM(:,:,:) = ZCOEF_AMPL(:,:,:)*ZLM_CLOUD(:,:,:)
 !
 ! Cloud mixing length in the clouds at the points which do not verified the CEI
 !
-WHERE (PCEI(:,:,:) == -1.) ZLM(:,:,:) = ZLM_CLOUD(:,:,:)
+WHERE (PCEI(:,:,:) == -1.) PLEM(:,:,:) = ZLM_CLOUD(:,:,:)
 !
 !
 !*       5.    IMPRESSION
diff --git a/src/MNH/turb_ver.f90 b/src/MNH/turb_ver.f90
index 339fc13ad51c4242c37ebc8a7cf39c686456c5d1..33f90e3f252cbc734c42b624d9855edf58184109 100644
--- a/src/MNH/turb_ver.f90
+++ b/src/MNH/turb_ver.f90
@@ -631,11 +631,6 @@ END IF
 !
 !*       4.   TURBULENT CORRELATIONS : <w Rc>, <THl THl>, <THl Rnp>, <Rnp Rnp>
 !             ----------------------------------------------------------------
-!
-!
-!$acc kernels
-PTP (:,:,:) = 0.
-!$acc end kernels
 !
   CALL  TURB_VER_THERMO_FLUX(KKA,KKU,KKL,KRR,KRRL,KRRI,               &
                         OCLOSE_OUT,OTURB_FLX,HTURBDIM,HTOM,           &
@@ -682,11 +677,6 @@ PTP (:,:,:) = 0.
 !*       7.   DIAGNOSTIC COMPUTATION OF THE 1D <W W> VARIANCE
 !             -----------------------------------------------
 !
-!
-!$acc kernels
-PDP (:,:,:) = 0.
-!$acc end kernels
-!
 CALL  TURB_VER_DYN_FLUX(KKA,KKU,KKL,                                &
                       OCLOSE_OUT,OTURB_FLX,KRR,                     &
                       HTURBDIM,PIMPL,PEXPL,PTSTEP,                  &
@@ -698,7 +688,7 @@ CALL  TURB_VER_DYN_FLUX(KKA,KKU,KKL,                                &
                       PTHLM,PRM,PSVM,PUM,PVM,PWM,PUSLOPEM,PVSLOPEM, &
                       PTKEM,PLM,ZWU,ZWV,                            &
                       PRUS,PRVS,PRWS,                               &
-                      PDP,PTP                                       )
+                      PDP                                           )
 !
 !----------------------------------------------------------------------------
 !
diff --git a/src/MNH/turb_ver_dyn_flux.f90 b/src/MNH/turb_ver_dyn_flux.f90
index 56ff5c7b27e934a86c97be677da641075e398d05..0304e7e5646154dfb85c3d7fbf2566b55dc71ed5 100644
--- a/src/MNH/turb_ver_dyn_flux.f90
+++ b/src/MNH/turb_ver_dyn_flux.f90
@@ -25,7 +25,7 @@ INTERFACE
                       PTHLM,PRM,PSVM,PUM,PVM,PWM,PUSLOPEM,PVSLOPEM, &
                       PTKEM,PLM,PWU,PWV,                            &
                       PRUS,PRVS,PRWS,                               &
-                      PDP,PTP                                       )
+                      PDP                                           )
 !
 !
 INTEGER,                INTENT(IN)   :: KKA           !near ground array index  
@@ -81,8 +81,7 @@ REAL, DIMENSION(:,:,:), INTENT(OUT)  ::  PWV          ! momentum flux v'w'
 REAL, DIMENSION(:,:,:), INTENT(INOUT)   ::  PRUS, PRVS, PRWS
                             ! cumulated sources for the prognostic variables
 !
-REAL, DIMENSION(:,:,:), INTENT(INOUT)::  PDP,PTP   ! Dynamic and thermal
-                                                   ! TKE production terms
+REAL, DIMENSION(:,:,:), INTENT(OUT)  ::  PDP          ! Dynamic TKE production term
 !
 !$acc declare present(PDXX,PDYY,PDZZ,PDZX,PDZY,PDIRCOSZW,PZZ,       &
 !$acc &               PCOSSLOPE,PSINSLOPE,                          &
@@ -91,7 +90,7 @@ REAL, DIMENSION(:,:,:), INTENT(INOUT)::  PDP,PTP   ! Dynamic and thermal
 !$acc &               PTHLM,PRM,PSVM,PUM,PVM,PWM,PUSLOPEM,PVSLOPEM, &
 !$acc &               PTKEM,PLM,PWU,PWV,                            &
 !$acc &               PRUS,PRVS,PRWS,                               &
-!$acc &               PDP,PTP                                       )
+!$acc &               PDP                                           )
 !
 END SUBROUTINE TURB_VER_DYN_FLUX
 !
@@ -113,7 +112,7 @@ END MODULE MODI_TURB_VER_DYN_FLUX
                       PTHLM,PRM,PSVM,PUM,PVM,PWM,PUSLOPEM,PVSLOPEM, &
                       PTKEM,PLM,PWU,PWV,                            &
                       PRUS,PRVS,PRWS,                               &
-                      PDP,PTP                                       )
+                      PDP                                           )
 !     ###############################################################
 !
 !
@@ -383,8 +382,7 @@ REAL, DIMENSION(:,:,:), INTENT(OUT)  ::  PWV          ! momentum flux v'w'
 REAL, DIMENSION(:,:,:), INTENT(INOUT)   ::  PRUS, PRVS, PRWS
                             ! cumulated sources for the prognostic variables
 !
-REAL, DIMENSION(:,:,:), INTENT(INOUT)::  PDP,PTP   ! Dynamic and thermal
-                                                   ! TKE production terms
+REAL, DIMENSION(:,:,:), INTENT(OUT)  ::  PDP       ! Dynamic TKE production term
 !
 !$acc declare present(PDXX,PDYY,PDZZ,PDZX,PDZY,PDIRCOSZW,PZZ,       &
 !$acc &               PCOSSLOPE,PSINSLOPE,                          &
@@ -393,7 +391,7 @@ REAL, DIMENSION(:,:,:), INTENT(INOUT)::  PDP,PTP   ! Dynamic and thermal
 !$acc &               PTHLM,PRM,PSVM,PUM,PVM,PWM,PUSLOPEM,PVSLOPEM, &
 !$acc &               PTKEM,PLM,PWU,PWV,                            &
 !$acc &               PRUS,PRVS,PRWS,                               &
-!$acc &               PDP,PTP                                       )
+!$acc &               PDP                                           )
 !
 !
 !*       0.2  declaration of local variables
@@ -1291,8 +1289,6 @@ IF ( OTURB_FLX .AND. OCLOSE_OUT .AND. HTURBDIM == '1DIM') THEN
      -XCMFS*PLM(:,:,:)*SQRT(PTKEM(:,:,:))*ZTMP1_DEVICE
 !$acc end kernels
 #endif
-  ! to be tested &
-  !   +XCMFB*(4./3.)*PLM(:,:,:)/SQRT(PTKEM(:,:,:))*PTP(:,:,:) 
   ! stores the W variance
 !$acc update self(ZFLXZ)
   YRECFM  ='W_VVAR'
diff --git a/src/MNH/turb_ver_thermo_flux.f90 b/src/MNH/turb_ver_thermo_flux.f90
index 19f671a979cdcd8afc66fb227516be6a04b2c93d..9c66901d6203d3ac9c0b1dd319989b8e6950d024 100644
--- a/src/MNH/turb_ver_thermo_flux.f90
+++ b/src/MNH/turb_ver_thermo_flux.f90
@@ -111,7 +111,7 @@ REAL, DIMENSION(:,:,:,:), INTENT(INOUT) :: PRRS       ! cumulated source for rt
 REAL, DIMENSION(:,:,:),   INTENT(OUT)   :: PTHLP      ! guess of thl at t+ deltat
 REAL, DIMENSION(:,:,:),   INTENT(OUT)   :: PRP        ! guess of r at t+ deltat
 !
-REAL, DIMENSION(:,:,:),   INTENT(INOUT)::  PTP       ! Dynamic and thermal
+REAL, DIMENSION(:,:,:),   INTENT(OUT)   :: PTP       ! Dynamic and thermal
                                                      ! TKE production terms
 !
 REAL, DIMENSION(:,:,:),   INTENT(OUT)   :: PWTH       ! heat flux
@@ -458,7 +458,7 @@ REAL, DIMENSION(:,:,:,:), INTENT(INOUT) :: PRRS       ! cumulated source for rt
 REAL, DIMENSION(:,:,:),   INTENT(OUT)   :: PTHLP      ! guess of thl at t+ deltat
 REAL, DIMENSION(:,:,:),   INTENT(OUT)   :: PRP        ! guess of r at t+ deltat
 !
-REAL, DIMENSION(:,:,:),   INTENT(INOUT)::  PTP       ! Dynamic and thermal
+REAL, DIMENSION(:,:,:),   INTENT(OUT)   :: PTP       ! Dynamic and thermal
                                                      ! TKE production terms
 !
 REAL, DIMENSION(:,:,:),   INTENT(OUT)   :: PWTH       ! heat flux