|
|
|
@ -47,7 +47,7 @@ module mld_c_inner_mod
|
|
|
|
|
|
|
|
|
|
use psb_base_mod, only : psb_cspmat_type, psb_desc_type, psb_i_base_vect_type, &
|
|
|
|
|
& psb_spk_, psb_c_base_sparse_mat, psb_c_base_vect_type, psb_ipk_, &
|
|
|
|
|
& psb_c_vect_type
|
|
|
|
|
& psb_c_vect_type, psb_lpk_, psb_lcspmat_type
|
|
|
|
|
use mld_c_prec_type, only : mld_cprec_type, mld_sml_parms, &
|
|
|
|
|
& mld_c_onelev_type, mld_cmlprec_wrk_type
|
|
|
|
|
|
|
|
|
@ -99,26 +99,26 @@ module mld_c_inner_mod
|
|
|
|
|
|
|
|
|
|
interface mld_aggrmap_bld
|
|
|
|
|
subroutine mld_c_lev_aggrmap_bld(p,a,desc_a,ilaggr,nlaggr,op_prol,info)
|
|
|
|
|
import :: psb_cspmat_type, psb_desc_type, psb_spk_, psb_ipk_
|
|
|
|
|
import :: psb_cspmat_type, psb_desc_type, psb_spk_, psb_ipk_, psb_lpk_, psb_lcspmat_type
|
|
|
|
|
import :: mld_c_onelev_type
|
|
|
|
|
implicit none
|
|
|
|
|
type(mld_c_onelev_type), intent(inout), target :: p
|
|
|
|
|
type(psb_cspmat_type), intent(in) :: a
|
|
|
|
|
type(psb_desc_type), intent(in) :: desc_a
|
|
|
|
|
integer(psb_ipk_), intent(out) :: ilaggr(:),nlaggr(:)
|
|
|
|
|
type(psb_cspmat_type), intent(out) :: op_prol
|
|
|
|
|
integer(psb_lpk_), intent(out) :: ilaggr(:),nlaggr(:)
|
|
|
|
|
type(psb_lcspmat_type), intent(out) :: op_prol
|
|
|
|
|
integer(psb_ipk_), intent(out) :: info
|
|
|
|
|
end subroutine mld_c_lev_aggrmap_bld
|
|
|
|
|
subroutine mld_caggrmap_bld(aggr_type,iorder,theta,a,desc_a,ilaggr,nlaggr,op_prol,info)
|
|
|
|
|
import :: psb_cspmat_type, psb_desc_type, psb_spk_, psb_ipk_
|
|
|
|
|
import :: psb_cspmat_type, psb_desc_type, psb_spk_, psb_ipk_, psb_lpk_, psb_lcspmat_type
|
|
|
|
|
implicit none
|
|
|
|
|
integer(psb_ipk_), intent(in) :: iorder
|
|
|
|
|
integer(psb_ipk_), intent(in) :: aggr_type
|
|
|
|
|
real(psb_spk_), intent(in) :: theta
|
|
|
|
|
type(psb_cspmat_type), intent(in) :: a
|
|
|
|
|
type(psb_desc_type), intent(in) :: desc_a
|
|
|
|
|
integer(psb_ipk_), allocatable, intent(out) :: ilaggr(:),nlaggr(:)
|
|
|
|
|
type(psb_cspmat_type), intent(out) :: op_prol
|
|
|
|
|
integer(psb_lpk_), allocatable, intent(out) :: ilaggr(:),nlaggr(:)
|
|
|
|
|
type(psb_lcspmat_type), intent(out) :: op_prol
|
|
|
|
|
integer(psb_ipk_), intent(out) :: info
|
|
|
|
|
end subroutine mld_caggrmap_bld
|
|
|
|
|
end interface mld_aggrmap_bld
|
|
|
|
@ -137,42 +137,42 @@ module mld_c_inner_mod
|
|
|
|
|
|
|
|
|
|
interface mld_lev_mat_asb
|
|
|
|
|
subroutine mld_c_lev_aggrmat_asb(p,a,desc_a,ilaggr,nlaggr,op_prol,info)
|
|
|
|
|
import :: psb_cspmat_type, psb_desc_type, psb_spk_, psb_ipk_
|
|
|
|
|
import :: psb_cspmat_type, psb_desc_type, psb_spk_, psb_ipk_, psb_lpk_, psb_lcspmat_type
|
|
|
|
|
import :: mld_c_onelev_type
|
|
|
|
|
implicit none
|
|
|
|
|
type(mld_c_onelev_type), intent(inout), target :: p
|
|
|
|
|
type(psb_cspmat_type), intent(in) :: a
|
|
|
|
|
type(psb_desc_type), intent(in) :: desc_a
|
|
|
|
|
integer(psb_ipk_), intent(inout) :: ilaggr(:),nlaggr(:)
|
|
|
|
|
type(psb_cspmat_type), intent(inout) :: op_prol
|
|
|
|
|
integer(psb_lpk_), intent(inout) :: ilaggr(:),nlaggr(:)
|
|
|
|
|
type(psb_lcspmat_type), intent(inout) :: op_prol
|
|
|
|
|
integer(psb_ipk_), intent(out) :: info
|
|
|
|
|
end subroutine mld_c_lev_aggrmat_asb
|
|
|
|
|
end interface mld_lev_mat_asb
|
|
|
|
|
|
|
|
|
|
interface mld_aggrmat_asb
|
|
|
|
|
subroutine mld_caggrmat_asb(a,desc_a,ilaggr,nlaggr,parms,ac,op_prol,op_restr,info)
|
|
|
|
|
import :: psb_cspmat_type, psb_desc_type, psb_spk_, psb_ipk_
|
|
|
|
|
import :: psb_cspmat_type, psb_desc_type, psb_spk_, psb_ipk_, psb_lpk_, psb_lcspmat_type
|
|
|
|
|
import :: mld_sml_parms
|
|
|
|
|
implicit none
|
|
|
|
|
type(psb_cspmat_type), intent(in) :: a
|
|
|
|
|
type(psb_desc_type), intent(in) :: desc_a
|
|
|
|
|
integer(psb_ipk_), intent(inout) :: ilaggr(:), nlaggr(:)
|
|
|
|
|
integer(psb_lpk_), intent(inout) :: ilaggr(:), nlaggr(:)
|
|
|
|
|
type(mld_sml_parms), intent(inout) :: parms
|
|
|
|
|
type(psb_cspmat_type), intent(out) :: ac,op_prol,op_restr
|
|
|
|
|
type(psb_lcspmat_type), intent(out) :: ac,op_prol,op_restr
|
|
|
|
|
integer(psb_ipk_), intent(out) :: info
|
|
|
|
|
end subroutine mld_caggrmat_asb
|
|
|
|
|
end interface mld_aggrmat_asb
|
|
|
|
|
|
|
|
|
|
abstract interface
|
|
|
|
|
subroutine mld_caggrmat_var_asb(a,desc_a,ilaggr,nlaggr,parms,ac,op_prol,op_restr,info)
|
|
|
|
|
import :: psb_cspmat_type, psb_desc_type, psb_spk_, psb_ipk_
|
|
|
|
|
import :: psb_cspmat_type, psb_desc_type, psb_spk_, psb_ipk_, psb_lpk_, psb_lcspmat_type
|
|
|
|
|
import :: mld_c_onelev_type, mld_sml_parms
|
|
|
|
|
implicit none
|
|
|
|
|
type(psb_cspmat_type), intent(in) :: a
|
|
|
|
|
type(psb_desc_type), intent(in) :: desc_a
|
|
|
|
|
integer(psb_ipk_), intent(inout) :: ilaggr(:), nlaggr(:)
|
|
|
|
|
integer(psb_lpk_), intent(inout) :: ilaggr(:), nlaggr(:)
|
|
|
|
|
type(mld_sml_parms), intent(inout) :: parms
|
|
|
|
|
type(psb_cspmat_type), intent(out) :: ac,op_prol,op_restr
|
|
|
|
|
type(psb_lcspmat_type), intent(out) :: ac,op_prol,op_restr
|
|
|
|
|
integer(psb_ipk_), intent(out) :: info
|
|
|
|
|
end subroutine mld_caggrmat_var_asb
|
|
|
|
|
end interface
|
|
|
|
|