Merge MLD stuf. Phase 1.

stopcriterion
Salvatore Filippone 18 years ago
parent af2df5ef8d
commit cc19363a73

@ -7,23 +7,23 @@ HERE=.
FINCLUDES=$(FMFLAG)$(LIBDIR) $(FMFLAG). FINCLUDES=$(FMFLAG)$(LIBDIR) $(FMFLAG).
MODOBJS= psb_prec_type.o psb_prec_mod.o MODOBJS=psb_prec_type.o psb_prec_mod.o
MPFOBJS=psb_dbldaggrmat.o psb_zbldaggrmat.o MPFOBJS=mld_daggrmat_asb.o mld_zaggrmat_asb.o
MPCOBJS=psb_slud_impl.o psb_zslud_impl.o MPCOBJS=mld_slud_impl.o mld_zslud_impl.o
F90OBJS=psb_dasmatbld.o psb_dslu_bld.o psb_dumf_bld.o psb_dilu_fct.o\ F90OBJS=mld_dasmat_bld.o mld_dslu_bld.o mld_dumf_bld.o mld_dilu_fct.o\
psb_dmlprc_bld.o psb_dsp_renum.o psb_dbjac_bld.o psb_dilu_bld.o \ mld_dmlprec_bld.o mld_dsp_renum.o mld_dbjac_bld.o mld_dilu_bld.o \
psb_dprecbld.o psb_dprecfree.o psb_dprecinit.o psb_dprecset.o \ psb_dprecbld.o psb_dprecfree.o psb_dprecset.o psb_dprecinit.o\
psb_dbaseprc_bld.o psb_ddiagsc_bld.o psb_dgenaggrmap.o \ mld_dbaseprec_bld.o mld_ddiagsc_bld.o mld_daggrmap_bld.o \
psb_dprc_aply.o psb_dmlprc_aply.o psb_dslud_bld.o\ mld_dprec_aply.o mld_dmlprec_aply.o mld_dslud_bld.o\
psb_dbaseprc_aply.o psb_dbjac_aply.o\ mld_dbaseprec_aply.o mld_dbjac_aply.o\
psb_zasmatbld.o psb_zslu_bld.o psb_zumf_bld.o psb_zilu_fct.o\ mld_zasmat_bld.o mld_zslu_bld.o mld_zumf_bld.o mld_zilu_fct.o\
psb_zmlprc_bld.o psb_zsp_renum.o psb_zbjac_bld.o psb_zilu_bld.o \ mld_zmlprec_bld.o mld_zsp_renum.o mld_zbjac_bld.o mld_zilu_bld.o \
psb_zprecbld.o psb_zprecfree.o psb_zprecinit.o psb_zprecset.o \ psb_zprecbld.o psb_zprecfree.o psb_zprecset.o psb_zprecinit.o \
psb_zbaseprc_bld.o psb_zdiagsc_bld.o psb_zgenaggrmap.o \ mld_zbaseprec_bld.o mld_zdiagsc_bld.o mld_zaggrmap_bld.o \
psb_zprc_aply.o psb_zmlprc_aply.o psb_zslud_bld.o\ mld_zprec_aply.o mld_zmlprec_aply.o mld_zslud_bld.o\
psb_zbaseprc_aply.o psb_zbjac_aply.o\ mld_zbaseprec_aply.o mld_zbjac_aply.o\
$(MPFOBJS) $(MPFOBJS)
COBJS=psb_slu_impl.o psb_umf_impl.o psb_zslu_impl.o psb_zumf_impl.o COBJS=mld_slu_impl.o mld_umf_impl.o mld_zslu_impl.o mld_zumf_impl.o
OBJS=$(F90OBJS) $(COBJS) $(MPFOBJS) $(MPCOBJS) $(MODOBJS) OBJS=$(F90OBJS) $(COBJS) $(MPFOBJS) $(MPCOBJS) $(MODOBJS)
LIBMOD=psb_prec_mod$(.mod) LIBMOD=psb_prec_mod$(.mod)

@ -102,7 +102,7 @@ subroutine psb_dprecbld(a,desc_a,p,info,upd)
goto 9999 goto 9999
endif endif
call psb_baseprc_bld(a,desc_a,p%baseprecv(1),info,iupd) call mld_baseprc_bld(a,desc_a,p%baseprecv(1),info,iupd)
else else
info=4010 info=4010
@ -124,7 +124,7 @@ subroutine psb_dprecbld(a,desc_a,p,info,upd)
goto 9999 goto 9999
endif endif
call psb_mlprc_bld(p%baseprecv(i-1)%base_a,p%baseprecv(i-1)%base_desc,& call mld_mlprec_bld(p%baseprecv(i-1)%base_a,p%baseprecv(i-1)%base_desc,&
& p%baseprecv(i),info) & p%baseprecv(i),info)
if (dump_aggr) then if (dump_aggr) then
call psb_csprt(90+me,p%baseprecv(i)%base_a,head='% Smoothed aggregate.') call psb_csprt(90+me,p%baseprecv(i)%base_a,head='% Smoothed aggregate.')

