From 47d04cead80e3903f46f8be1d1f5e8a954fda4ee Mon Sep 17 00:00:00 2001 From: diener Date: Fri, 21 Apr 2006 16:21:49 +0000 Subject: Fixed bug when running on one processor with ghost size less than 3. Also fix stupid mistake in having the assignment of stored coefficients and deallocation of the temporary array within the wrong if statement. git-svn-id: https://svn.cct.lsu.edu/repos/numrel/LSUThorns/SummationByParts/trunk@66 f69c4107-0314-4c4f-9ad4-17e986b73f4a --- src/Dissipation_6_5_min_err_coeff.F90 | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/src/Dissipation_6_5_min_err_coeff.F90 b/src/Dissipation_6_5_min_err_coeff.F90 index 991d1ff..48105b4 100644 --- a/src/Dissipation_6_5_min_err_coeff.F90 +++ b/src/Dissipation_6_5_min_err_coeff.F90 @@ -65,7 +65,7 @@ subroutine dissipation_6_5_opt (var, lsh, gsh, lbnd, bb, gsize, & end if center = gsh(1) / 2 - ir = center + gsize(1) + ir = center + max(gsize(1),3) call set_dmatrix_half ( d(1:ir,1:ir), 1 ) @@ -78,7 +78,7 @@ subroutine dissipation_6_5_opt (var, lsh, gsh, lbnd, bb, gsize, & atmp(1:ir,1:center) = tmp(1:ir,1:center) - il = center + 1 - gsize(1) + il = center + 1 - max(gsize(1),3) d = zero call set_dmatrix_half ( d(il:ni,il:ni), 2 ) tmp(il:ni,il:ni) = -transpose ( & @@ -277,7 +277,7 @@ subroutine dissipation_6_5_opt (var, lsh, gsh, lbnd, bb, gsize, & end if center = gsh(2) / 2 - jr = center + gsize(2) + jr = center + max(gsize(2),3) call set_dmatrix_half ( d(1:jr,1:jr), 1 ) @@ -290,7 +290,7 @@ subroutine dissipation_6_5_opt (var, lsh, gsh, lbnd, bb, gsize, & atmp(1:jr,1:center) = tmp(1:jr,1:center) - jl = center + 1 - gsize(2) + jl = center + 1 - max(gsize(2),3) d = zero call set_dmatrix_half ( d(jl:nj,jl:nj), 2 ) tmp(jl:nj,jl:nj) = -transpose ( & @@ -302,15 +302,15 @@ subroutine dissipation_6_5_opt (var, lsh, gsh, lbnd, bb, gsize, & atmp(jl:nj,center+1:nj) = tmp(jl:nj,center+1:nj) - allocate ( ycoeff(patch)%coeff(nj,nj) ) + end if - ycoeff(patch)%coeff = atmp + allocate ( ycoeff(patch)%coeff(nj,nj) ) - savedy(patch) = .true. + ycoeff(patch)%coeff = atmp - deallocate ( atmp, d, b, h, tmp ) + savedy(patch) = .true. - end if + deallocate ( atmp, d, b, h, tmp ) end if @@ -491,7 +491,7 @@ subroutine dissipation_6_5_opt (var, lsh, gsh, lbnd, bb, gsize, & end if center = gsh(3) / 2 - kr = center + gsize(3) + kr = center + max(gsize(3),3) call set_dmatrix_half ( d(1:kr,1:kr), 1 ) @@ -504,7 +504,7 @@ subroutine dissipation_6_5_opt (var, lsh, gsh, lbnd, bb, gsize, & atmp(1:kr,1:center) = tmp(1:kr,1:center) - kl = center + 1 - gsize(3) + kl = center + 1 - max(gsize(3),3) d = zero call set_dmatrix_half ( d(kl:nk,kl:nk), 2 ) tmp(kl:nk,kl:nk) = -transpose ( & @@ -516,15 +516,15 @@ subroutine dissipation_6_5_opt (var, lsh, gsh, lbnd, bb, gsize, & atmp(kl:nk,center+1:nk) = tmp(kl:nk,center+1:nk) - allocate ( zcoeff(patch)%coeff(nk,nk) ) + end if - zcoeff(patch)%coeff = atmp + allocate ( zcoeff(patch)%coeff(nk,nk) ) - savedz(patch) = .true. + zcoeff(patch)%coeff = atmp - deallocate ( atmp, d, b, h, tmp ) + savedz(patch) = .true. - end if + deallocate ( atmp, d, b, h, tmp ) end if -- cgit v1.2.3