From 926830cab0ce464c9e5a457d9724a469754c0d3d Mon Sep 17 00:00:00 2001 From: Salvatore Filippone Date: Mon, 7 Dec 2015 17:17:07 +0000 Subject: [PATCH] psblas3: base/comm/psb_cscatter.F90 base/comm/psb_dscatter.F90 base/comm/psb_iscatter.F90 base/comm/psb_sscatter.F90 base/comm/psb_zscatter.F90 Reworking scatter. --- base/comm/psb_cscatter.F90 | 3 ++- base/comm/psb_dscatter.F90 | 3 ++- base/comm/psb_iscatter.F90 | 3 ++- base/comm/psb_sscatter.F90 | 3 ++- base/comm/psb_zscatter.F90 | 3 ++- 5 files changed, 10 insertions(+), 5 deletions(-) diff --git a/base/comm/psb_cscatter.F90 b/base/comm/psb_cscatter.F90 index 19639d58..dccc0763 100644 --- a/base/comm/psb_cscatter.F90 +++ b/base/comm/psb_cscatter.F90 @@ -536,8 +536,9 @@ subroutine psb_cscatter_vect(globx, locx, desc_a, info, iroot, mold) call psb_errpush(info,name) goto 9999 endif + call psb_geall(vlocx,desc_a,info) - call psb_scatter(globx, vlocx, desc_a, info, iroot) + if (info == psb_success_) call psb_scatter(globx, vlocx, desc_a, info, iroot) if (info /= psb_success_) then info = psb_err_from_subroutine_ call psb_errpush(info,name,a_err='psb_scatterv') diff --git a/base/comm/psb_dscatter.F90 b/base/comm/psb_dscatter.F90 index fe4ce919..363c776c 100644 --- a/base/comm/psb_dscatter.F90 +++ b/base/comm/psb_dscatter.F90 @@ -536,8 +536,9 @@ subroutine psb_dscatter_vect(globx, locx, desc_a, info, iroot, mold) call psb_errpush(info,name) goto 9999 endif + call psb_geall(vlocx,desc_a,info) - call psb_scatter(globx, vlocx, desc_a, info, iroot) + if (info == psb_success_) call psb_scatter(globx, vlocx, desc_a, info, iroot) if (info /= psb_success_) then info = psb_err_from_subroutine_ call psb_errpush(info,name,a_err='psb_scatterv') diff --git a/base/comm/psb_iscatter.F90 b/base/comm/psb_iscatter.F90 index 809c35c1..0d81998d 100644 --- a/base/comm/psb_iscatter.F90 +++ b/base/comm/psb_iscatter.F90 @@ -536,8 +536,9 @@ subroutine psb_iscatter_vect(globx, locx, desc_a, info, iroot, mold) call psb_errpush(info,name) goto 9999 endif + call psb_geall(vlocx,desc_a,info) - call psb_scatter(globx, vlocx, desc_a, info, iroot) + if (info == psb_success_) call psb_scatter(globx, vlocx, desc_a, info, iroot) if (info /= psb_success_) then info = psb_err_from_subroutine_ call psb_errpush(info,name,a_err='psb_scatterv') diff --git a/base/comm/psb_sscatter.F90 b/base/comm/psb_sscatter.F90 index 31ac9cfd..a29b3eaa 100644 --- a/base/comm/psb_sscatter.F90 +++ b/base/comm/psb_sscatter.F90 @@ -536,8 +536,9 @@ subroutine psb_sscatter_vect(globx, locx, desc_a, info, iroot, mold) call psb_errpush(info,name) goto 9999 endif + call psb_geall(vlocx,desc_a,info) - call psb_scatter(globx, vlocx, desc_a, info, iroot) + if (info == psb_success_) call psb_scatter(globx, vlocx, desc_a, info, iroot) if (info /= psb_success_) then info = psb_err_from_subroutine_ call psb_errpush(info,name,a_err='psb_scatterv') diff --git a/base/comm/psb_zscatter.F90 b/base/comm/psb_zscatter.F90 index 254f438b..69c0a928 100644 --- a/base/comm/psb_zscatter.F90 +++ b/base/comm/psb_zscatter.F90 @@ -536,8 +536,9 @@ subroutine psb_zscatter_vect(globx, locx, desc_a, info, iroot, mold) call psb_errpush(info,name) goto 9999 endif + call psb_geall(vlocx,desc_a,info) - call psb_scatter(globx, vlocx, desc_a, info, iroot) + if (info == psb_success_) call psb_scatter(globx, vlocx, desc_a, info, iroot) if (info /= psb_success_) then info = psb_err_from_subroutine_ call psb_errpush(info,name,a_err='psb_scatterv')