diff --git a/base/modules/desc/psb_desc_mod.F90 b/base/modules/desc/psb_desc_mod.F90 index 6378c699..b0ba281d 100644 --- a/base/modules/desc/psb_desc_mod.F90 +++ b/base/modules/desc/psb_desc_mod.F90 @@ -614,8 +614,8 @@ contains val = desc%indxmap%get_ctxt() else val = -1 - call psb_errpush(psb_err_invalid_cd_state_,'psb_cd_get_context') - call psb_error() +!!$ call psb_errpush(psb_err_invalid_cd_state_,'psb_cd_get_context') +!!$ call psb_error() end if end function psb_cd_get_context @@ -629,8 +629,8 @@ contains val = desc%indxmap%get_state() else val = -1 - call psb_errpush(psb_err_invalid_cd_state_,'psb_cd_get_dectype') - call psb_error() +!!$ call psb_errpush(psb_err_invalid_cd_state_,'psb_cd_get_dectype') +!!$ call psb_error() end if end function psb_cd_get_dectype @@ -645,8 +645,8 @@ contains val = desc%indxmap%get_mpic() else val = -1 - call psb_errpush(psb_err_invalid_cd_state_,'psb_cd_get_mpic') - call psb_error() +!!$ call psb_errpush(psb_err_invalid_cd_state_,'psb_cd_get_mpic') +!!$ call psb_error() end if end function psb_cd_get_mpic diff --git a/base/modules/penv/psi_penv_mod.F90 b/base/modules/penv/psi_penv_mod.F90 index 4bc18070..9af131c6 100644 --- a/base/modules/penv/psi_penv_mod.F90 +++ b/base/modules/penv/psi_penv_mod.F90 @@ -563,7 +563,10 @@ contains call mpi_comm_size(ictxt,np,info) if (info /= mpi_success) np = -1 call mpi_comm_rank(ictxt,iam,info) - if (info /= mpi_success) iam = -1 + if (info /= mpi_success) iam = -1 + else + np = -1 + iam = -1 end if lctxt = ictxt lam = iam diff --git a/base/tools/psb_dasb.f90 b/base/tools/psb_dasb.f90 index 1d141cdf..6aff978c 100644 --- a/base/tools/psb_dasb.f90 +++ b/base/tools/psb_dasb.f90 @@ -80,16 +80,25 @@ subroutine psb_dasb_vect(x, desc_a, info, mold, scratch) scratch_ = .false. if (present(scratch)) scratch_ = scratch call psb_info(ictxt, me, np) - + ! ....verify blacs grid correctness.. - if (np == -1) then - info = psb_err_context_error_ - call psb_errpush(info,name) - goto 9999 - else if (.not.desc_a%is_ok()) then - info = psb_err_invalid_cd_state_ - call psb_errpush(info,name) - goto 9999 + if (.false.) then + if (np == -1) then + info = psb_err_context_error_ + call psb_errpush(info,name) + goto 9999 + else if (.not.desc_a%is_ok()) then + info = psb_err_invalid_cd_state_ + call psb_errpush(info,name) + goto 9999 + end if + else + if (np == -1) then + ncol = 0 + call x%bld(ncol,mold=mold) + call psb_erractionrestore(err_act) + return + end if end if nrow = desc_a%get_local_rows()