diff --git a/src/ZSOLVER/advection_uvw.f90 b/src/ZSOLVER/advection_uvw.f90
index 466ff36cee4a99bcbe92d014d8297557b3a18717..c19db842546ba29f45d14e350d1cb5a5f2037fbb 100644
--- a/src/ZSOLVER/advection_uvw.f90
+++ b/src/ZSOLVER/advection_uvw.f90
@@ -299,7 +299,7 @@ if ( lbudget_w ) call Budget_store_init( tbudgets(NBUDGET_W), 'ADV', prws(:, :,
 !*       1.     COMPUTES THE CONTRAVARIANT COMPONENTS
 !	        -------------------------------------
 !
-!$acc kernels
+!$acc kernels present(ZRUT,ZRVT,ZRWT)
 ZRUT(:,:,:) = PUT(:,:,:) * ZMXM_RHODJ(:,:,:)
 ZRVT(:,:,:) = PVT(:,:,:) * ZMYM_RHODJ(:,:,:)
 ZRWT(:,:,:) = PWT(:,:,:) * ZMZM_RHODJ(:,:,:)
diff --git a/src/ZSOLVER/qlap.f90 b/src/ZSOLVER/qlap.f90
index 2c9e801d5fe8f1de568b76a45c264f36ba96960f..70b03324953397aaaa4acd0767e8d0f25fed0283 100644
--- a/src/ZSOLVER/qlap.f90
+++ b/src/ZSOLVER/qlap.f90
@@ -585,8 +585,8 @@ IF ( CEQNSYS == 'DUR' .OR. CEQNSYS == 'MAE' ) THEN
    !$acc end kernels
   IF(.NOT. L2D) THEN 
      CALL MYM_DEVICE (ZRHODJ, ZMYM )
-     !$acc kernels
-     ZV = ZMYM * ZV
+     !$acc kernels present(ZV)
+     ZV(:,:,:) = ZMYM(:,:,:) * ZV(:,:,:)
      !$acc end kernels
   END IF
   CALL MZM_DEVICE (ZRHODJ, ZMZM )
diff --git a/src/ZSOLVER/tke_eps_sources.f90 b/src/ZSOLVER/tke_eps_sources.f90
index 91f078a6de158b6a4a528c863c7a8706dc5086d2..78fd1bccec2c581ffee803d0d661fb873f95b5ff 100644
--- a/src/ZSOLVER/tke_eps_sources.f90
+++ b/src/ZSOLVER/tke_eps_sources.f90
@@ -568,6 +568,7 @@ if (lbudget_tke) call Budget_store_end( tbudgets(NBUDGET_TKE), 'TR', prtkes(:, :
 !
 !$acc kernels
 #ifndef MNH_BITREP
+!dir$ concurrent
 PRTHLS(:,:,:) = PRTHLS(:,:,:) + XCED * SQRT(PTKEM(:,:,:)) / PLEPS(:,:,:) * &
 #else
 PRTHLS(:,:,:) = PRTHLS(:,:,:) + XCED * BR_POW(PTKEM(:,:,:),0.5) / PLEPS(:,:,:) * &
diff --git a/src/ZSOLVER/turb_hor_thermo_flux.f90 b/src/ZSOLVER/turb_hor_thermo_flux.f90
index dc9982bb854360536fcb48955bb3c6f35433d26b..71cf7793cb4f1fd5680be282b4c949da68a84ca3 100644
--- a/src/ZSOLVER/turb_hor_thermo_flux.f90
+++ b/src/ZSOLVER/turb_hor_thermo_flux.f90
@@ -505,7 +505,7 @@ IF ( KRRL >= 1 ) THEN
     ZTMP1_DEVICE(:,:,:) = ZTMP2_DEVICE(:,:,:) *ZFLX(:,:,:)
     !$acc end kernels
     CALL MXF_DEVICE( ZTMP1_DEVICE, ZTMP2_DEVICE)
-    !$acc kernels
+    !$acc kernels present(ZTMP1_DEVICE)
     ZTMP1_DEVICE(:,:,:) = ZFLX(:,:,:)*PINV_PDXX(:,:,:)
     !$acc end kernels
     CALL MZM_DEVICE( ZTMP1_DEVICE, ZTMP5_DEVICE )
diff --git a/src/ZSOLVER/zsolver.f90 b/src/ZSOLVER/zsolver.f90
index cf946159583715dd78395c60066aeeb9081a22b1..a505d79dbf81685bf160e77777d34a2ef9193ec3 100644
--- a/src/ZSOLVER/zsolver.f90
+++ b/src/ZSOLVER/zsolver.f90
@@ -313,8 +313,8 @@ DO JM = 1,KITR
 !
 !*       2.3    update the residual error: r
   !
-  !$acc kernels
-  ZRESIDUE = ZRESIDUE + ZLAMBDA * ZDELTA
+  !$acc kernels present(ZRESIDUE)
+  ZRESIDUE(:,:,:) = ZRESIDUE(:,:,:)  + ZLAMBDA * ZDELTA(:,:,:) 
   !$acc end kernels
 !                        
 !*       2.4    compute the vector: q = F^(-1)*( Q(PHI) - Y )