diff --git a/src/ZSOLVER/tensorproductmultigrid_Source/discretisation.f90 b/src/ZSOLVER/tensorproductmultigrid_Source/discretisation.f90 index 3998269cfba2176385530bf0631aaa4766c29109..cc8363bbdd0c233a7b1b1b3894e9d0b55226b0ff 100644 --- a/src/ZSOLVER/tensorproductmultigrid_Source/discretisation.f90 +++ b/src/ZSOLVER/tensorproductmultigrid_Source/discretisation.f90 @@ -797,23 +797,16 @@ end subroutine construct_vertical_coeff #ifdef MNH_COMPILER_NVHPC !$acc loop independent collapse(2) #endif - !dir$ concurrent - do ij=ijb,ije - !dir$ concurrent - do ii=iib,iie + do concurrent(ii=iib:iie,ij=ijb:ije) zv_st(ii,ij,iz) = zd_k(iz)* ( (-zb_k(iz)-zc_k(iz))*Tij * zu_st(ii,ij,iz ) & +zb_k(iz) *Tij * zu_st(ii,ij,iz+1) ) - end do end do ! do iz=2,ize-1 #ifdef MNH_COMPILER_NVHPC !$acc loop independent collapse(2) #endif - !dir$ concurrent - do ij=ijb,ije - !dir$ concurrent - do ii=iib,iie + do concurrent(ii=iib:iie,ij=ijb:ije) zv_st(ii,ij,iz) = zd_k(iz)* ( ((-zb_k(iz)-zc_k(iz))*Tij - 4.0_rl ) * zu_st(ii,ij,iz) & +zb_k(iz) *Tij * zu_st(ii,ij,iz+1) & +zc_k(iz) *Tij * zu_st(ii,ij,iz-1) & @@ -824,19 +817,14 @@ end subroutine construct_vertical_coeff ) end do end do - end do ! iz=ize #ifdef MNH_COMPILER_NVHPC !$acc loop independent collapse(2) -#endif - !dir$ concurrent - do ij=ijb,ije - !dir$ concurrent - do ii=iib,iie +#endif + do concurrent(ii=iib:iie,ij=ijb:ije) zv_st(ii,ij,iz) = zd_k(iz)* ( (-zb_k(iz)-zc_k(iz))*Tij * zu_st(ii,ij,iz) & +zc_k(iz) *Tij * zu_st(ii,ij,iz-1) ) - end do end do !$acc end kernels endif @@ -2099,9 +2087,12 @@ end subroutine line_Jacobi_mnh tmp_k => Ttridiag_mnh(level)%tmp_k c_k => Ttridiag_mnh(level)%c_k - !$acc kernels + !$acc kernels present(zSr_st,zSu_out_st) iz=1 zSr_st(iib:iie,ijb:ije,iz) = zb_st(iib:iie,ijb:ije,iz) +#ifdef MNH_COMPILER_NVHPC + !$acc loop independent collapse(2) +#endif do iz=2,nz-1 do concurrent(ii=iib:iie,ij=ijb:ije) zSr_st(ii,ij,iz) = zb_st(ii,ij,iz) - zd_k(iz) * ( & @@ -2124,14 +2115,10 @@ end subroutine line_Jacobi_mnh #ifdef MNH_COMPILER_NVHPC !$acc loop independent collapse(2) #endif - !dir$ concurrent - do ij=ijb,ije - !dir$ concurrent - do ii=iib,iie - zSu_out_st(ii,ij,iz) = (zSr_st(ii,ij,iz) / (Tijs*zd_k(iz)) & + do concurrent(ii=iib:iie,ij=ijb:ije) + zSu_out_st(ii,ij,iz) = (zSr_st(ii,ij,iz) / (Tijs*zd_k(iz)) & - zSu_out_st(ii,ij,iz-1)*zc_k(iz)) / tmp_k(iz) - end do - end do + end do end do ! iz=nz @@ -2141,8 +2128,13 @@ end subroutine line_Jacobi_mnh ! STEP 2: back substitution !$acc loop seq do iz=nz-1,1,-1 - zSu_out_st(iib:iie,ijb:ije,iz) = zSu_out_st(iib:iie,ijb:ije,iz) & - - c_k(iz) * zSu_out_st(iib:iie,ijb:ije,iz+1) +#ifdef MNH_COMPILER_NVHPC + !$acc loop independent collapse(2) +#endif + do concurrent(ii=iib:iie,ij=ijb:ije) + zSu_out_st(ii,ij,iz) = zSu_out_st(ii,ij,iz) & + - c_k(iz) * zSu_out_st(ii,ij,iz+1) + end do end do !$acc end kernels