@ -37,7 +37,7 @@
subroutine psb_dprecinit(p,ptype,info,nlev) subroutine psb_dprecinit(p,ptype,info,nlev)
use psb_base_mod use psb_base_mod
use psb_prec_mod, psb_protect_name => psb_dprecinit use psb_prec_mod, mld_protect_name => psb_dprecinit
implicit none implicit none
type(psb_dprec_type), intent(inout) :: p type(psb_dprec_type), intent(inout) :: p
@ -57,7 +57,7 @@ subroutine psb_dprecinit(p,ptype,info,nlev)
endif endif
select case(toupper(ptype(1:len_trim(ptype)))) select case(toupper(ptype(1:len_trim(ptype))))
case ('NONE','NOPREC') case ('NOPREC')
nlev_ = 1 nlev_ = 1
ilev_ = 1 ilev_ = 1
allocate(p%baseprecv(nlev_),stat=info) allocate(p%baseprecv(nlev_),stat=info)
@ -80,6 +80,7 @@ subroutine psb_dprecinit(p,ptype,info,nlev)
if (info == 0) call psb_realloc(ifpsz,p%baseprecv(ilev_)%iprcparm,info) if (info == 0) call psb_realloc(ifpsz,p%baseprecv(ilev_)%iprcparm,info)
if (info == 0) call psb_realloc(dfpsz,p%baseprecv(ilev_)%dprcparm,info) if (info == 0) call psb_realloc(dfpsz,p%baseprecv(ilev_)%dprcparm,info)
if (info /= 0) return if (info /= 0) return
p%baseprecv(ilev_)%iprcparm(:) = 0
p%baseprecv(ilev_)%iprcparm(p_type_) = diag_ p%baseprecv(ilev_)%iprcparm(p_type_) = diag_
p%baseprecv(ilev_)%iprcparm(f_type_) = f_none_ p%baseprecv(ilev_)%iprcparm(f_type_) = f_none_
p%baseprecv(ilev_)%iprcparm(restr_) = psb_none_ p%baseprecv(ilev_)%iprcparm(restr_) = psb_none_
@ -105,24 +106,25 @@ subroutine psb_dprecinit(p,ptype,info,nlev)
p%baseprecv(ilev_)%iprcparm(ilu_fill_in_) = 0 p%baseprecv(ilev_)%iprcparm(ilu_fill_in_) = 0
p%baseprecv(ilev_)%iprcparm(jac_sweeps_) = 1 p%baseprecv(ilev_)%iprcparm(jac_sweeps_) = 1
case ('ASM','AS') case ('AS')
nlev_ = 1 nlev_ = 1
ilev_ = 1 ilev_ = 1
allocate(p%baseprecv(nlev_),stat=info) allocate(p%baseprecv(nlev_),stat=info)
if (info == 0) call psb_realloc(ifpsz,p%baseprecv(ilev_)%iprcparm,info) if (info == 0) call psb_realloc(ifpsz,p%baseprecv(ilev_)%iprcparm,info)
if (info == 0) call psb_realloc(dfpsz,p%baseprecv(ilev_)%dprcparm,info) if (info == 0) call psb_realloc(dfpsz,p%baseprecv(ilev_)%dprcparm,info)
if (info /= 0) return if (info /= 0) return
p%baseprecv(ilev_)%iprcparm(:) = 0
p%baseprecv(ilev_)%iprcparm(p_type_) = asm_ p%baseprecv(ilev_)%iprcparm(p_type_) = asm_
p%baseprecv(ilev_)%iprcparm(f_type_) = f_ilu_n_ p%baseprecv(ilev_)%iprcparm(f_type_) = f_ilu_n_
p%baseprecv(ilev_)%iprcparm(restr_) = psb_halo_ p%baseprecv(ilev_)%iprcparm(restr_) = psb_halo_
p%baseprecv(ilev_)%iprcparm(prol_) = psb_none_ p%baseprecv(ilev_)%iprcparm(prol_) = psb_none_
p%baseprecv(ilev_)%iprcparm(iren_) = 0 p%baseprecv(ilev_)%iprcparm(iren_) = 0
p%baseprecv(ilev_)%iprcparm(n_ovr_) = 1 p%baseprecv(ilev_)%iprcparm(n_ovr_) = 0
p%baseprecv(ilev_)%iprcparm(ilu_fill_in_) = 0 p%baseprecv(ilev_)%iprcparm(ilu_fill_in_) = 0
p%baseprecv(ilev_)%iprcparm(jac_sweeps_) = 1 p%baseprecv(ilev_)%iprcparm(jac_sweeps_) = 1
case ('MLD', 'ML') case ('ML')
if (present(nlev)) then if (present(nlev)) then
nlev_ = max(1,nlev) nlev_ = max(1,nlev)
@ -137,12 +139,13 @@ subroutine psb_dprecinit(p,ptype,info,nlev)
if (info == 0) call psb_realloc(ifpsz,p%baseprecv(ilev_)%iprcparm,info) if (info == 0) call psb_realloc(ifpsz,p%baseprecv(ilev_)%iprcparm,info)
if (info == 0) call psb_realloc(dfpsz,p%baseprecv(ilev_)%dprcparm,info) if (info == 0) call psb_realloc(dfpsz,p%baseprecv(ilev_)%dprcparm,info)
if (info /= 0) return if (info /= 0) return
p%baseprecv(ilev_)%iprcparm(:) = 0
p%baseprecv(ilev_)%iprcparm(p_type_) = asm_ p%baseprecv(ilev_)%iprcparm(p_type_) = asm_
p%baseprecv(ilev_)%iprcparm(f_type_) = f_ilu_n_ p%baseprecv(ilev_)%iprcparm(f_type_) = f_ilu_n_
p%baseprecv(ilev_)%iprcparm(restr_) = psb_halo_ p%baseprecv(ilev_)%iprcparm(restr_) = psb_halo_
p%baseprecv(ilev_)%iprcparm(prol_) = psb_none_ p%baseprecv(ilev_)%iprcparm(prol_) = psb_none_
p%baseprecv(ilev_)%iprcparm(iren_) = 0 p%baseprecv(ilev_)%iprcparm(iren_) = 0
p%baseprecv(ilev_)%iprcparm(n_ovr_) = 1 p%baseprecv(ilev_)%iprcparm(n_ovr_) = 0
p%baseprecv(ilev_)%iprcparm(ilu_fill_in_) = 0 p%baseprecv(ilev_)%iprcparm(ilu_fill_in_) = 0
p%baseprecv(ilev_)%iprcparm(jac_sweeps_) = 1 p%baseprecv(ilev_)%iprcparm(jac_sweeps_) = 1
if (nlev_ == 1) return if (nlev_ == 1) return
@ -151,6 +154,7 @@ subroutine psb_dprecinit(p,ptype,info,nlev)
if (info == 0) call psb_realloc(ifpsz,p%baseprecv(ilev_)%iprcparm,info) if (info == 0) call psb_realloc(ifpsz,p%baseprecv(ilev_)%iprcparm,info)
if (info == 0) call psb_realloc(dfpsz,p%baseprecv(ilev_)%dprcparm,info) if (info == 0) call psb_realloc(dfpsz,p%baseprecv(ilev_)%dprcparm,info)
if (info /= 0) return if (info /= 0) return
p%baseprecv(ilev_)%iprcparm(:) = 0
p%baseprecv(ilev_)%iprcparm(p_type_) = bjac_ p%baseprecv(ilev_)%iprcparm(p_type_) = bjac_
p%baseprecv(ilev_)%iprcparm(restr_) = psb_none_ p%baseprecv(ilev_)%iprcparm(restr_) = psb_none_
p%baseprecv(ilev_)%iprcparm(prol_) = psb_none_ p%baseprecv(ilev_)%iprcparm(prol_) = psb_none_
@ -171,6 +175,7 @@ subroutine psb_dprecinit(p,ptype,info,nlev)
if (info == 0) call psb_realloc(ifpsz,p%baseprecv(ilev_)%iprcparm,info) if (info == 0) call psb_realloc(ifpsz,p%baseprecv(ilev_)%iprcparm,info)
if (info == 0) call psb_realloc(dfpsz,p%baseprecv(ilev_)%dprcparm,info) if (info == 0) call psb_realloc(dfpsz,p%baseprecv(ilev_)%dprcparm,info)
if (info /= 0) return if (info /= 0) return
p%baseprecv(ilev_)%iprcparm(:) = 0
p%baseprecv(ilev_)%iprcparm(p_type_) = bjac_ p%baseprecv(ilev_)%iprcparm(p_type_) = bjac_
p%baseprecv(ilev_)%iprcparm(restr_) = psb_none_ p%baseprecv(ilev_)%iprcparm(restr_) = psb_none_
p%baseprecv(ilev_)%iprcparm(prol_) = psb_none_ p%baseprecv(ilev_)%iprcparm(prol_) = psb_none_

