|
|
@ -35,7 +35,14 @@
|
|
|
|
! POSSIBILITY OF SUCH DAMAGE.
|
|
|
|
! POSSIBILITY OF SUCH DAMAGE.
|
|
|
|
!
|
|
|
|
!
|
|
|
|
!
|
|
|
|
!
|
|
|
|
subroutine amg_c_base_onelev_descr(lv,il,nl,ilmin,info,iout)
|
|
|
|
!
|
|
|
|
|
|
|
|
!
|
|
|
|
|
|
|
|
! verbosity:
|
|
|
|
|
|
|
|
! <0: suppress all messages
|
|
|
|
|
|
|
|
! 0: normal
|
|
|
|
|
|
|
|
! >1: increased details
|
|
|
|
|
|
|
|
!
|
|
|
|
|
|
|
|
subroutine amg_c_base_onelev_descr(lv,il,nl,ilmin,info,iout,verbosity)
|
|
|
|
|
|
|
|
|
|
|
|
use psb_base_mod
|
|
|
|
use psb_base_mod
|
|
|
|
use amg_c_onelev_mod, amg_protect_name => amg_c_base_onelev_descr
|
|
|
|
use amg_c_onelev_mod, amg_protect_name => amg_c_base_onelev_descr
|
|
|
@ -45,11 +52,13 @@ subroutine amg_c_base_onelev_descr(lv,il,nl,ilmin,info,iout)
|
|
|
|
integer(psb_ipk_), intent(in) :: il,nl,ilmin
|
|
|
|
integer(psb_ipk_), intent(in) :: il,nl,ilmin
|
|
|
|
integer(psb_ipk_), intent(out) :: info
|
|
|
|
integer(psb_ipk_), intent(out) :: info
|
|
|
|
integer(psb_ipk_), intent(in), optional :: iout
|
|
|
|
integer(psb_ipk_), intent(in), optional :: iout
|
|
|
|
|
|
|
|
integer(psb_ipk_), intent(in), optional :: verbosity
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
! Local variables
|
|
|
|
! Local variables
|
|
|
|
integer(psb_ipk_) :: err_act
|
|
|
|
integer(psb_ipk_) :: err_act
|
|
|
|
character(len=20), parameter :: name='amg_c_base_onelev_descr'
|
|
|
|
character(len=20), parameter :: name='amg_c_base_onelev_descr'
|
|
|
|
integer(psb_ipk_) :: iout_
|
|
|
|
integer(psb_ipk_) :: iout_, verbosity_
|
|
|
|
logical :: coarse
|
|
|
|
logical :: coarse
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -64,6 +73,13 @@ subroutine amg_c_base_onelev_descr(lv,il,nl,ilmin,info,iout)
|
|
|
|
iout_ = psb_out_unit
|
|
|
|
iout_ = psb_out_unit
|
|
|
|
end if
|
|
|
|
end if
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (present(verbosity)) then
|
|
|
|
|
|
|
|
verbosity_ = verbosity
|
|
|
|
|
|
|
|
else
|
|
|
|
|
|
|
|
verbosity_ = 0
|
|
|
|
|
|
|
|
end if
|
|
|
|
|
|
|
|
if (verbosity_ < 0) goto 9998
|
|
|
|
|
|
|
|
|
|
|
|
write(iout_,*)
|
|
|
|
write(iout_,*)
|
|
|
|
if (il == ilmin) then
|
|
|
|
if (il == ilmin) then
|
|
|
|
call lv%parms%mlcycledsc(iout_,info)
|
|
|
|
call lv%parms%mlcycledsc(iout_,info)
|
|
|
@ -91,10 +107,20 @@ subroutine amg_c_base_onelev_descr(lv,il,nl,ilmin,info,iout)
|
|
|
|
if (nl > 1) then
|
|
|
|
if (nl > 1) then
|
|
|
|
if (allocated(lv%linmap%naggr)) then
|
|
|
|
if (allocated(lv%linmap%naggr)) then
|
|
|
|
write(iout_,*) ' Coarse Matrix: Global size: ', &
|
|
|
|
write(iout_,*) ' Coarse Matrix: Global size: ', &
|
|
|
|
& sum((1_psb_lpk_*lv%linmap%naggr(:))),' Nonzeros: ',lv%ac_nz_tot
|
|
|
|
& lv%linmap%nagtot
|
|
|
|
|
|
|
|
write(iout_,*) ' Nonzeros: ',lv%ac_nz_tot
|
|
|
|
|
|
|
|
if (verbosity_>0) then
|
|
|
|
write(iout_,*) ' Local matrix sizes: ', &
|
|
|
|
write(iout_,*) ' Local matrix sizes: ', &
|
|
|
|
& lv%linmap%naggr(:)
|
|
|
|
& lv%linmap%naggr(:)
|
|
|
|
write(iout_,*) ' Aggregation ratio: ', &
|
|
|
|
else
|
|
|
|
|
|
|
|
write(iout_,'(2(a,1x,i12))') &
|
|
|
|
|
|
|
|
& ' Local matrix sizes: min:', &
|
|
|
|
|
|
|
|
& lv%linmap%nagmin,' max:', lv%linmap%nagmax
|
|
|
|
|
|
|
|
write(iout_,'(a,1x,f14.1)') &
|
|
|
|
|
|
|
|
& ' avg:', &
|
|
|
|
|
|
|
|
& lv%linmap%nagavg
|
|
|
|
|
|
|
|
end if
|
|
|
|
|
|
|
|
write(iout_,'(a,1x,f14.2)') ' Aggregation ratio: ', &
|
|
|
|
& lv%szratio
|
|
|
|
& lv%szratio
|
|
|
|
end if
|
|
|
|
end if
|
|
|
|
end if
|
|
|
|
end if
|
|
|
@ -103,6 +129,7 @@ subroutine amg_c_base_onelev_descr(lv,il,nl,ilmin,info,iout)
|
|
|
|
& call lv%sm%descr(info,iout=iout_,coarse=coarse)
|
|
|
|
& call lv%sm%descr(info,iout=iout_,coarse=coarse)
|
|
|
|
end if
|
|
|
|
end if
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
9998 continue
|
|
|
|
call psb_erractionrestore(err_act)
|
|
|
|
call psb_erractionrestore(err_act)
|
|
|
|
return
|
|
|
|
return
|
|
|
|
|
|
|
|
|
|
|
|