From 51757b15973cfa3c89e68591fb64cbb2123f8876 Mon Sep 17 00:00:00 2001
From: Juan ESCOBAR <juan.escobar@aero.obs-mip.fr>
Date: Wed, 15 Mar 2023 17:32:45 +0100
Subject: [PATCH] Juan 15/03/2023:ZSOLVER/discretisation.f90, Cray OPENACC Opt,
 pass ztab* by args + dim in loop_over_grid_jacobi_mnh/_dim

---
 .../discretisation.f90                        | 51 ++++++++++++++-----
 1 file changed, 39 insertions(+), 12 deletions(-)

diff --git a/src/ZSOLVER/tensorproductmultigrid_Source/discretisation.f90 b/src/ZSOLVER/tensorproductmultigrid_Source/discretisation.f90
index afc9d71dc..75a6c3ad2 100644
--- a/src/ZSOLVER/tensorproductmultigrid_Source/discretisation.f90
+++ b/src/ZSOLVER/tensorproductmultigrid_Source/discretisation.f90
@@ -1661,30 +1661,57 @@ end subroutine construct_vertical_coeff
           end do
        end do
     end if
-   if (LUseT) then
+
+    if (LUseT) then
+       
        iib=ixmin(iblock)
        iie=ixmax(iblock)
        ijb=iymin(iblock)
        ije=iymax(iblock)
-
+       
        zu_st => u%st
        zSutmp_st => Sutmp%st
        zSut0_st => Sut0%st
-
+       
        call apply_tridiag_solve_mnh_allT(iib,iie,ijb,ije,Sr,c,b,        &
-                  Sut0, &
-                  Sutmp,level )
-       !$acc kernels present_cr(zsut0_st,zu_st)
-       !$mnh_do_concurrent( ix=iib:iie  , iy=ijb:ije , iz=1:nz )
-          zu_st(ix,iy,iz) = & 
-               rho*zSutmp_st(ix,iy,iz) & 
-               + (1.0_rl-rho)*zSut0_st(ix,iy,iz)
-       !$mnh_end_do() ! concurrent
-       !$acc end kernels
+            Sut0, &
+            Sutmp,level )
+       
+       call loop_over_grid_jacobi_mnh_dim(&
+            zu_st,zSutmp_st,zSut0_st,&
+            iib,iie,ijb,ije)
+       
     end if
 
   end subroutine loop_over_grid_jacobi_mnh
 
+! contains
+
+  subroutine loop_over_grid_jacobi_mnh_dim(&
+            zu_st,zSutmp_st,zSut0_st,&
+            iib,iie,ijb,ije)
+    
+    implicit none
+
+    real :: zu_st    (nib:nie,njb:nje,nkb:nke ),&
+            zSutmp_st(nib:nie,njb:nje,nkb:nke ),&
+            zSut0_st (nib:nie,njb:nje,nkb:nke )
+
+    integer :: iib,iie,ijb,ije
+
+    ! local var
+    integer :: ix,iy,iz
+    
+    !$acc kernels present_cr(zsut0_st,zSutmp_st,zu_st)
+    !$mnh_do_concurrent( ix=iib:iie  , iy=ijb:ije , iz=1:nz )
+    zu_st(ix,iy,iz) = & 
+         rho*zSutmp_st(ix,iy,iz) & 
+         + (1.0_rl-rho)*zSut0_st(ix,iy,iz)
+    !$mnh_end_do() ! concurrent
+    !$acc end kernels
+    
+  end subroutine loop_over_grid_jacobi_mnh_dim
+    
 end subroutine line_Jacobi_mnh
 !==================================================================
 ! Jacobi line smoother
-- 
GitLab