From 9a5b4a79722ca597dfa52a7e49f906140eca3cf7 Mon Sep 17 00:00:00 2001 From: Juan Escobar <juan.escobar@aero.obs-mip.fr> Date: Tue, 12 Oct 2021 12:19:54 +0200 Subject: [PATCH] Juan 12/10/2021:discretisation.f90, allocate/compute Tij , alpha_div_Tij at First call --- .../discretisation.f90 | 31 +++++++++++++------ 1 file changed, 21 insertions(+), 10 deletions(-) diff --git a/src/ZSOLVER/tensorproductmultigrid_Source/discretisation.f90 b/src/ZSOLVER/tensorproductmultigrid_Source/discretisation.f90 index 70d9063b2..11a793ce2 100644 --- a/src/ZSOLVER/tensorproductmultigrid_Source/discretisation.f90 +++ b/src/ZSOLVER/tensorproductmultigrid_Source/discretisation.f90 @@ -1882,8 +1882,8 @@ end subroutine line_Jacobi_mnh !local !real(kind=rl), dimension(5) :: alpha_T - real(kind=rl) :: Tij - real(kind=rl) :: alpha_div_Tij ! b_k_tmp, c_k_tmp + real(kind=rl) ,pointer :: Tij + real(kind=rl) ,pointer :: alpha_div_Tij ! b_k_tmp, c_k_tmp integer :: iz, nz real, dimension(:,:,:) , pointer, contiguous :: zSr_st , zb_st , zSu_in_st , zSu_out_st @@ -1898,20 +1898,17 @@ end subroutine line_Jacobi_mnh type Temp_tridiag_mnh real, dimension(:), pointer, contiguous :: tmp_k,c_k + real, pointer :: Tij , alpha_div_Tij end type Temp_tridiag_mnh type(Temp_tridiag_mnh) , save , dimension(max_lev) :: Ttridiag_mnh if (LUseT ) then + + ! Calculate r_i = b_i - A_{ij} u_i - nz = b%grid_param%nz - - !call construct_alpha_T_cst_mnh(b%grid_param,alpha_T,Tij) - Tij = ( b%grid_param%L/b%grid_param%n ) ** 2 - alpha_div_Tij = 4.0_rl / Tij - !print*,"level=",level," Tij=",Tij," alpha_div_Tij=",alpha_div_Tij - ! Calculate r_i = b_i - A_{ij} u_i - + nz = b%grid_param%nz + zSr_st => Sr%st zb_st => b%st zSu_in_st => Su_in%st @@ -1923,6 +1920,17 @@ end subroutine line_Jacobi_mnh if ( Lfirst_call_level_tridiag_mnhallT(level) ) then Lfirst_call_level_tridiag_mnhallT(level) = .false. + + allocate(Ttridiag_mnh(level)%Tij) + allocate(Ttridiag_mnh(level)%alpha_div_Tij) + + Tij=>Ttridiag_mnh(level)%Tij + alpha_div_Tij=>Ttridiag_mnh(level)%alpha_div_Tij + !call construct_alpha_T_cst_mnh(b%grid_param,alpha_T,Tij) + Tij = ( b%grid_param%L/b%grid_param%n ) ** 2 + alpha_div_Tij = 4.0_rl / Tij + !print*,"level=",level," Tij=",Tij," alpha_div_Tij=",alpha_div_Tij + allocate(Ttridiag_mnh(level)%tmp_k(size(zb_k))) allocate(Ttridiag_mnh(level)%c_k(size(zb_k))) @@ -1948,6 +1956,9 @@ end subroutine line_Jacobi_mnh !$acc enter data copyin(tmp_k,c_k) endif + + Tij=>Ttridiag_mnh(level)%Tij + alpha_div_Tij=>Ttridiag_mnh(level)%alpha_div_Tij tmp_k => Ttridiag_mnh(level)%tmp_k c_k => Ttridiag_mnh(level)%c_k -- GitLab