diff --git a/base/modules/psb_d_mat_mod.f03 b/base/modules/psb_d_mat_mod.f03 index d00a2de5..30bbb26d 100644 --- a/base/modules/psb_d_mat_mod.f03 +++ b/base/modules/psb_d_mat_mod.f03 @@ -638,34 +638,38 @@ module psb_d_mat_mod end interface interface - subroutine psb_d_rowsum(d,a) + subroutine psb_d_rowsum(d,a,info) import :: psb_dspmat_type, psb_dpk_ class(psb_dspmat_type), intent(in) :: a real(psb_dpk_), intent(out) :: d(:) + integer, intent(out) :: info end subroutine psb_d_rowsum end interface interface - subroutine psb_d_arwsum(d,a) + subroutine psb_d_arwsum(d,a,info) import :: psb_dspmat_type, psb_dpk_ class(psb_dspmat_type), intent(in) :: a real(psb_dpk_), intent(out) :: d(:) + integer, intent(out) :: info end subroutine psb_d_arwsum end interface interface - subroutine psb_d_colsum(d,a) + subroutine psb_d_colsum(d,a,info) import :: psb_dspmat_type, psb_dpk_ class(psb_dspmat_type), intent(in) :: a real(psb_dpk_), intent(out) :: d(:) + integer, intent(out) :: info end subroutine psb_d_colsum end interface interface - subroutine psb_d_aclsum(d,a) + subroutine psb_d_aclsum(d,a,info) import :: psb_dspmat_type, psb_dpk_ class(psb_dspmat_type), intent(in) :: a real(psb_dpk_), intent(out) :: d(:) + integer, intent(out) :: info end subroutine psb_d_aclsum end interface diff --git a/base/psblas/psb_dspnrm1.f90 b/base/psblas/psb_dspnrm1.f90 index fb659f2b..199dcde2 100644 --- a/base/psblas/psb_dspnrm1.f90 +++ b/base/psblas/psb_dspnrm1.f90 @@ -112,8 +112,8 @@ function psb_dspnrm1(a,desc_a,info) end if if ((m /= 0).and.(n /= 0)) then - call a%aclsum(v) - call psb_halo(v,desc_a,info,tran='T') + call a%aclsum(v,info) + if (info == psb_success_) call psb_halo(v,desc_a,info,tran='T') if(info /= psb_success_) then info=psb_err_from_subroutine_ ch_err='psb_halo'