diff --git a/src/ZSOLVER/tensorproductmultigrid_Source/multigrid.f90 b/src/ZSOLVER/tensorproductmultigrid_Source/multigrid.f90
index 0b2444808550091995965b8df60b5133c1acf626..2fd6bc0b0e0c21d9751c4d15b9302dc37c7a2562 100644
--- a/src/ZSOLVER/tensorproductmultigrid_Source/multigrid.f90
+++ b/src/ZSOLVER/tensorproductmultigrid_Source/multigrid.f90
@@ -511,17 +511,16 @@ contains
          zphifine_st => phifine%st
          zphicoarse_st => phicoarse%st
          !$acc kernels
+#ifdef MNH_COMPILER_NVHPC         
          !$acc loop independent  collapse(3)
-         do iz=1,nz
-            do iy=iy_min,iy_max
-               do ix=ix_min,ix_max
+#endif         
+         do concurrent (ix=ix_min:ix_max, iy=iy_min:iy_max, iz=1:nz)
                   zphicoarse_st(ix,iy,iz) =  &
                        zphifine_st(2*ix  ,2*iy  ,iz) + &
                        zphifine_st(2*ix  ,2*iy-1,iz) + &
                        zphifine_st(2*ix-1,2*iy  ,iz) + &
                        zphifine_st(2*ix-1,2*iy-1,iz)
-               end do
-            end do
+
          end do
          !$acc end kernels
       endif
@@ -849,20 +848,18 @@ contains
          zphicoarse_st => phicoarse%st
 
          !$acc kernels
+#ifdef MNH_COMPILER_NVHPC         
          !$acc loop independent  collapse(5)
-         do iz=1,nz 
-            do diy = -1,0
-               do dix = -1,0
-                  do iy=iy_min,iy_max
-                     do ix=ix_min,ix_max
-                        zphifine_st(2*ix+dix,2*iy+diy,iz) =      &
-                             zphicoarse_st(ix,iy,iz) +                &
-                             rhox*(zphicoarse_st(ix+(2*dix+1),iy,iz)  &
-                             - zphicoarse_st(ix,iy,iz)) +       &
-                             rhoy*(zphicoarse_st(ix,iy+(2*diy+1),iz)  &
-                             - zphicoarse_st(ix,iy,iz))
-                     end do
-                  end do
+#endif         
+         do diy = -1,0
+            do dix = -1,0
+               DO CONCURRENT (ix=ix_min:ix_max, iy=iy_min:iy_max, iz=1:nz)
+                  zphifine_st(2*ix+dix,2*iy+diy,iz) =      &
+                       zphicoarse_st(ix,iy,iz) +                &
+                       rhox*(zphicoarse_st(ix+(2*dix+1),iy,iz)  &
+                       - zphicoarse_st(ix,iy,iz)) +       &
+                       rhoy*(zphicoarse_st(ix,iy+(2*diy+1),iz)  &
+                       - zphicoarse_st(ix,iy,iz))                  
                end do
             end do
          end do