diff --git a/prec/psb_c_base_prec_mod.f90 b/prec/psb_c_base_prec_mod.f90 index 85dccc3a..ccc4d708 100644 --- a/prec/psb_c_base_prec_mod.f90 +++ b/prec/psb_c_base_prec_mod.f90 @@ -161,15 +161,16 @@ module psb_c_base_prec_mod abstract interface - subroutine psb_c_base_precdescr(prec,iout,root) + subroutine psb_c_base_precdescr(prec,iout,root, verbosity) import psb_ipk_, psb_spk_, psb_desc_type, psb_c_vect_type, & & psb_c_base_vect_type, psb_cspmat_type, psb_c_base_prec_type,& & psb_c_base_sparse_mat Implicit None - class(psb_c_base_prec_type), intent(in) :: prec - integer(psb_ipk_), intent(in), optional :: iout - integer(psb_ipk_), intent(in), optional :: root + class(psb_c_base_prec_type), intent(in) :: prec + integer(psb_ipk_), intent(in), optional :: iout + integer(psb_ipk_), intent(in), optional :: root + integer(psb_ipk_), intent(in), optional :: verbosity end subroutine psb_c_base_precdescr end interface diff --git a/prec/psb_c_bjacprec.f90 b/prec/psb_c_bjacprec.f90 index 1a36109d..234dfd89 100644 --- a/prec/psb_c_bjacprec.f90 +++ b/prec/psb_c_bjacprec.f90 @@ -151,19 +151,27 @@ module psb_c_bjacprec contains - subroutine psb_c_bjac_precdescr(prec,iout,root) + ! + ! + ! verbosity: + ! <0: suppress all messages + ! 0: normal + ! >1: increased details + ! + subroutine psb_c_bjac_precdescr(prec,iout,root, verbosity) use psb_penv_mod use psb_error_mod implicit none - class(psb_c_bjac_prec_type), intent(in) :: prec - integer(psb_ipk_), intent(in), optional :: iout - integer(psb_ipk_), intent(in), optional :: root + class(psb_c_bjac_prec_type), intent(in) :: prec + integer(psb_ipk_), intent(in), optional :: iout + integer(psb_ipk_), intent(in), optional :: root + integer(psb_ipk_), intent(in), optional :: verbosity integer(psb_ipk_) :: err_act, nrow, info character(len=20) :: name='c_bjac_precdescr' type(psb_ctxt_type) :: ctxt - integer(psb_ipk_) :: iout_, iam, np, root_ + integer(psb_ipk_) :: iout_, iam, np, root_, verbosity_ call psb_erractionsave(err_act) @@ -180,6 +188,13 @@ contains root_ = psb_root_ end if + if (present(verbosity)) then + verbosity_ = verbosity + else + verbosity_ = 0 + end if + if (verbosity_ < 0) goto 9998 + if (.not.allocated(prec%iprcparm)) then info = 1124 call psb_errpush(info,name,a_err="preconditioner") @@ -189,12 +204,13 @@ contains ctxt = prec%ctxt call psb_info(ctxt,iam,np) if (root_ == -1) root_ = iam - + if (iam == root_) & & write(iout_,*) trim(prec%desc_prefix()),' ',& & 'Block Jacobi with: ',& & fact_names(prec%iprcparm(psb_f_type_)) +9998 continue call psb_erractionrestore(err_act) return diff --git a/prec/psb_c_diagprec.f90 b/prec/psb_c_diagprec.f90 index c3deb6d8..c9f8fd0a 100644 --- a/prec/psb_c_diagprec.f90 +++ b/prec/psb_c_diagprec.f90 @@ -160,19 +160,27 @@ contains end subroutine psb_c_diag_precfree - subroutine psb_c_diag_precdescr(prec,iout,root) + ! + ! + ! verbosity: + ! <0: suppress all messages + ! 0: normal + ! >1: increased details + ! + subroutine psb_c_diag_precdescr(prec,iout,root, verbosity) use psb_penv_mod use psb_error_mod Implicit None - class(psb_c_diag_prec_type), intent(in) :: prec - integer(psb_ipk_), intent(in), optional :: iout - integer(psb_ipk_), intent(in), optional :: root + class(psb_c_diag_prec_type), intent(in) :: prec + integer(psb_ipk_), intent(in), optional :: iout + integer(psb_ipk_), intent(in), optional :: root + integer(psb_ipk_), intent(in), optional :: verbosity integer(psb_ipk_) :: err_act, nrow, info character(len=20) :: name='c_diag_precdescr' type(psb_ctxt_type) :: ctxt - integer(psb_ipk_) :: iout_, iam, np, root_ + integer(psb_ipk_) :: iout_, iam, np, root_, verbosity_ call psb_erractionsave(err_act) @@ -188,6 +196,12 @@ contains else root_ = psb_root_ end if + if (present(verbosity)) then + verbosity_ = verbosity + else + verbosity_ = 0 + end if + if (verbosity_ < 0) goto 9998 ctxt = prec%ctxt call psb_info(ctxt,iam,np) @@ -202,6 +216,7 @@ contains info = psb_success_ +9998 continue call psb_erractionrestore(err_act) return diff --git a/prec/psb_c_nullprec.f90 b/prec/psb_c_nullprec.f90 index ac23a3db..7e99cdcc 100644 --- a/prec/psb_c_nullprec.f90 +++ b/prec/psb_c_nullprec.f90 @@ -156,22 +156,30 @@ contains end subroutine psb_c_null_precfree - subroutine psb_c_null_precdescr(prec,iout,root) + ! + ! + ! verbosity: + ! <0: suppress all messages + ! 0: normal + ! >1: increased details + ! + subroutine psb_c_null_precdescr(prec,iout,root, verbosity) use psb_penv_mod use psb_error_mod Implicit None - class(psb_c_null_prec_type), intent(in) :: prec - integer(psb_ipk_), intent(in), optional :: iout - integer(psb_ipk_), intent(in), optional :: root - + class(psb_c_null_prec_type), intent(in) :: prec + integer(psb_ipk_), intent(in), optional :: iout + integer(psb_ipk_), intent(in), optional :: root + integer(psb_ipk_), intent(in), optional :: verbosity + integer(psb_ipk_) :: err_act, nrow, info character(len=20) :: name='c_null_precset' character(len=32) :: dprefix, frmtv integer(psb_ipk_) :: ni type(psb_ctxt_type) :: ctxt - integer(psb_ipk_) :: iout_, iam, np, root_ + integer(psb_ipk_) :: iout_, iam, np, root_, verbosity_ call psb_erractionsave(err_act) @@ -187,16 +195,22 @@ contains else root_ = psb_root_ end if + if (present(verbosity)) then + verbosity_ = verbosity + else + verbosity_ = 0 + end if + if (verbosity_ < 0) goto 9998 ctxt = prec%ctxt call psb_info(ctxt,iam,np) if (root_ == -1) root_ = iam - if (iam == root_) & & write(iout_,*) trim(prec%desc_prefix()),' ',& & 'No preconditioning' +9998 continue call psb_erractionrestore(err_act) return diff --git a/prec/psb_c_prec_type.f90 b/prec/psb_c_prec_type.f90 index 38080cee..ec7c84f3 100644 --- a/prec/psb_c_prec_type.f90 +++ b/prec/psb_c_prec_type.f90 @@ -190,13 +190,22 @@ end interface contains - subroutine psb_cfile_prec_descr(prec,iout, root) + ! + ! + ! verbosity: + ! -1: suppress all messages + ! 0: normal + ! >1: increased details + ! + subroutine psb_cfile_prec_descr(prec,iout, root,verbosity) use psb_base_mod implicit none - class(psb_cprec_type), intent(in) :: prec - integer(psb_ipk_), intent(in), optional :: iout - integer(psb_ipk_), intent(in), optional :: root - integer(psb_ipk_) :: iout_,info + class(psb_cprec_type), intent(in) :: prec + integer(psb_ipk_), intent(in), optional :: iout + integer(psb_ipk_), intent(in), optional :: root + integer(psb_ipk_), intent(in), optional :: verbosity + + integer(psb_ipk_) :: iout_,info, verbosity_ character(len=20) :: name='prec_descr' if (present(iout)) then @@ -204,12 +213,12 @@ contains else iout_ = 6 end if - + if (.not.allocated(prec%prec)) then info = 1124 call psb_errpush(info,name,a_err="preconditioner") end if - call prec%prec%descr(iout=iout,root=root) + call prec%prec%descr(iout=iout,root=root, verbosity=verbosity) end subroutine psb_cfile_prec_descr diff --git a/prec/psb_d_base_prec_mod.f90 b/prec/psb_d_base_prec_mod.f90 index 74b28f02..7445f9e8 100644 --- a/prec/psb_d_base_prec_mod.f90 +++ b/prec/psb_d_base_prec_mod.f90 @@ -161,15 +161,16 @@ module psb_d_base_prec_mod abstract interface - subroutine psb_d_base_precdescr(prec,iout,root) + subroutine psb_d_base_precdescr(prec,iout,root, verbosity) import psb_ipk_, psb_dpk_, psb_desc_type, psb_d_vect_type, & & psb_d_base_vect_type, psb_dspmat_type, psb_d_base_prec_type,& & psb_d_base_sparse_mat Implicit None - class(psb_d_base_prec_type), intent(in) :: prec - integer(psb_ipk_), intent(in), optional :: iout - integer(psb_ipk_), intent(in), optional :: root + class(psb_d_base_prec_type), intent(in) :: prec + integer(psb_ipk_), intent(in), optional :: iout + integer(psb_ipk_), intent(in), optional :: root + integer(psb_ipk_), intent(in), optional :: verbosity end subroutine psb_d_base_precdescr end interface diff --git a/prec/psb_d_bjacprec.f90 b/prec/psb_d_bjacprec.f90 index 28685bcf..dad6e60a 100644 --- a/prec/psb_d_bjacprec.f90 +++ b/prec/psb_d_bjacprec.f90 @@ -151,19 +151,27 @@ module psb_d_bjacprec contains - subroutine psb_d_bjac_precdescr(prec,iout,root) + ! + ! + ! verbosity: + ! <0: suppress all messages + ! 0: normal + ! >1: increased details + ! + subroutine psb_d_bjac_precdescr(prec,iout,root, verbosity) use psb_penv_mod use psb_error_mod implicit none - class(psb_d_bjac_prec_type), intent(in) :: prec - integer(psb_ipk_), intent(in), optional :: iout - integer(psb_ipk_), intent(in), optional :: root + class(psb_d_bjac_prec_type), intent(in) :: prec + integer(psb_ipk_), intent(in), optional :: iout + integer(psb_ipk_), intent(in), optional :: root + integer(psb_ipk_), intent(in), optional :: verbosity integer(psb_ipk_) :: err_act, nrow, info character(len=20) :: name='d_bjac_precdescr' type(psb_ctxt_type) :: ctxt - integer(psb_ipk_) :: iout_, iam, np, root_ + integer(psb_ipk_) :: iout_, iam, np, root_, verbosity_ call psb_erractionsave(err_act) @@ -180,6 +188,13 @@ contains root_ = psb_root_ end if + if (present(verbosity)) then + verbosity_ = verbosity + else + verbosity_ = 0 + end if + if (verbosity_ < 0) goto 9998 + if (.not.allocated(prec%iprcparm)) then info = 1124 call psb_errpush(info,name,a_err="preconditioner") @@ -189,12 +204,13 @@ contains ctxt = prec%ctxt call psb_info(ctxt,iam,np) if (root_ == -1) root_ = iam - + if (iam == root_) & & write(iout_,*) trim(prec%desc_prefix()),' ',& & 'Block Jacobi with: ',& & fact_names(prec%iprcparm(psb_f_type_)) +9998 continue call psb_erractionrestore(err_act) return diff --git a/prec/psb_d_diagprec.f90 b/prec/psb_d_diagprec.f90 index 7ebcb6c3..573c3bac 100644 --- a/prec/psb_d_diagprec.f90 +++ b/prec/psb_d_diagprec.f90 @@ -160,19 +160,27 @@ contains end subroutine psb_d_diag_precfree - subroutine psb_d_diag_precdescr(prec,iout,root) + ! + ! + ! verbosity: + ! <0: suppress all messages + ! 0: normal + ! >1: increased details + ! + subroutine psb_d_diag_precdescr(prec,iout,root, verbosity) use psb_penv_mod use psb_error_mod Implicit None - class(psb_d_diag_prec_type), intent(in) :: prec - integer(psb_ipk_), intent(in), optional :: iout - integer(psb_ipk_), intent(in), optional :: root + class(psb_d_diag_prec_type), intent(in) :: prec + integer(psb_ipk_), intent(in), optional :: iout + integer(psb_ipk_), intent(in), optional :: root + integer(psb_ipk_), intent(in), optional :: verbosity integer(psb_ipk_) :: err_act, nrow, info character(len=20) :: name='d_diag_precdescr' type(psb_ctxt_type) :: ctxt - integer(psb_ipk_) :: iout_, iam, np, root_ + integer(psb_ipk_) :: iout_, iam, np, root_, verbosity_ call psb_erractionsave(err_act) @@ -188,6 +196,12 @@ contains else root_ = psb_root_ end if + if (present(verbosity)) then + verbosity_ = verbosity + else + verbosity_ = 0 + end if + if (verbosity_ < 0) goto 9998 ctxt = prec%ctxt call psb_info(ctxt,iam,np) @@ -202,6 +216,7 @@ contains info = psb_success_ +9998 continue call psb_erractionrestore(err_act) return diff --git a/prec/psb_d_nullprec.f90 b/prec/psb_d_nullprec.f90 index 65214a31..e83b11d4 100644 --- a/prec/psb_d_nullprec.f90 +++ b/prec/psb_d_nullprec.f90 @@ -156,22 +156,30 @@ contains end subroutine psb_d_null_precfree - subroutine psb_d_null_precdescr(prec,iout,root) + ! + ! + ! verbosity: + ! <0: suppress all messages + ! 0: normal + ! >1: increased details + ! + subroutine psb_d_null_precdescr(prec,iout,root, verbosity) use psb_penv_mod use psb_error_mod Implicit None - class(psb_d_null_prec_type), intent(in) :: prec - integer(psb_ipk_), intent(in), optional :: iout - integer(psb_ipk_), intent(in), optional :: root - + class(psb_d_null_prec_type), intent(in) :: prec + integer(psb_ipk_), intent(in), optional :: iout + integer(psb_ipk_), intent(in), optional :: root + integer(psb_ipk_), intent(in), optional :: verbosity + integer(psb_ipk_) :: err_act, nrow, info character(len=20) :: name='d_null_precset' character(len=32) :: dprefix, frmtv integer(psb_ipk_) :: ni type(psb_ctxt_type) :: ctxt - integer(psb_ipk_) :: iout_, iam, np, root_ + integer(psb_ipk_) :: iout_, iam, np, root_, verbosity_ call psb_erractionsave(err_act) @@ -187,16 +195,22 @@ contains else root_ = psb_root_ end if + if (present(verbosity)) then + verbosity_ = verbosity + else + verbosity_ = 0 + end if + if (verbosity_ < 0) goto 9998 ctxt = prec%ctxt call psb_info(ctxt,iam,np) if (root_ == -1) root_ = iam - if (iam == root_) & & write(iout_,*) trim(prec%desc_prefix()),' ',& & 'No preconditioning' +9998 continue call psb_erractionrestore(err_act) return diff --git a/prec/psb_d_prec_type.f90 b/prec/psb_d_prec_type.f90 index 391023bd..32d17b4a 100644 --- a/prec/psb_d_prec_type.f90 +++ b/prec/psb_d_prec_type.f90 @@ -190,13 +190,22 @@ end interface contains - subroutine psb_dfile_prec_descr(prec,iout, root) + ! + ! + ! verbosity: + ! -1: suppress all messages + ! 0: normal + ! >1: increased details + ! + subroutine psb_dfile_prec_descr(prec,iout, root,verbosity) use psb_base_mod implicit none - class(psb_dprec_type), intent(in) :: prec - integer(psb_ipk_), intent(in), optional :: iout - integer(psb_ipk_), intent(in), optional :: root - integer(psb_ipk_) :: iout_,info + class(psb_dprec_type), intent(in) :: prec + integer(psb_ipk_), intent(in), optional :: iout + integer(psb_ipk_), intent(in), optional :: root + integer(psb_ipk_), intent(in), optional :: verbosity + + integer(psb_ipk_) :: iout_,info, verbosity_ character(len=20) :: name='prec_descr' if (present(iout)) then @@ -204,12 +213,12 @@ contains else iout_ = 6 end if - + if (.not.allocated(prec%prec)) then info = 1124 call psb_errpush(info,name,a_err="preconditioner") end if - call prec%prec%descr(iout=iout,root=root) + call prec%prec%descr(iout=iout,root=root, verbosity=verbosity) end subroutine psb_dfile_prec_descr diff --git a/prec/psb_s_base_prec_mod.f90 b/prec/psb_s_base_prec_mod.f90 index e41690f0..81eaabc5 100644 --- a/prec/psb_s_base_prec_mod.f90 +++ b/prec/psb_s_base_prec_mod.f90 @@ -161,15 +161,16 @@ module psb_s_base_prec_mod abstract interface - subroutine psb_s_base_precdescr(prec,iout,root) + subroutine psb_s_base_precdescr(prec,iout,root, verbosity) import psb_ipk_, psb_spk_, psb_desc_type, psb_s_vect_type, & & psb_s_base_vect_type, psb_sspmat_type, psb_s_base_prec_type,& & psb_s_base_sparse_mat Implicit None - class(psb_s_base_prec_type), intent(in) :: prec - integer(psb_ipk_), intent(in), optional :: iout - integer(psb_ipk_), intent(in), optional :: root + class(psb_s_base_prec_type), intent(in) :: prec + integer(psb_ipk_), intent(in), optional :: iout + integer(psb_ipk_), intent(in), optional :: root + integer(psb_ipk_), intent(in), optional :: verbosity end subroutine psb_s_base_precdescr end interface diff --git a/prec/psb_s_bjacprec.f90 b/prec/psb_s_bjacprec.f90 index 1ddaa695..98c0ac10 100644 --- a/prec/psb_s_bjacprec.f90 +++ b/prec/psb_s_bjacprec.f90 @@ -151,19 +151,27 @@ module psb_s_bjacprec contains - subroutine psb_s_bjac_precdescr(prec,iout,root) + ! + ! + ! verbosity: + ! <0: suppress all messages + ! 0: normal + ! >1: increased details + ! + subroutine psb_s_bjac_precdescr(prec,iout,root, verbosity) use psb_penv_mod use psb_error_mod implicit none - class(psb_s_bjac_prec_type), intent(in) :: prec - integer(psb_ipk_), intent(in), optional :: iout - integer(psb_ipk_), intent(in), optional :: root + class(psb_s_bjac_prec_type), intent(in) :: prec + integer(psb_ipk_), intent(in), optional :: iout + integer(psb_ipk_), intent(in), optional :: root + integer(psb_ipk_), intent(in), optional :: verbosity integer(psb_ipk_) :: err_act, nrow, info character(len=20) :: name='s_bjac_precdescr' type(psb_ctxt_type) :: ctxt - integer(psb_ipk_) :: iout_, iam, np, root_ + integer(psb_ipk_) :: iout_, iam, np, root_, verbosity_ call psb_erractionsave(err_act) @@ -180,6 +188,13 @@ contains root_ = psb_root_ end if + if (present(verbosity)) then + verbosity_ = verbosity + else + verbosity_ = 0 + end if + if (verbosity_ < 0) goto 9998 + if (.not.allocated(prec%iprcparm)) then info = 1124 call psb_errpush(info,name,a_err="preconditioner") @@ -189,12 +204,13 @@ contains ctxt = prec%ctxt call psb_info(ctxt,iam,np) if (root_ == -1) root_ = iam - + if (iam == root_) & & write(iout_,*) trim(prec%desc_prefix()),' ',& & 'Block Jacobi with: ',& & fact_names(prec%iprcparm(psb_f_type_)) +9998 continue call psb_erractionrestore(err_act) return diff --git a/prec/psb_s_diagprec.f90 b/prec/psb_s_diagprec.f90 index c5af4dd1..f6692dcf 100644 --- a/prec/psb_s_diagprec.f90 +++ b/prec/psb_s_diagprec.f90 @@ -160,19 +160,27 @@ contains end subroutine psb_s_diag_precfree - subroutine psb_s_diag_precdescr(prec,iout,root) + ! + ! + ! verbosity: + ! <0: suppress all messages + ! 0: normal + ! >1: increased details + ! + subroutine psb_s_diag_precdescr(prec,iout,root, verbosity) use psb_penv_mod use psb_error_mod Implicit None - class(psb_s_diag_prec_type), intent(in) :: prec - integer(psb_ipk_), intent(in), optional :: iout - integer(psb_ipk_), intent(in), optional :: root + class(psb_s_diag_prec_type), intent(in) :: prec + integer(psb_ipk_), intent(in), optional :: iout + integer(psb_ipk_), intent(in), optional :: root + integer(psb_ipk_), intent(in), optional :: verbosity integer(psb_ipk_) :: err_act, nrow, info character(len=20) :: name='s_diag_precdescr' type(psb_ctxt_type) :: ctxt - integer(psb_ipk_) :: iout_, iam, np, root_ + integer(psb_ipk_) :: iout_, iam, np, root_, verbosity_ call psb_erractionsave(err_act) @@ -188,6 +196,12 @@ contains else root_ = psb_root_ end if + if (present(verbosity)) then + verbosity_ = verbosity + else + verbosity_ = 0 + end if + if (verbosity_ < 0) goto 9998 ctxt = prec%ctxt call psb_info(ctxt,iam,np) @@ -202,6 +216,7 @@ contains info = psb_success_ +9998 continue call psb_erractionrestore(err_act) return diff --git a/prec/psb_s_nullprec.f90 b/prec/psb_s_nullprec.f90 index 33b22de0..f3132ca9 100644 --- a/prec/psb_s_nullprec.f90 +++ b/prec/psb_s_nullprec.f90 @@ -156,22 +156,30 @@ contains end subroutine psb_s_null_precfree - subroutine psb_s_null_precdescr(prec,iout,root) + ! + ! + ! verbosity: + ! <0: suppress all messages + ! 0: normal + ! >1: increased details + ! + subroutine psb_s_null_precdescr(prec,iout,root, verbosity) use psb_penv_mod use psb_error_mod Implicit None - class(psb_s_null_prec_type), intent(in) :: prec - integer(psb_ipk_), intent(in), optional :: iout - integer(psb_ipk_), intent(in), optional :: root - + class(psb_s_null_prec_type), intent(in) :: prec + integer(psb_ipk_), intent(in), optional :: iout + integer(psb_ipk_), intent(in), optional :: root + integer(psb_ipk_), intent(in), optional :: verbosity + integer(psb_ipk_) :: err_act, nrow, info character(len=20) :: name='s_null_precset' character(len=32) :: dprefix, frmtv integer(psb_ipk_) :: ni type(psb_ctxt_type) :: ctxt - integer(psb_ipk_) :: iout_, iam, np, root_ + integer(psb_ipk_) :: iout_, iam, np, root_, verbosity_ call psb_erractionsave(err_act) @@ -187,16 +195,22 @@ contains else root_ = psb_root_ end if + if (present(verbosity)) then + verbosity_ = verbosity + else + verbosity_ = 0 + end if + if (verbosity_ < 0) goto 9998 ctxt = prec%ctxt call psb_info(ctxt,iam,np) if (root_ == -1) root_ = iam - if (iam == root_) & & write(iout_,*) trim(prec%desc_prefix()),' ',& & 'No preconditioning' +9998 continue call psb_erractionrestore(err_act) return diff --git a/prec/psb_s_prec_type.f90 b/prec/psb_s_prec_type.f90 index 764e9109..07f78cca 100644 --- a/prec/psb_s_prec_type.f90 +++ b/prec/psb_s_prec_type.f90 @@ -190,13 +190,22 @@ end interface contains - subroutine psb_sfile_prec_descr(prec,iout, root) + ! + ! + ! verbosity: + ! -1: suppress all messages + ! 0: normal + ! >1: increased details + ! + subroutine psb_sfile_prec_descr(prec,iout, root,verbosity) use psb_base_mod implicit none - class(psb_sprec_type), intent(in) :: prec - integer(psb_ipk_), intent(in), optional :: iout - integer(psb_ipk_), intent(in), optional :: root - integer(psb_ipk_) :: iout_,info + class(psb_sprec_type), intent(in) :: prec + integer(psb_ipk_), intent(in), optional :: iout + integer(psb_ipk_), intent(in), optional :: root + integer(psb_ipk_), intent(in), optional :: verbosity + + integer(psb_ipk_) :: iout_,info, verbosity_ character(len=20) :: name='prec_descr' if (present(iout)) then @@ -204,12 +213,12 @@ contains else iout_ = 6 end if - + if (.not.allocated(prec%prec)) then info = 1124 call psb_errpush(info,name,a_err="preconditioner") end if - call prec%prec%descr(iout=iout,root=root) + call prec%prec%descr(iout=iout,root=root, verbosity=verbosity) end subroutine psb_sfile_prec_descr diff --git a/prec/psb_z_base_prec_mod.f90 b/prec/psb_z_base_prec_mod.f90 index 740d3219..2874a49c 100644 --- a/prec/psb_z_base_prec_mod.f90 +++ b/prec/psb_z_base_prec_mod.f90 @@ -161,15 +161,16 @@ module psb_z_base_prec_mod abstract interface - subroutine psb_z_base_precdescr(prec,iout,root) + subroutine psb_z_base_precdescr(prec,iout,root, verbosity) import psb_ipk_, psb_dpk_, psb_desc_type, psb_z_vect_type, & & psb_z_base_vect_type, psb_zspmat_type, psb_z_base_prec_type,& & psb_z_base_sparse_mat Implicit None - class(psb_z_base_prec_type), intent(in) :: prec - integer(psb_ipk_), intent(in), optional :: iout - integer(psb_ipk_), intent(in), optional :: root + class(psb_z_base_prec_type), intent(in) :: prec + integer(psb_ipk_), intent(in), optional :: iout + integer(psb_ipk_), intent(in), optional :: root + integer(psb_ipk_), intent(in), optional :: verbosity end subroutine psb_z_base_precdescr end interface diff --git a/prec/psb_z_bjacprec.f90 b/prec/psb_z_bjacprec.f90 index 2c1acf73..1a2462ed 100644 --- a/prec/psb_z_bjacprec.f90 +++ b/prec/psb_z_bjacprec.f90 @@ -151,19 +151,27 @@ module psb_z_bjacprec contains - subroutine psb_z_bjac_precdescr(prec,iout,root) + ! + ! + ! verbosity: + ! <0: suppress all messages + ! 0: normal + ! >1: increased details + ! + subroutine psb_z_bjac_precdescr(prec,iout,root, verbosity) use psb_penv_mod use psb_error_mod implicit none - class(psb_z_bjac_prec_type), intent(in) :: prec - integer(psb_ipk_), intent(in), optional :: iout - integer(psb_ipk_), intent(in), optional :: root + class(psb_z_bjac_prec_type), intent(in) :: prec + integer(psb_ipk_), intent(in), optional :: iout + integer(psb_ipk_), intent(in), optional :: root + integer(psb_ipk_), intent(in), optional :: verbosity integer(psb_ipk_) :: err_act, nrow, info character(len=20) :: name='z_bjac_precdescr' type(psb_ctxt_type) :: ctxt - integer(psb_ipk_) :: iout_, iam, np, root_ + integer(psb_ipk_) :: iout_, iam, np, root_, verbosity_ call psb_erractionsave(err_act) @@ -180,6 +188,13 @@ contains root_ = psb_root_ end if + if (present(verbosity)) then + verbosity_ = verbosity + else + verbosity_ = 0 + end if + if (verbosity_ < 0) goto 9998 + if (.not.allocated(prec%iprcparm)) then info = 1124 call psb_errpush(info,name,a_err="preconditioner") @@ -189,12 +204,13 @@ contains ctxt = prec%ctxt call psb_info(ctxt,iam,np) if (root_ == -1) root_ = iam - + if (iam == root_) & & write(iout_,*) trim(prec%desc_prefix()),' ',& & 'Block Jacobi with: ',& & fact_names(prec%iprcparm(psb_f_type_)) +9998 continue call psb_erractionrestore(err_act) return diff --git a/prec/psb_z_diagprec.f90 b/prec/psb_z_diagprec.f90 index f62f4c03..e4fc8927 100644 --- a/prec/psb_z_diagprec.f90 +++ b/prec/psb_z_diagprec.f90 @@ -160,19 +160,27 @@ contains end subroutine psb_z_diag_precfree - subroutine psb_z_diag_precdescr(prec,iout,root) + ! + ! + ! verbosity: + ! <0: suppress all messages + ! 0: normal + ! >1: increased details + ! + subroutine psb_z_diag_precdescr(prec,iout,root, verbosity) use psb_penv_mod use psb_error_mod Implicit None - class(psb_z_diag_prec_type), intent(in) :: prec - integer(psb_ipk_), intent(in), optional :: iout - integer(psb_ipk_), intent(in), optional :: root + class(psb_z_diag_prec_type), intent(in) :: prec + integer(psb_ipk_), intent(in), optional :: iout + integer(psb_ipk_), intent(in), optional :: root + integer(psb_ipk_), intent(in), optional :: verbosity integer(psb_ipk_) :: err_act, nrow, info character(len=20) :: name='z_diag_precdescr' type(psb_ctxt_type) :: ctxt - integer(psb_ipk_) :: iout_, iam, np, root_ + integer(psb_ipk_) :: iout_, iam, np, root_, verbosity_ call psb_erractionsave(err_act) @@ -188,6 +196,12 @@ contains else root_ = psb_root_ end if + if (present(verbosity)) then + verbosity_ = verbosity + else + verbosity_ = 0 + end if + if (verbosity_ < 0) goto 9998 ctxt = prec%ctxt call psb_info(ctxt,iam,np) @@ -202,6 +216,7 @@ contains info = psb_success_ +9998 continue call psb_erractionrestore(err_act) return diff --git a/prec/psb_z_nullprec.f90 b/prec/psb_z_nullprec.f90 index 4981ef21..6b1ee481 100644 --- a/prec/psb_z_nullprec.f90 +++ b/prec/psb_z_nullprec.f90 @@ -156,22 +156,30 @@ contains end subroutine psb_z_null_precfree - subroutine psb_z_null_precdescr(prec,iout,root) + ! + ! + ! verbosity: + ! <0: suppress all messages + ! 0: normal + ! >1: increased details + ! + subroutine psb_z_null_precdescr(prec,iout,root, verbosity) use psb_penv_mod use psb_error_mod Implicit None - class(psb_z_null_prec_type), intent(in) :: prec - integer(psb_ipk_), intent(in), optional :: iout - integer(psb_ipk_), intent(in), optional :: root - + class(psb_z_null_prec_type), intent(in) :: prec + integer(psb_ipk_), intent(in), optional :: iout + integer(psb_ipk_), intent(in), optional :: root + integer(psb_ipk_), intent(in), optional :: verbosity + integer(psb_ipk_) :: err_act, nrow, info character(len=20) :: name='z_null_precset' character(len=32) :: dprefix, frmtv integer(psb_ipk_) :: ni type(psb_ctxt_type) :: ctxt - integer(psb_ipk_) :: iout_, iam, np, root_ + integer(psb_ipk_) :: iout_, iam, np, root_, verbosity_ call psb_erractionsave(err_act) @@ -187,16 +195,22 @@ contains else root_ = psb_root_ end if + if (present(verbosity)) then + verbosity_ = verbosity + else + verbosity_ = 0 + end if + if (verbosity_ < 0) goto 9998 ctxt = prec%ctxt call psb_info(ctxt,iam,np) if (root_ == -1) root_ = iam - if (iam == root_) & & write(iout_,*) trim(prec%desc_prefix()),' ',& & 'No preconditioning' +9998 continue call psb_erractionrestore(err_act) return diff --git a/prec/psb_z_prec_type.f90 b/prec/psb_z_prec_type.f90 index f40e8004..a5f8d0d9 100644 --- a/prec/psb_z_prec_type.f90 +++ b/prec/psb_z_prec_type.f90 @@ -190,13 +190,22 @@ end interface contains - subroutine psb_zfile_prec_descr(prec,iout, root) + ! + ! + ! verbosity: + ! -1: suppress all messages + ! 0: normal + ! >1: increased details + ! + subroutine psb_zfile_prec_descr(prec,iout, root,verbosity) use psb_base_mod implicit none - class(psb_zprec_type), intent(in) :: prec - integer(psb_ipk_), intent(in), optional :: iout - integer(psb_ipk_), intent(in), optional :: root - integer(psb_ipk_) :: iout_,info + class(psb_zprec_type), intent(in) :: prec + integer(psb_ipk_), intent(in), optional :: iout + integer(psb_ipk_), intent(in), optional :: root + integer(psb_ipk_), intent(in), optional :: verbosity + + integer(psb_ipk_) :: iout_,info, verbosity_ character(len=20) :: name='prec_descr' if (present(iout)) then @@ -204,12 +213,12 @@ contains else iout_ = 6 end if - + if (.not.allocated(prec%prec)) then info = 1124 call psb_errpush(info,name,a_err="preconditioner") end if - call prec%prec%descr(iout=iout,root=root) + call prec%prec%descr(iout=iout,root=root, verbosity=verbosity) end subroutine psb_zfile_prec_descr