diff --git a/src/ZSOLVER/dotprod.f90 b/src/ZSOLVER/dotprod.f90
index 48aa61fa0f337d559160960eb135fe9eec2c4f1e..e473801b82143326b3323affb757e60545074909 100644
--- a/src/ZSOLVER/dotprod.f90
+++ b/src/ZSOLVER/dotprod.f90
@@ -184,20 +184,16 @@ CALL MNH_MEM_POSITION_PIN()
 CALL MNH_MEM_GET(ZDOTPROD, ILBXB,ILBXE ,ILBYB,ILBYE )
 #endif
 !$acc kernels present(ZDOTPROD)
-ZDOTPROD    = 0.
-!$acc loop seq
-DO JK = IKB-1,IKE+1
+ZDOTPROD(:,:)    = 0.
 #ifdef MNH_COMPILER_NVHPC   
    !$acc loop independent collapse(2) 
 #endif
-!dir$ doconcurrent
-   DO JJ = ILBYB,ILBYE
-      !dir$ doconcurrent
-      DO JI = ILBXB,ILBXE
+   DO CONCURRENT (JI=ILBXB:ILBXE,JJ=ILBYB:ILBYE)
+      !$acc loop seq
+      DO JK = IKB-1,IKE+1
          ZDOTPROD(JI,JJ) = ZDOTPROD(JI,JJ) + PA(JI,JJ,JK) * PB(JI,JJ,JK)
       END DO
    END DO
-END DO
 !$acc end kernels
 !$acc update host(ZDOTPROD)
 PDOTPROD = SUM_DD_R2_ll(ZDOTPROD)