diff --git a/mlprec/mld_z_umf_solver.f90 b/mlprec/mld_z_umf_solver.f90 index c058942f..8011e788 100644 --- a/mlprec/mld_z_umf_solver.f90 +++ b/mlprec/mld_z_umf_solver.f90 @@ -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,& diff --git a/mlprec/mld_zmlprec_bld.f90 b/mlprec/mld_zmlprec_bld.f90 index bf9446e6..eb9fbed8 100644 --- a/mlprec/mld_zmlprec_bld.f90 +++ b/mlprec/mld_zmlprec_bld.f90 @@ -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