diff --git a/base/modules/psb_const_mod.F90 b/base/modules/psb_const_mod.F90 index 92d0a5ac..72fda761 100644 --- a/base/modules/psb_const_mod.F90 +++ b/base/modules/psb_const_mod.F90 @@ -248,5 +248,8 @@ module psb_const_mod integer(psb_ipk_), parameter, public :: psb_err_alloc_request_=4025 integer(psb_ipk_), parameter, public :: psb_err_from_subroutine_non_=4011 integer(psb_ipk_), parameter, public :: psb_err_invalid_istop_=5001 + integer(psb_ipk_), parameter, public :: psb_err_invalid_irst_ =5002 + integer(psb_ipk_), parameter, public :: psb_err_invalid_preci_=5003 + integer(psb_ipk_), parameter, public :: psb_err_invalid_preca_=5004 end module psb_const_mod diff --git a/base/modules/psb_error_mod.F90 b/base/modules/psb_error_mod.F90 index c49ed41e..eaa3e105 100644 --- a/base/modules/psb_error_mod.F90 +++ b/base/modules/psb_error_mod.F90 @@ -1027,12 +1027,17 @@ contains achmsg(1) = tmpmsg write(achmsg(2),'("Invalid ISTOP: ",i0)')i_e_d(1) - case(5002) + case(psb_err_invalid_irst_) + allocate(achmsg(2)) + achmsg(1) = tmpmsg + write(achmsg(2),'("Invalid IRST: ",i0)')i_e_d(1) + + case(psb_err_invalid_preci_) allocate(achmsg(2)) achmsg(1) = tmpmsg write(achmsg(2),'("Invalid PREC: ",i0)')i_e_d(1) - case(5003) + case(psb_err_invalid_preca_) allocate(achmsg(2)) achmsg(1) = tmpmsg write(achmsg(2),'("Invalid PREC: ",a3)')a_e_d(1:3) diff --git a/krylov/psb_ccgstabl.f90 b/krylov/psb_ccgstabl.f90 index 8ab0453a..b9808acb 100644 --- a/krylov/psb_ccgstabl.f90 +++ b/krylov/psb_ccgstabl.f90 @@ -197,7 +197,7 @@ Subroutine psb_ccgstabl_vect(a,prec,b,x,eps,desc_a,info,& & ' not present: irst: ',irst,nl endif if (nl <=0 ) then - info=psb_err_invalid_istop_ + info=psb_err_invalid_irst_ int_err(1)=nl err=info call psb_errpush(info,name,i_err=int_err) diff --git a/krylov/psb_ckrylov.f90 b/krylov/psb_ckrylov.f90 index 2aae7913..e9f12ea1 100644 --- a/krylov/psb_ckrylov.f90 +++ b/krylov/psb_ckrylov.f90 @@ -211,7 +211,8 @@ Subroutine psb_ckrylov_vect(method,a,prec,b,x,eps,desc_a,info,& if ((info==psb_success_).and.do_alloc_wrk) call prec%free_wrk(info) if(info /= psb_success_) then - call psb_errpush(info,name) + info = psb_err_from_subroutine_ + call psb_errpush(info,name,a_err=trim(method)) goto 9999 end if diff --git a/krylov/psb_crgmres.f90 b/krylov/psb_crgmres.f90 index c547b7cb..1c6f145e 100644 --- a/krylov/psb_crgmres.f90 +++ b/krylov/psb_crgmres.f90 @@ -209,7 +209,7 @@ subroutine psb_crgmres_vect(a,prec,b,x,eps,desc_a,info,& & ' not present: irst: ',irst,nl endif if (nl <=0 ) then - info=psb_err_invalid_istop_ + info=psb_err_invalid_irst_ int_err(1)=nl err=info call psb_errpush(info,name,i_err=int_err) diff --git a/krylov/psb_dcgstabl.f90 b/krylov/psb_dcgstabl.f90 index c85f562b..5201098e 100644 --- a/krylov/psb_dcgstabl.f90 +++ b/krylov/psb_dcgstabl.f90 @@ -197,7 +197,7 @@ Subroutine psb_dcgstabl_vect(a,prec,b,x,eps,desc_a,info,& & ' not present: irst: ',irst,nl endif if (nl <=0 ) then - info=psb_err_invalid_istop_ + info=psb_err_invalid_irst_ int_err(1)=nl err=info call psb_errpush(info,name,i_err=int_err) diff --git a/krylov/psb_dkrylov.f90 b/krylov/psb_dkrylov.f90 index 1f887299..a1fe405a 100644 --- a/krylov/psb_dkrylov.f90 +++ b/krylov/psb_dkrylov.f90 @@ -211,7 +211,8 @@ Subroutine psb_dkrylov_vect(method,a,prec,b,x,eps,desc_a,info,& if ((info==psb_success_).and.do_alloc_wrk) call prec%free_wrk(info) if(info /= psb_success_) then - call psb_errpush(info,name) + info = psb_err_from_subroutine_ + call psb_errpush(info,name,a_err=trim(method)) goto 9999 end if diff --git a/krylov/psb_drgmres.f90 b/krylov/psb_drgmres.f90 index de6d649b..4c317897 100644 --- a/krylov/psb_drgmres.f90 +++ b/krylov/psb_drgmres.f90 @@ -209,7 +209,7 @@ subroutine psb_drgmres_vect(a,prec,b,x,eps,desc_a,info,& & ' not present: irst: ',irst,nl endif if (nl <=0 ) then - info=psb_err_invalid_istop_ + info=psb_err_invalid_irst_ int_err(1)=nl err=info call psb_errpush(info,name,i_err=int_err) diff --git a/krylov/psb_scgstabl.f90 b/krylov/psb_scgstabl.f90 index 0f888980..aa4dbd64 100644 --- a/krylov/psb_scgstabl.f90 +++ b/krylov/psb_scgstabl.f90 @@ -197,7 +197,7 @@ Subroutine psb_scgstabl_vect(a,prec,b,x,eps,desc_a,info,& & ' not present: irst: ',irst,nl endif if (nl <=0 ) then - info=psb_err_invalid_istop_ + info=psb_err_invalid_irst_ int_err(1)=nl err=info call psb_errpush(info,name,i_err=int_err) diff --git a/krylov/psb_skrylov.f90 b/krylov/psb_skrylov.f90 index 2dc20812..e2c02732 100644 --- a/krylov/psb_skrylov.f90 +++ b/krylov/psb_skrylov.f90 @@ -211,7 +211,8 @@ Subroutine psb_skrylov_vect(method,a,prec,b,x,eps,desc_a,info,& if ((info==psb_success_).and.do_alloc_wrk) call prec%free_wrk(info) if(info /= psb_success_) then - call psb_errpush(info,name) + info = psb_err_from_subroutine_ + call psb_errpush(info,name,a_err=trim(method)) goto 9999 end if diff --git a/krylov/psb_srgmres.f90 b/krylov/psb_srgmres.f90 index 66ee95f7..ebeb0150 100644 --- a/krylov/psb_srgmres.f90 +++ b/krylov/psb_srgmres.f90 @@ -209,7 +209,7 @@ subroutine psb_srgmres_vect(a,prec,b,x,eps,desc_a,info,& & ' not present: irst: ',irst,nl endif if (nl <=0 ) then - info=psb_err_invalid_istop_ + info=psb_err_invalid_irst_ int_err(1)=nl err=info call psb_errpush(info,name,i_err=int_err) diff --git a/krylov/psb_zcgstabl.f90 b/krylov/psb_zcgstabl.f90 index 5ddbf309..f63cbfab 100644 --- a/krylov/psb_zcgstabl.f90 +++ b/krylov/psb_zcgstabl.f90 @@ -197,7 +197,7 @@ Subroutine psb_zcgstabl_vect(a,prec,b,x,eps,desc_a,info,& & ' not present: irst: ',irst,nl endif if (nl <=0 ) then - info=psb_err_invalid_istop_ + info=psb_err_invalid_irst_ int_err(1)=nl err=info call psb_errpush(info,name,i_err=int_err) diff --git a/krylov/psb_zkrylov.f90 b/krylov/psb_zkrylov.f90 index 626499df..48371920 100644 --- a/krylov/psb_zkrylov.f90 +++ b/krylov/psb_zkrylov.f90 @@ -211,7 +211,8 @@ Subroutine psb_zkrylov_vect(method,a,prec,b,x,eps,desc_a,info,& if ((info==psb_success_).and.do_alloc_wrk) call prec%free_wrk(info) if(info /= psb_success_) then - call psb_errpush(info,name) + info = psb_err_from_subroutine_ + call psb_errpush(info,name,a_err=trim(method)) goto 9999 end if diff --git a/krylov/psb_zrgmres.f90 b/krylov/psb_zrgmres.f90 index 12f42bb6..f698acdf 100644 --- a/krylov/psb_zrgmres.f90 +++ b/krylov/psb_zrgmres.f90 @@ -209,7 +209,7 @@ subroutine psb_zrgmres_vect(a,prec,b,x,eps,desc_a,info,& & ' not present: irst: ',irst,nl endif if (nl <=0 ) then - info=psb_err_invalid_istop_ + info=psb_err_invalid_irst_ int_err(1)=nl err=info call psb_errpush(info,name,i_err=int_err)