@ -37,7 +37,7 @@
subroutine psb_dprecseti(p,what,val,info,ilev) subroutine psb_dprecseti(p,what,val,info,ilev)
use psb_base_mod use psb_base_mod
use psb_prec_mod, psb_protect_name => psb_dprecseti use psb_prec_mod, mld_protect_name => psb_dprecseti
implicit none implicit none
type(psb_dprec_type), intent(inout) :: p type(psb_dprec_type), intent(inout) :: p
@ -99,7 +99,7 @@ end subroutine psb_dprecseti
subroutine psb_dprecsetd(p,what,val,info,ilev) subroutine psb_dprecsetd(p,what,val,info,ilev)
use psb_base_mod use psb_base_mod
use psb_prec_mod, psb_protect_name => psb_dprecsetd use psb_prec_mod, mld_protect_name => psb_dprecsetd
implicit none implicit none
type(psb_dprec_type), intent(inout) :: p type(psb_dprec_type), intent(inout) :: p

@ -138,7 +138,7 @@ module psb_prec_mod
end interface end interface
interface psb_precaply interface psb_precaply
subroutine psb_dprc_aply(prec,x,y,desc_data,info,trans,work) subroutine mld_dprec_aply(prec,x,y,desc_data,info,trans,work)
use psb_base_mod use psb_base_mod
use psb_prec_type use psb_prec_type
type(psb_desc_type),intent(in) :: desc_data type(psb_desc_type),intent(in) :: desc_data
@ -147,8 +147,8 @@ module psb_prec_mod
integer, intent(out) :: info integer, intent(out) :: info
character(len=1), optional :: trans character(len=1), optional :: trans
real(kind(0.d0)),intent(inout), optional, target :: work(:) real(kind(0.d0)),intent(inout), optional, target :: work(:)
end subroutine psb_dprc_aply end subroutine mld_dprec_aply
subroutine psb_dprc_aply1(prec,x,desc_data,info,trans) subroutine mld_dprec_aply1(prec,x,desc_data,info,trans)
use psb_base_mod use psb_base_mod
use psb_prec_type use psb_prec_type
type(psb_desc_type),intent(in) :: desc_data type(psb_desc_type),intent(in) :: desc_data
@ -156,8 +156,8 @@ module psb_prec_mod
real(kind(0.d0)),intent(inout) :: x(:) real(kind(0.d0)),intent(inout) :: x(:)
integer, intent(out) :: info integer, intent(out) :: info
character(len=1), optional :: trans character(len=1), optional :: trans
end subroutine psb_dprc_aply1 end subroutine mld_dprec_aply1
subroutine psb_zprc_aply(prec,x,y,desc_data,info,trans,work) subroutine mld_zprec_aply(prec,x,y,desc_data,info,trans,work)
use psb_base_mod use psb_base_mod
use psb_prec_type use psb_prec_type
type(psb_desc_type),intent(in) :: desc_data type(psb_desc_type),intent(in) :: desc_data
@ -166,8 +166,8 @@ module psb_prec_mod
integer, intent(out) :: info integer, intent(out) :: info
character(len=1), optional :: trans character(len=1), optional :: trans
complex(kind(0.d0)),intent(inout), optional, target :: work(:) complex(kind(0.d0)),intent(inout), optional, target :: work(:)
end subroutine psb_zprc_aply end subroutine mld_zprec_aply
subroutine psb_zprc_aply1(prec,x,desc_data,info,trans) subroutine mld_zprec_aply1(prec,x,desc_data,info,trans)
use psb_base_mod use psb_base_mod
use psb_prec_type use psb_prec_type
type(psb_desc_type),intent(in) :: desc_data type(psb_desc_type),intent(in) :: desc_data
@ -175,11 +175,11 @@ module psb_prec_mod
complex(kind(0.d0)),intent(inout) :: x(:) complex(kind(0.d0)),intent(inout) :: x(:)
integer, intent(out) :: info integer, intent(out) :: info
character(len=1), optional :: trans character(len=1), optional :: trans
end subroutine psb_zprc_aply1 end subroutine mld_zprec_aply1
end interface end interface
interface psb_baseprc_bld interface mld_baseprc_bld
subroutine psb_dbaseprc_bld(a,desc_a,p,info,upd) subroutine mld_dbaseprc_bld(a,desc_a,p,info,upd)
use psb_base_mod use psb_base_mod
use psb_prec_type use psb_prec_type
type(psb_dspmat_type), target :: a type(psb_dspmat_type), target :: a
@ -187,8 +187,8 @@ module psb_prec_mod
type(psb_dbaseprc_type),intent(inout) :: p type(psb_dbaseprc_type),intent(inout) :: p
integer, intent(out) :: info integer, intent(out) :: info
character, intent(in), optional :: upd character, intent(in), optional :: upd
end subroutine psb_dbaseprc_bld end subroutine mld_dbaseprc_bld
subroutine psb_zbaseprc_bld(a,desc_a,p,info,upd) subroutine mld_zbaseprc_bld(a,desc_a,p,info,upd)
use psb_base_mod use psb_base_mod
use psb_prec_type use psb_prec_type
type(psb_zspmat_type), target :: a type(psb_zspmat_type), target :: a
@ -196,31 +196,31 @@ module psb_prec_mod
type(psb_zbaseprc_type),intent(inout) :: p type(psb_zbaseprc_type),intent(inout) :: p
integer, intent(out) :: info integer, intent(out) :: info
character, intent(in), optional :: upd character, intent(in), optional :: upd
end subroutine psb_zbaseprc_bld end subroutine mld_zbaseprc_bld
end interface end interface
interface psb_mlprc_bld interface mld_mlprec_bld
subroutine psb_dmlprc_bld(a,desc_a,p,info) subroutine mld_dmlprec_bld(a,desc_a,p,info)
use psb_base_mod use psb_base_mod
use psb_prec_type use psb_prec_type
type(psb_dspmat_type), intent(inout), target :: a type(psb_dspmat_type), intent(inout), target :: a
type(psb_desc_type), intent(in), target :: desc_a type(psb_desc_type), intent(in), target :: desc_a
type(psb_dbaseprc_type), intent(inout), target :: p type(psb_dbaseprc_type), intent(inout), target :: p
integer, intent(out) :: info integer, intent(out) :: info
end subroutine psb_dmlprc_bld end subroutine mld_dmlprec_bld
subroutine psb_zmlprc_bld(a,desc_a,p,info) subroutine mld_zmlprec_bld(a,desc_a,p,info)
use psb_base_mod use psb_base_mod
use psb_prec_type use psb_prec_type
type(psb_zspmat_type), intent(inout), target :: a type(psb_zspmat_type), intent(inout), target :: a
type(psb_desc_type), intent(in), target :: desc_a type(psb_desc_type), intent(in), target :: desc_a
type(psb_zbaseprc_type), intent(inout),target :: p type(psb_zbaseprc_type), intent(inout),target :: p
integer, intent(out) :: info integer, intent(out) :: info
end subroutine psb_zmlprc_bld end subroutine mld_zmlprec_bld
end interface end interface
interface psb_baseprc_aply interface mld_baseprec_aply
subroutine psb_dbaseprc_aply(alpha,prec,x,beta,y,desc_data,trans,work,info) subroutine mld_dbaseprec_aply(alpha,prec,x,beta,y,desc_data,trans,work,info)
use psb_base_mod use psb_base_mod
use psb_prec_type use psb_prec_type
type(psb_desc_type),intent(in) :: desc_data type(psb_desc_type),intent(in) :: desc_data
@ -230,9 +230,9 @@ module psb_prec_mod
character(len=1) :: trans character(len=1) :: trans
real(kind(0.d0)),target :: work(:) real(kind(0.d0)),target :: work(:)
integer, intent(out) :: info integer, intent(out) :: info
end subroutine psb_dbaseprc_aply end subroutine mld_dbaseprec_aply
subroutine psb_zbaseprc_aply(alpha,prec,x,beta,y,desc_data,trans,work,info) subroutine mld_zbaseprec_aply(alpha,prec,x,beta,y,desc_data,trans,work,info)
use psb_base_mod use psb_base_mod
use psb_prec_type use psb_prec_type
type(psb_desc_type),intent(in) :: desc_data type(psb_desc_type),intent(in) :: desc_data
@ -242,11 +242,11 @@ module psb_prec_mod
character(len=1) :: trans character(len=1) :: trans
complex(kind(1.d0)),target :: work(:) complex(kind(1.d0)),target :: work(:)
integer, intent(out) :: info integer, intent(out) :: info
end subroutine psb_zbaseprc_aply end subroutine mld_zbaseprec_aply
end interface end interface
interface psb_mlprc_aply interface mld_mlprec_aply
subroutine psb_dmlprc_aply(alpha,baseprecv,x,beta,y,desc_data,trans,work,info) subroutine mld_dmlprec_aply(alpha,baseprecv,x,beta,y,desc_data,trans,work,info)
use psb_base_mod use psb_base_mod
use psb_prec_type use psb_prec_type
type(psb_desc_type),intent(in) :: desc_data type(psb_desc_type),intent(in) :: desc_data
@ -256,8 +256,8 @@ module psb_prec_mod
character :: trans character :: trans
real(kind(0.d0)),target :: work(:) real(kind(0.d0)),target :: work(:)
integer, intent(out) :: info integer, intent(out) :: info
end subroutine psb_dmlprc_aply end subroutine mld_dmlprec_aply
subroutine psb_zmlprc_aply(alpha,baseprecv,x,beta,y,desc_data,trans,work,info) subroutine mld_zmlprec_aply(alpha,baseprecv,x,beta,y,desc_data,trans,work,info)
use psb_base_mod use psb_base_mod
use psb_prec_type use psb_prec_type
type(psb_desc_type),intent(in) :: desc_data type(psb_desc_type),intent(in) :: desc_data
@ -267,11 +267,11 @@ module psb_prec_mod
character :: trans character :: trans
complex(kind(0.d0)),target :: work(:) complex(kind(0.d0)),target :: work(:)
integer, intent(out) :: info integer, intent(out) :: info
end subroutine psb_zmlprc_aply end subroutine mld_zmlprec_aply
end interface end interface
interface psb_bjac_aply interface mld_bjac_aply
subroutine psb_dbjac_aply(alpha,prec,x,beta,y,desc_data,trans,work,info) subroutine mld_dbjac_aply(alpha,prec,x,beta,y,desc_data,trans,work,info)
use psb_base_mod use psb_base_mod
use psb_prec_type use psb_prec_type
type(psb_desc_type), intent(in) :: desc_data type(psb_desc_type), intent(in) :: desc_data
@ -281,8 +281,8 @@ module psb_prec_mod
character(len=1) :: trans character(len=1) :: trans
real(kind(0.d0)),target :: work(:) real(kind(0.d0)),target :: work(:)
integer, intent(out) :: info integer, intent(out) :: info
end subroutine psb_dbjac_aply end subroutine mld_dbjac_aply
subroutine psb_zbjac_aply(alpha,prec,x,beta,y,desc_data,trans,work,info) subroutine mld_zbjac_aply(alpha,prec,x,beta,y,desc_data,trans,work,info)
use psb_base_mod use psb_base_mod
use psb_prec_type use psb_prec_type
type(psb_desc_type), intent(in) :: desc_data type(psb_desc_type), intent(in) :: desc_data
@ -292,12 +292,12 @@ module psb_prec_mod
character(len=1) :: trans character(len=1) :: trans
complex(kind(0.d0)),target :: work(:) complex(kind(0.d0)),target :: work(:)
integer, intent(out) :: info integer, intent(out) :: info
end subroutine psb_zbjac_aply end subroutine mld_zbjac_aply
end interface end interface
interface psb_diagsc_bld interface mld_diag_bld
subroutine psb_ddiagsc_bld(a,desc_data,p,upd,info) subroutine mld_ddiag_bld(a,desc_data,p,upd,info)
use psb_base_mod use psb_base_mod
use psb_prec_type use psb_prec_type
integer, intent(out) :: info integer, intent(out) :: info
@ -305,8 +305,8 @@ module psb_prec_mod
type(psb_desc_type),intent(in) :: desc_data type(psb_desc_type),intent(in) :: desc_data
type(psb_dbaseprc_type), intent(inout) :: p type(psb_dbaseprc_type), intent(inout) :: p
character, intent(in) :: upd character, intent(in) :: upd
end subroutine psb_ddiagsc_bld end subroutine mld_ddiag_bld
subroutine psb_zdiagsc_bld(a,desc_data,p,upd,info) subroutine mld_zdiag_bld(a,desc_data,p,upd,info)
use psb_base_mod use psb_base_mod
use psb_prec_type use psb_prec_type
integer, intent(out) :: info integer, intent(out) :: info
@ -314,11 +314,11 @@ module psb_prec_mod
type(psb_desc_type),intent(in) :: desc_data type(psb_desc_type),intent(in) :: desc_data
type(psb_zbaseprc_type), intent(inout) :: p type(psb_zbaseprc_type), intent(inout) :: p
character, intent(in) :: upd character, intent(in) :: upd
end subroutine psb_zdiagsc_bld end subroutine mld_zdiag_bld
end interface end interface
interface psb_bjac_bld interface mld_bjac_bld
subroutine psb_dbjac_bld(a,desc_data,p,upd,info) subroutine mld_dbjac_bld(a,desc_data,p,upd,info)
use psb_base_mod use psb_base_mod
use psb_prec_type use psb_prec_type
integer, intent(out) :: info integer, intent(out) :: info
@ -326,8 +326,8 @@ module psb_prec_mod
type(psb_desc_type),intent(in) :: desc_data type(psb_desc_type),intent(in) :: desc_data
type(psb_dbaseprc_type), intent(inout) :: p type(psb_dbaseprc_type), intent(inout) :: p
character, intent(in) :: upd character, intent(in) :: upd
end subroutine psb_dbjac_bld end subroutine mld_dbjac_bld
subroutine psb_zbjac_bld(a,desc_data,p,upd,info) subroutine mld_zbjac_bld(a,desc_data,p,upd,info)
use psb_base_mod use psb_base_mod
use psb_prec_type use psb_prec_type
integer, intent(out) :: info integer, intent(out) :: info
@ -335,11 +335,11 @@ module psb_prec_mod
type(psb_desc_type),intent(in) :: desc_data type(psb_desc_type),intent(in) :: desc_data
type(psb_zbaseprc_type), intent(inout) :: p type(psb_zbaseprc_type), intent(inout) :: p
character, intent(in) :: upd character, intent(in) :: upd
end subroutine psb_zbjac_bld end subroutine mld_zbjac_bld
end interface end interface
interface psb_ilu_bld interface mld_ilu_bld
subroutine psb_dilu_bld(a,desc_data,p,upd,info,blck) subroutine mld_dilu_bld(a,desc_data,p,upd,info,blck)
use psb_base_mod use psb_base_mod
use psb_prec_type use psb_prec_type
integer, intent(out) :: info integer, intent(out) :: info
@ -348,8 +348,8 @@ module psb_prec_mod
type(psb_dbaseprc_type), intent(inout) :: p type(psb_dbaseprc_type), intent(inout) :: p
character, intent(in) :: upd character, intent(in) :: upd
type(psb_dspmat_type), intent(in), optional :: blck type(psb_dspmat_type), intent(in), optional :: blck
end subroutine psb_dilu_bld end subroutine mld_dilu_bld
subroutine psb_zilu_bld(a,desc_data,p,upd,info,blck) subroutine mld_zilu_bld(a,desc_data,p,upd,info,blck)
use psb_base_mod use psb_base_mod
use psb_prec_type use psb_prec_type
integer, intent(out) :: info integer, intent(out) :: info
@ -358,88 +358,88 @@ module psb_prec_mod
type(psb_zbaseprc_type), intent(inout) :: p type(psb_zbaseprc_type), intent(inout) :: p
character, intent(in) :: upd character, intent(in) :: upd
type(psb_zspmat_type), intent(in), optional :: blck type(psb_zspmat_type), intent(in), optional :: blck
end subroutine psb_zilu_bld end subroutine mld_zilu_bld
end interface end interface
interface psb_sludist_bld interface mld_sludist_bld
subroutine psb_dsludist_bld(a,desc_a,p,info) subroutine mld_dsludist_bld(a,desc_a,p,info)
use psb_base_mod use psb_base_mod
use psb_prec_type use psb_prec_type
type(psb_dspmat_type), intent(inout) :: a type(psb_dspmat_type), intent(inout) :: a
type(psb_desc_type), intent(in) :: desc_a type(psb_desc_type), intent(in) :: desc_a
type(psb_dbaseprc_type), intent(inout) :: p type(psb_dbaseprc_type), intent(inout) :: p
integer, intent(out) :: info integer, intent(out) :: info
end subroutine psb_dsludist_bld end subroutine mld_dsludist_bld
subroutine psb_zsludist_bld(a,desc_a,p,info) subroutine mld_zsludist_bld(a,desc_a,p,info)
use psb_base_mod use psb_base_mod
use psb_prec_type use psb_prec_type
type(psb_zspmat_type), intent(inout) :: a type(psb_zspmat_type), intent(inout) :: a
type(psb_desc_type), intent(in) :: desc_a type(psb_desc_type), intent(in) :: desc_a
type(psb_zbaseprc_type), intent(inout) :: p type(psb_zbaseprc_type), intent(inout) :: p
integer, intent(out) :: info integer, intent(out) :: info
end subroutine psb_zsludist_bld end subroutine mld_zsludist_bld
end interface end interface
interface psb_slu_bld interface mld_slu_bld
subroutine psb_dslu_bld(a,desc_a,p,info) subroutine mld_dslu_bld(a,desc_a,p,info)
use psb_base_mod use psb_base_mod
use psb_prec_type use psb_prec_type
type(psb_dspmat_type), intent(inout) :: a type(psb_dspmat_type), intent(inout) :: a
type(psb_desc_type), intent(in) :: desc_a type(psb_desc_type), intent(in) :: desc_a
type(psb_dbaseprc_type), intent(inout) :: p type(psb_dbaseprc_type), intent(inout) :: p
integer, intent(out) :: info integer, intent(out) :: info
end subroutine psb_dslu_bld end subroutine mld_dslu_bld
subroutine psb_zslu_bld(a,desc_a,p,info) subroutine mld_zslu_bld(a,desc_a,p,info)
use psb_base_mod use psb_base_mod
use psb_prec_type use psb_prec_type
type(psb_zspmat_type), intent(inout) :: a type(psb_zspmat_type), intent(inout) :: a
type(psb_desc_type), intent(in) :: desc_a type(psb_desc_type), intent(in) :: desc_a
type(psb_zbaseprc_type), intent(inout) :: p type(psb_zbaseprc_type), intent(inout) :: p
integer, intent(out) :: info integer, intent(out) :: info
end subroutine psb_zslu_bld end subroutine mld_zslu_bld
end interface end interface
interface psb_umf_bld interface mld_umf_bld
subroutine psb_dumf_bld(a,desc_a,p,info) subroutine mld_dumf_bld(a,desc_a,p,info)
use psb_base_mod use psb_base_mod
use psb_prec_type use psb_prec_type
type(psb_dspmat_type), intent(inout) :: a type(psb_dspmat_type), intent(inout) :: a
type(psb_desc_type), intent(in) :: desc_a type(psb_desc_type), intent(in) :: desc_a
type(psb_dbaseprc_type), intent(inout) :: p type(psb_dbaseprc_type), intent(inout) :: p
integer, intent(out) :: info integer, intent(out) :: info
end subroutine psb_dumf_bld end subroutine mld_dumf_bld
subroutine psb_zumf_bld(a,desc_a,p,info) subroutine mld_zumf_bld(a,desc_a,p,info)
use psb_base_mod use psb_base_mod
use psb_prec_type use psb_prec_type
type(psb_zspmat_type), intent(in) :: a type(psb_zspmat_type), intent(in) :: a
type(psb_desc_type), intent(in) :: desc_a type(psb_desc_type), intent(in) :: desc_a
type(psb_zbaseprc_type), intent(inout) :: p type(psb_zbaseprc_type), intent(inout) :: p
integer, intent(out) :: info integer, intent(out) :: info
end subroutine psb_zumf_bld end subroutine mld_zumf_bld
end interface end interface
interface psb_ilu_fct interface mld_ilu_fct
subroutine psb_dilu_fct(a,l,u,d,info,blck) subroutine mld_dilu_fct(a,l,u,d,info,blck)
use psb_base_mod use psb_base_mod
integer, intent(out) :: info integer, intent(out) :: info
type(psb_dspmat_type),intent(in) :: a type(psb_dspmat_type),intent(in) :: a
type(psb_dspmat_type),intent(inout) :: l,u type(psb_dspmat_type),intent(inout) :: l,u
type(psb_dspmat_type),intent(in), optional, target :: blck type(psb_dspmat_type),intent(in), optional, target :: blck
real(kind(1.d0)), intent(inout) :: d(:) real(kind(1.d0)), intent(inout) :: d(:)
end subroutine psb_dilu_fct end subroutine mld_dilu_fct
subroutine psb_zilu_fct(a,l,u,d,info,blck) subroutine mld_zilu_fct(a,l,u,d,info,blck)
use psb_base_mod use psb_base_mod
integer, intent(out) :: info integer, intent(out) :: info
type(psb_zspmat_type),intent(in) :: a type(psb_zspmat_type),intent(in) :: a
type(psb_zspmat_type),intent(inout) :: l,u type(psb_zspmat_type),intent(inout) :: l,u
type(psb_zspmat_type),intent(in), optional, target :: blck type(psb_zspmat_type),intent(in), optional, target :: blck
complex(kind(1.d0)), intent(inout) :: d(:) complex(kind(1.d0)), intent(inout) :: d(:)
end subroutine psb_zilu_fct end subroutine mld_zilu_fct
end interface end interface
interface psb_asmatbld interface mld_asmat_bld
Subroutine psb_dasmatbld(ptype,novr,a,blk,desc_data,upd,desc_p,info,outfmt) Subroutine mld_dasmat_bld(ptype,novr,a,blk,desc_data,upd,desc_p,info,outfmt)
use psb_base_mod use psb_base_mod
use psb_prec_type use psb_prec_type
integer, intent(in) :: ptype,novr integer, intent(in) :: ptype,novr
@ -450,8 +450,8 @@ module psb_prec_mod
Character, Intent(in) :: upd Character, Intent(in) :: upd
integer, intent(out) :: info integer, intent(out) :: info
character(len=5), optional :: outfmt character(len=5), optional :: outfmt
end Subroutine psb_dasmatbld end Subroutine mld_dasmat_bld
Subroutine psb_zasmatbld(ptype,novr,a,blk,desc_data,upd,desc_p,info,outfmt) Subroutine mld_zasmat_bld(ptype,novr,a,blk,desc_data,upd,desc_p,info,outfmt)
use psb_base_mod use psb_base_mod
use psb_prec_type use psb_prec_type
integer, intent(in) :: ptype,novr integer, intent(in) :: ptype,novr
@ -462,11 +462,11 @@ module psb_prec_mod
Character, Intent(in) :: upd Character, Intent(in) :: upd
integer, intent(out) :: info integer, intent(out) :: info
character(len=5), optional :: outfmt character(len=5), optional :: outfmt
end Subroutine psb_zasmatbld end Subroutine mld_zasmat_bld
end interface end interface
interface psb_sp_renum interface mld_sp_renum
subroutine psb_dsp_renum(a,desc_a,blck,p,atmp,info) subroutine mld_dsp_renum(a,desc_a,blck,p,atmp,info)
use psb_base_mod use psb_base_mod
use psb_prec_type use psb_prec_type
type(psb_dspmat_type), intent(in) :: a,blck type(psb_dspmat_type), intent(in) :: a,blck
@ -474,8 +474,8 @@ module psb_prec_mod
type(psb_dbaseprc_type), intent(inout) :: p type(psb_dbaseprc_type), intent(inout) :: p
type(psb_desc_type), intent(in) :: desc_a type(psb_desc_type), intent(in) :: desc_a
integer, intent(out) :: info integer, intent(out) :: info
end subroutine psb_dsp_renum end subroutine mld_dsp_renum
subroutine psb_zsp_renum(a,desc_a,blck,p,atmp,info) subroutine mld_zsp_renum(a,desc_a,blck,p,atmp,info)
use psb_base_mod use psb_base_mod
use psb_prec_type use psb_prec_type
type(psb_zspmat_type), intent(in) :: a,blck type(psb_zspmat_type), intent(in) :: a,blck
@ -483,12 +483,12 @@ module psb_prec_mod
type(psb_zbaseprc_type), intent(inout) :: p type(psb_zbaseprc_type), intent(inout) :: p
type(psb_desc_type), intent(in) :: desc_a type(psb_desc_type), intent(in) :: desc_a
integer, intent(out) :: info integer, intent(out) :: info
end subroutine psb_zsp_renum end subroutine mld_zsp_renum
end interface end interface
interface psb_genaggrmap interface mld_aggrmap_bld
subroutine psb_dgenaggrmap(aggr_type,a,desc_a,nlaggr,ilaggr,info) subroutine mld_daggrmap_bld(aggr_type,a,desc_a,nlaggr,ilaggr,info)
use psb_base_mod use psb_base_mod
use psb_prec_type use psb_prec_type
integer, intent(in) :: aggr_type integer, intent(in) :: aggr_type
@ -496,8 +496,8 @@ module psb_prec_mod
type(psb_desc_type), intent(in) :: desc_a type(psb_desc_type), intent(in) :: desc_a
integer, allocatable :: ilaggr(:),nlaggr(:) integer, allocatable :: ilaggr(:),nlaggr(:)
integer, intent(out) :: info integer, intent(out) :: info
end subroutine psb_dgenaggrmap end subroutine mld_daggrmap_bld
subroutine psb_zgenaggrmap(aggr_type,a,desc_a,nlaggr,ilaggr,info) subroutine mld_zaggrmap_bld(aggr_type,a,desc_a,nlaggr,ilaggr,info)
use psb_base_mod use psb_base_mod
use psb_prec_type use psb_prec_type
integer, intent(in) :: aggr_type integer, intent(in) :: aggr_type
@ -505,11 +505,11 @@ module psb_prec_mod
type(psb_desc_type), intent(in) :: desc_a type(psb_desc_type), intent(in) :: desc_a
integer, allocatable :: ilaggr(:),nlaggr(:) integer, allocatable :: ilaggr(:),nlaggr(:)
integer, intent(out) :: info integer, intent(out) :: info
end subroutine psb_zgenaggrmap end subroutine mld_zaggrmap_bld
end interface end interface
interface psb_bldaggrmat interface mld_aggrmat_asb
subroutine psb_dbldaggrmat(a,desc_a,ac,desc_ac,p,info) subroutine mld_daggrmat_asb(a,desc_a,ac,desc_ac,p,info)
use psb_base_mod use psb_base_mod
use psb_prec_type use psb_prec_type
type(psb_dspmat_type), intent(in), target :: a type(psb_dspmat_type), intent(in), target :: a
@ -518,8 +518,8 @@ module psb_prec_mod
type(psb_desc_type), intent(inout) :: desc_ac type(psb_desc_type), intent(inout) :: desc_ac
type(psb_dbaseprc_type), intent(inout), target :: p type(psb_dbaseprc_type), intent(inout), target :: p
integer, intent(out) :: info integer, intent(out) :: info
end subroutine psb_dbldaggrmat end subroutine mld_daggrmat_asb
subroutine psb_zbldaggrmat(a,desc_a,ac,desc_ac,p,info) subroutine mld_zaggrmat_asb(a,desc_a,ac,desc_ac,p,info)
use psb_base_mod use psb_base_mod
use psb_prec_type use psb_prec_type
type(psb_zspmat_type), intent(in), target :: a type(psb_zspmat_type), intent(in), target :: a
@ -528,7 +528,7 @@ module psb_prec_mod
type(psb_desc_type), intent(in) :: desc_a type(psb_desc_type), intent(in) :: desc_a
type(psb_desc_type), intent(inout) :: desc_ac type(psb_desc_type), intent(inout) :: desc_ac
integer, intent(out) :: info integer, intent(out) :: info
end subroutine psb_zbldaggrmat end subroutine mld_zaggrmat_asb
end interface end interface
end module psb_prec_mod end module psb_prec_mod

