mirror of
https://github.com/sfilippone/amg4psblas.git
synced 2026-10-06 22:55:12 +00:00
mld2p4-2:
mlprec/mld_z_umf_solver.f90 mlprec/mld_zmlprec_bld.f90 Fixed UMFPACK interfacing for double complex.
This commit is contained in:
@@ -49,12 +49,8 @@ module mld_z_umf_solver
|
||||
use mld_z_prec_type
|
||||
|
||||
type, extends(mld_z_base_solver_type) :: mld_z_umf_solver_type
|
||||
!!$ type(psb_dspmat_type) :: l, u
|
||||
!!$ real(psb_dpk_), allocatable :: d(:)
|
||||
type(c_ptr) :: symbolic=c_null_ptr, numeric=c_null_ptr
|
||||
integer(c_long_long) :: symbsize=0, numsize=0
|
||||
!!$ integer :: fact_type, fill_in
|
||||
!!$ real(psb_dpk_) :: thresh
|
||||
contains
|
||||
procedure, pass(sv) :: build => z_umf_solver_bld
|
||||
procedure, pass(sv) :: apply => z_umf_solver_apply
|
||||
@@ -231,7 +227,7 @@ contains
|
||||
nrow_a = acsc%get_nrows()
|
||||
nztota = acsc%get_nzeros()
|
||||
! Fix the entres to call C-base UMFPACK.
|
||||
acsc%ia(:) = acsc%ia(:) - 1
|
||||
acsc%ia(:) = acsc%ia(:) - 1
|
||||
acsc%icp(:) = acsc%icp(:) - 1
|
||||
info = mld_zumf_fact(nrow_a,nztota,acsc%val,&
|
||||
& acsc%ia,acsc%icp,sv%symbolic,sv%numeric,&
|
||||
|
||||
@@ -73,6 +73,7 @@ subroutine mld_zmlprec_bld(a,desc_a,p,info)
|
||||
use mld_z_as_smoother
|
||||
use mld_z_diag_solver
|
||||
use mld_z_ilu_solver
|
||||
use mld_z_umf_solver
|
||||
|
||||
Implicit None
|
||||
|
||||
@@ -358,6 +359,8 @@ subroutine mld_zmlprec_bld(a,desc_a,p,info)
|
||||
& p%precv(i)%prec%rprcparm(mld_sub_iluthrs_),info)
|
||||
case(mld_diag_scale_)
|
||||
allocate(mld_z_diag_solver_type :: p%precv(i)%sm%sv, stat=info)
|
||||
case(mld_umf_)
|
||||
allocate(mld_z_umf_solver_type :: p%precv(i)%sm%sv, stat=info)
|
||||
case default
|
||||
info = -1
|
||||
end select
|
||||
|
||||
Reference in New Issue
Block a user