From 5e6e4d38c35e17ef0cdbefafb15d160756263a64 Mon Sep 17 00:00:00 2001
From: Juan ESCOBAR <juan.escobar@aero.obs-mip.fr>
Date: Tue, 15 Mar 2022 18:13:59 +0100
Subject: [PATCH] Juan 15/03/2022:tensor/discretisation.f90, Cray OpenACC
 optimization , discard collapse + do concurrent

---
 .../tensorproductmultigrid_Source/discretisation.f90  | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/src/ZSOLVER/tensorproductmultigrid_Source/discretisation.f90 b/src/ZSOLVER/tensorproductmultigrid_Source/discretisation.f90
index 6cd5f4d22..a81de382a 100644
--- a/src/ZSOLVER/tensorproductmultigrid_Source/discretisation.f90
+++ b/src/ZSOLVER/tensorproductmultigrid_Source/discretisation.f90
@@ -794,7 +794,9 @@ end subroutine construct_vertical_coeff
     
        !$acc kernels 
        iz=1
+#ifdef MNH_COMPILER_NVHPC       
        !$acc loop independent  collapse(2)
+#endif
        do ij=ijb,ije
           do ii=iib,iie
              zv_st(ii,ij,iz)   = zd_k(iz)* ( (-zb_k(iz)-zc_k(iz))*Tij * zu_st(ii,ij,iz  )  &
@@ -803,7 +805,9 @@ end subroutine construct_vertical_coeff
        end do
        !
        do iz=2,ize-1
+#ifdef MNH_COMPILER_NVHPC          
           !$acc loop independent  collapse(2)
+#endif          
           do ij=ijb,ije
              do ii=iib,iie
                 zv_st(ii,ij,iz) = zd_k(iz)* ( ((-zb_k(iz)-zc_k(iz))*Tij - 4.0_rl ) * zu_st(ii,ij,iz)    &
@@ -819,14 +823,15 @@ end subroutine construct_vertical_coeff
        end do
        !
        iz=ize
+#ifdef MNH_COMPILER_NVHPC       
        !$acc loop independent  collapse(2)
+#endif       
        do ij=ijb,ije
           do ii=iib,iie
              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
     
@@ -1600,7 +1605,7 @@ end subroutine construct_vertical_coeff
        zSut0_st => Sut0%st
        zu_st => u%st
 
-       !$acc kernels
+       !$acc kernels present(zSut0_st,zu_st)
        zSut0_st(:,:,:) = zu_st(:,:,:)
        !$acc end kernels
 
@@ -2108,7 +2113,9 @@ end subroutine line_Jacobi_mnh
        !
        !$acc loop seq
        do iz=2,nz-1
+#ifdef MNH_COMPILER_NVHPC          
           !$acc loop independent collapse(2)
+#endif          
           do ij=ijb,ije
              do ii=iib,iie
                 zSu_out_st(ii,ij,iz) = (zSr_st(ii,ij,iz) / (Tijs*zd_k(iz)) & 
-- 
GitLab