@ -119,7 +119,7 @@ module psb_prec_type
! as many subdomains as there are processes (except for the coarsest level where ! as many subdomains as there are processes (except for the coarsest level where
! we might have a replicated index space). Thus the sum apparently disappears ! we might have a replicated index space). Thus the sum apparently disappears
! from our code, but only apparently, because it is implicit in the call ! from our code, but only apparently, because it is implicit in the call
! to psb_baseprc_aply. ! to mld_baseprec_aply.
! !
! A bit of description of the baseprecv(:) data structure: ! A bit of description of the baseprecv(:) data structure:
! 1. Number of levels = NLEV = size(baseprecv(:)) ! 1. Number of levels = NLEV = size(baseprecv(:))
@ -859,13 +859,13 @@ contains
if (allocated(p%iprcparm)) then if (allocated(p%iprcparm)) then
if (p%iprcparm(f_type_)==f_slu_) then if (p%iprcparm(f_type_)==f_slu_) then
call psb_dslu_free(p%iprcparm(slu_ptr_),info) call mld_dslu_free(p%iprcparm(slu_ptr_),info)
end if end if
if (p%iprcparm(f_type_)==f_slud_) then if (p%iprcparm(f_type_)==f_slud_) then
call psb_dsludist_free(p%iprcparm(slud_ptr_),info) call mld_dsludist_free(p%iprcparm(slud_ptr_),info)
end if end if
if (p%iprcparm(f_type_)==f_umf_) then if (p%iprcparm(f_type_)==f_umf_) then
call psb_dumf_free(p%iprcparm(umf_symptr_),& call mld_dumf_free(p%iprcparm(umf_symptr_),&
& p%iprcparm(umf_numptr_),info) & p%iprcparm(umf_numptr_),info)
end if end if
deallocate(p%iprcparm,stat=info) deallocate(p%iprcparm,stat=info)
@ -942,10 +942,10 @@ contains
if (allocated(p%iprcparm)) then if (allocated(p%iprcparm)) then
if (p%iprcparm(f_type_)==f_slu_) then if (p%iprcparm(f_type_)==f_slu_) then
call psb_zslu_free(p%iprcparm(slu_ptr_),info) call mld_zslu_free(p%iprcparm(slu_ptr_),info)
end if end if
if (p%iprcparm(f_type_)==f_umf_) then if (p%iprcparm(f_type_)==f_umf_) then
call psb_zumf_free(p%iprcparm(umf_symptr_),& call mld_zumf_free(p%iprcparm(umf_symptr_),&
& p%iprcparm(umf_numptr_),info) & p%iprcparm(umf_numptr_),info)
end if end if
deallocate(p%iprcparm,stat=info) deallocate(p%iprcparm,stat=info)

