From 50f56c16ee65b45d55c3e9fb7f3bcfecd34a7d7b Mon Sep 17 00:00:00 2001 From: Salvatore Filippone Date: Fri, 17 Feb 2006 15:16:02 +0000 Subject: [PATCH] Added info to error message for ILU factorization error. --- src/modules/psb_error_mod.f90 | 10 +++++----- src/modules/psb_sparse_mod.f90 | 1 + src/prec/psb_dsplu.f90 | 9 +++++++-- 3 files changed, 13 insertions(+), 7 deletions(-) diff --git a/src/modules/psb_error_mod.f90 b/src/modules/psb_error_mod.f90 index 796f495f..5586ddf5 100644 --- a/src/modules/psb_error_mod.f90 +++ b/src/modules/psb_error_mod.f90 @@ -35,10 +35,10 @@ module psb_error_mod end type psb_errstack - type(psb_errstack) :: error_stack ! the PSBLAS-2.0 error stack - integer :: error_status=0 ! the error status (maybe not here) - integer :: verbosity_level=1 ! the verbosity level (maybe not here) - integer :: err_action=1 + type(psb_errstack),save :: error_stack ! the PSBLAS-2.0 error stack + integer,save :: error_status=0 ! the error status (maybe not here) + integer,save :: verbosity_level=1 ! the verbosity level (maybe not here) + integer,save :: err_action=1 contains @@ -252,7 +252,7 @@ contains case(:0) write (0,'("error on calling sperror. err_c must be greater than 0")') case(2) - write (0,'("pivot too small")') + write (0,'("pivot too small: ",i0,1x,a)')i_e_d(1),a_e_d case(3) write (0,'("Invalid number of ovr:",i0)')i_e_d(1) case(5) diff --git a/src/modules/psb_sparse_mod.f90 b/src/modules/psb_sparse_mod.f90 index 39c1e2e9..75e45cb1 100644 --- a/src/modules/psb_sparse_mod.f90 +++ b/src/modules/psb_sparse_mod.f90 @@ -1,4 +1,5 @@ module psb_sparse_mod + use psb_blacs_mod use psb_descriptor_type use psb_prec_type use psb_serial_mod diff --git a/src/prec/psb_dsplu.f90 b/src/prec/psb_dsplu.f90 index 252296da..a4e3f9c2 100644 --- a/src/prec/psb_dsplu.f90 +++ b/src/prec/psb_dsplu.f90 @@ -110,6 +110,7 @@ contains integer, parameter :: nrb=16 logical,parameter :: debug=.false. type(psb_dspmat_type) :: trw + integer :: int_err(5) character(len=20) :: name, ch_err name='psb_dspluint' @@ -264,7 +265,9 @@ contains ! Pivot too small: unstable factorization ! info = 2 - call psb_errpush(info,name) + int_err(1) = i + write(ch_err,'(g20.10)'),dia + call psb_errpush(info,name,i_err=int_err,a_err=ch_err) goto 9999 else dia = 1.d0/dia @@ -401,8 +404,10 @@ contains ! ! Pivot too small: unstable factorization ! + int_err(1) = i + write(ch_err,'(g20.10)'),dia info = 2 - call psb_errpush(info,name) + call psb_errpush(info,name,i_err=int_err,a_err=ch_err) goto 9999 else dia = 1.d0/dia