|
|
|
@ -93,12 +93,15 @@ module mld_c_base_aggregator_mod
|
|
|
|
|
procedure, pass(ag) :: free => mld_c_base_aggregator_free
|
|
|
|
|
procedure, pass(ag) :: default => mld_c_base_aggregator_default
|
|
|
|
|
procedure, pass(ag) :: descr => mld_c_base_aggregator_descr
|
|
|
|
|
procedure, pass(ag) :: sizeof => mld_c_base_aggregator_sizeof
|
|
|
|
|
procedure, pass(ag) :: set_aggr_type => mld_c_base_aggregator_set_aggr_type
|
|
|
|
|
procedure, nopass :: fmt => mld_c_base_aggregator_fmt
|
|
|
|
|
procedure, pass(ag) :: cseti => mld_c_base_aggregator_cseti
|
|
|
|
|
procedure, pass(ag) :: csetr => mld_c_base_aggregator_csetr
|
|
|
|
|
procedure, pass(ag) :: csetc => mld_c_base_aggregator_csetc
|
|
|
|
|
generic, public :: set => cseti, csetr, csetc
|
|
|
|
|
procedure, nopass :: xt_desc => mld_c_base_aggregator_xt_desc
|
|
|
|
|
procedure, pass(ag) :: backfix => mld_c_base_aggregator_backfix
|
|
|
|
|
end type mld_c_base_aggregator_type
|
|
|
|
|
|
|
|
|
|
abstract interface
|
|
|
|
@ -221,6 +224,35 @@ contains
|
|
|
|
|
val = "Default aggregator "
|
|
|
|
|
end function mld_c_base_aggregator_fmt
|
|
|
|
|
|
|
|
|
|
function mld_c_base_aggregator_sizeof(ag) result(val)
|
|
|
|
|
implicit none
|
|
|
|
|
class(mld_c_base_aggregator_type), intent(in) :: ag
|
|
|
|
|
integer(psb_epk_) :: val
|
|
|
|
|
|
|
|
|
|
val = 1
|
|
|
|
|
end function mld_c_base_aggregator_sizeof
|
|
|
|
|
|
|
|
|
|
function mld_c_base_aggregator_xt_desc() result(val)
|
|
|
|
|
implicit none
|
|
|
|
|
logical :: val
|
|
|
|
|
|
|
|
|
|
val = .false.
|
|
|
|
|
end function mld_c_base_aggregator_xt_desc
|
|
|
|
|
|
|
|
|
|
subroutine mld_c_base_aggregator_backfix(ag,base_a,ac,base_desc,desc_ac,info)
|
|
|
|
|
implicit none
|
|
|
|
|
class(mld_c_base_aggregator_type), intent(inout) :: ag
|
|
|
|
|
type(psb_cspmat_type), pointer :: base_a
|
|
|
|
|
type(psb_cspmat_type), intent(inout), target :: ac
|
|
|
|
|
type(psb_desc_type), pointer :: base_desc
|
|
|
|
|
type(psb_desc_type), intent(inout), target :: desc_ac
|
|
|
|
|
integer(psb_ipk_), intent(out) :: info
|
|
|
|
|
|
|
|
|
|
! Base version is to do nothing.
|
|
|
|
|
info = psb_success_
|
|
|
|
|
|
|
|
|
|
end subroutine mld_c_base_aggregator_backfix
|
|
|
|
|
|
|
|
|
|
subroutine mld_c_base_aggregator_descr(ag,parms,iout,info)
|
|
|
|
|
implicit none
|
|
|
|
|
class(mld_c_base_aggregator_type), intent(in) :: ag
|
|
|
|
|