@ -132,7 +132,7 @@ psb_dumf_factor_(int *n, int *nnz,
if ( *info == UMFPACK_OK ) { if ( *info == UMFPACK_OK ) {
*info = 0; *info = 0;
} else { } else {
printf("umfpack_di_symbolic() returned INFO= %d\n", *info); printf("umfpack_di_symbolic() error returns INFO= %d\n", *info);
*info = -11; *info = -11;
*numptr = (fptr) NULL; *numptr = (fptr) NULL;
return; return;
@ -148,7 +148,7 @@ psb_dumf_factor_(int *n, int *nnz,
*info = 0; *info = 0;
*numptr = (fptr) Numeric; *numptr = (fptr) Numeric;
} else { } else {
printf("umfpack_di_numeric() returned INFO= %d\n", *info); printf("umfpack_di_numeric() error returns INFO= %d\n", *info);
*info = -12; *info = -12;
*numptr = (fptr) NULL; *numptr = (fptr) NULL;
} }

@ -102,7 +102,7 @@ subroutine psb_zprecbld(a,desc_a,p,info,upd)
goto 9999 goto 9999
endif endif
call psb_baseprc_bld(a,desc_a,p%baseprecv(1),info,iupd) call mld_baseprc_bld(a,desc_a,p%baseprecv(1),info,iupd)
else else
info=4010 info=4010
@ -123,7 +123,7 @@ subroutine psb_zprecbld(a,desc_a,p,info,upd)
goto 9999 goto 9999
endif endif
call psb_mlprc_bld(p%baseprecv(i-1)%base_a,p%baseprecv(i-1)%base_desc,& call mld_mlprec_bld(p%baseprecv(i-1)%base_a,p%baseprecv(i-1)%base_desc,&
& p%baseprecv(i),info) & p%baseprecv(i),info)
if (info /= 0) then if (info /= 0) then
info=4010 info=4010

@ -37,9 +37,10 @@
subroutine psb_zprecseti(p,what,val,info,ilev) subroutine psb_zprecseti(p,what,val,info,ilev)
use psb_base_mod use psb_base_mod
use psb_prec_mod, psb_protect_name => psb_zprecseti use psb_prec_mod, mld_protect_name => psb_zprecseti
implicit none implicit none
type(psb_zprec_type), intent(inout) :: p type(psb_zprec_type), intent(inout) :: p
integer, intent(in) :: what integer, intent(in) :: what
integer, intent(in) :: val integer, intent(in) :: val
@ -99,7 +100,7 @@ end subroutine psb_zprecseti
subroutine psb_zprecsetd(p,what,val,info,ilev) subroutine psb_zprecsetd(p,what,val,info,ilev)
use psb_base_mod use psb_base_mod
use psb_prec_mod, psb_protect_name => psb_zprecsetd use psb_prec_mod, mld_protect_name => psb_zprecsetd
implicit none implicit none
type(psb_zprec_type), intent(inout) :: p type(psb_zprec_type), intent(inout) :: p

Loading…
Cancel
Save