diff --git a/src/ZSOLVER/tensorproductmultigrid_Source/discretisation.f90 b/src/ZSOLVER/tensorproductmultigrid_Source/discretisation.f90
index 70d9063b2494dce63cf65cb43ce68cd9a379199b..11a793ce2fcf4bf89123a2a837f4c3d055868604 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