Change and use #define with PSB_ and AMG_ prefixes

cmake
sfilippone 1 year ago
parent ac7d7373e6
commit 6fa5b04387

@ -45,7 +45,7 @@ cleanlib:
(cd modules; /bin/rm -f *.a *$(.mod) *$(.fh))
distclean: clean samplesclean
/bin/rm -fr Make.inc
/bin/rm -fr Make.inc amgprec/amg_config.h
samplesclean: clean
(cd samples/simple/fileread && $(MAKE) clean)

@ -66,7 +66,7 @@ LIBNAME=libamg_prec.a
all: objs impld
objs: $(OBJS)
/bin/cp -p amg_const.h $(INCDIR)
/bin/cp -p amg_const.h amg_config.h $(INCDIR)
/bin/cp -p *$(.mod) $(MODDIR)
impld: objs

@ -55,10 +55,6 @@ module amg_base_ainv_mod
integer, parameter :: amg_ainv_llk_noth_ = amg_ainv_s_ft_llk_ + 1
integer, parameter :: amg_ainv_mlk_ = amg_ainv_llk_noth_ + 1
integer, parameter :: amg_ainv_lmx_ = amg_ainv_mlk_
#if defined(HAVE_TUMA_SAINV)
integer, parameter :: amg_ainv_s_tuma_ = amg_ainv_lmx_ + 1
integer, parameter :: amg_ainv_l_tuma_ = amg_ainv_s_tuma_ + 1
#endif
end module amg_base_ainv_mod

@ -52,10 +52,10 @@
!
module amg_c_mumps_solver
use amg_c_base_solver_mod
#if defined(HAVE_MUMPS_) && defined(HAVE_MUMPS_MODULES_)
#if defined(AMG_HAVE_MUMPS) && defined(AMG_HAVE_MUMPS_MODULES)
use cmumps_struc_def
#endif
#if defined(HAVE_MUMPS_) && defined(HAVE_MUMPS_INCLUDES_)
#if defined(AMG_HAVE_MUMPS) && defined(AMG_HAVE_MUMPS_INCLUDES)
include 'cmumps_struc.h'
#endif
@ -68,7 +68,7 @@ module amg_c_mumps_solver
end type amg_c_mumps_rcntl_item
type, extends(amg_c_base_solver_type) :: amg_c_mumps_solver_type
#if defined(HAVE_MUMPS_)
#if defined(AMG_HAVE_MUMPS)
type(cmumps_struc), allocatable :: id
#else
integer, allocatable :: id
@ -189,7 +189,7 @@ contains
info = 0
#if defined(HAVE_MUMPS_)
#if defined(AMG_HAVE_MUMPS)
call psb_erractionsave(err_act)
@ -239,7 +239,7 @@ contains
character(len=20) :: name='c_mumps_solver_clear_data'
info = 0
#if defined(HAVE_MUMPS_)
#if defined(AMG_HAVE_MUMPS)
call psb_erractionsave(err_act)
if (allocated(sv%id)) then
if (sv%built) then
@ -279,7 +279,7 @@ contains
character(len=20) :: name='c_mumps_solver_free'
info = 0
#if defined(HAVE_MUMPS_)
#if defined(AMG_HAVE_MUMPS)
call psb_erractionsave(err_act)
call sv%clear_data(info)
if ((info == 0).and.allocated(sv%icntl)) deallocate(sv%icntl,stat=info)
@ -383,7 +383,7 @@ subroutine c_mumps_solver_csetc(sv,what,val,info,idx)
select case(psb_toupper(trim(what)))
#if defined(HAVE_MUMPS_)
#if defined(AMG_HAVE_MUMPS)
case('MUMPS_LOC_GLOB')
sv%ipar(1) = sv%stringval(psb_toupper(trim(val)))
#endif
@ -421,7 +421,7 @@ subroutine c_mumps_solver_cseti(sv,what,val,info,idx)
call psb_erractionsave(err_act)
select case(psb_toupper(what))
#if defined(HAVE_MUMPS_)
#if defined(AMG_HAVE_MUMPS)
case('MUMPS_LOC_GLOB')
sv%ipar(1) = val
case('MUMPS_PRINT_ERR')
@ -467,7 +467,7 @@ subroutine c_mumps_solver_csetr(sv,what,val,info,idx)
call psb_erractionsave(err_act)
select case(psb_toupper(what))
#if defined(HAVE_MUMPS_)
#if defined(AMG_HAVE_MUMPS)
case('MUMPS_RPAR_ENTRY')
if(present(idx)) then
! Note: this will allocate %item
@ -504,7 +504,7 @@ subroutine c_mumps_solver_default(sv)
info = psb_success_
call psb_erractionsave(err_act)
#if defined(HAVE_MUMPS_)
#if defined(AMG_HAVE_MUMPS)
if (.not.allocated(sv%id)) then
allocate(sv%id,stat=info)
if (info /= psb_success_) then
@ -561,7 +561,7 @@ function c_mumps_solver_sizeof(sv) result(val)
class(amg_c_mumps_solver_type), intent(in) :: sv
integer(psb_epk_) :: val
integer :: i
#if defined(HAVE_MUMPS_)
#if defined(AMG_HAVE_MUMPS)
val = (sv%id%INFOG(22)+sv%id%INFOG(32))*1d+6
#else
val = 0

@ -51,7 +51,7 @@ module amg_c_slu_solver
use iso_c_binding
use amg_c_base_solver_mod
#if defined(IPK8)
#if defined(PSB_IPK8)
type, extends(amg_c_base_solver_type) :: amg_c_slu_solver_type

@ -52,10 +52,10 @@
!
module amg_d_mumps_solver
use amg_d_base_solver_mod
#if defined(HAVE_MUMPS_) && defined(HAVE_MUMPS_MODULES_)
#if defined(AMG_HAVE_MUMPS) && defined(AMG_HAVE_MUMPS_MODULES)
use dmumps_struc_def
#endif
#if defined(HAVE_MUMPS_) && defined(HAVE_MUMPS_INCLUDES_)
#if defined(AMG_HAVE_MUMPS) && defined(AMG_HAVE_MUMPS_INCLUDES)
include 'dmumps_struc.h'
#endif
@ -68,7 +68,7 @@ module amg_d_mumps_solver
end type amg_d_mumps_rcntl_item
type, extends(amg_d_base_solver_type) :: amg_d_mumps_solver_type
#if defined(HAVE_MUMPS_)
#if defined(AMG_HAVE_MUMPS)
type(dmumps_struc), allocatable :: id
#else
integer, allocatable :: id
@ -189,7 +189,7 @@ contains
info = 0
#if defined(HAVE_MUMPS_)
#if defined(AMG_HAVE_MUMPS)
call psb_erractionsave(err_act)
@ -239,7 +239,7 @@ contains
character(len=20) :: name='d_mumps_solver_clear_data'
info = 0
#if defined(HAVE_MUMPS_)
#if defined(AMG_HAVE_MUMPS)
call psb_erractionsave(err_act)
if (allocated(sv%id)) then
if (sv%built) then
@ -279,7 +279,7 @@ contains
character(len=20) :: name='d_mumps_solver_free'
info = 0
#if defined(HAVE_MUMPS_)
#if defined(AMG_HAVE_MUMPS)
call psb_erractionsave(err_act)
call sv%clear_data(info)
if ((info == 0).and.allocated(sv%icntl)) deallocate(sv%icntl,stat=info)
@ -383,7 +383,7 @@ subroutine d_mumps_solver_csetc(sv,what,val,info,idx)
select case(psb_toupper(trim(what)))
#if defined(HAVE_MUMPS_)
#if defined(AMG_HAVE_MUMPS)
case('MUMPS_LOC_GLOB')
sv%ipar(1) = sv%stringval(psb_toupper(trim(val)))
#endif
@ -421,7 +421,7 @@ subroutine d_mumps_solver_cseti(sv,what,val,info,idx)
call psb_erractionsave(err_act)
select case(psb_toupper(what))
#if defined(HAVE_MUMPS_)
#if defined(AMG_HAVE_MUMPS)
case('MUMPS_LOC_GLOB')
sv%ipar(1) = val
case('MUMPS_PRINT_ERR')
@ -467,7 +467,7 @@ subroutine d_mumps_solver_csetr(sv,what,val,info,idx)
call psb_erractionsave(err_act)
select case(psb_toupper(what))
#if defined(HAVE_MUMPS_)
#if defined(AMG_HAVE_MUMPS)
case('MUMPS_RPAR_ENTRY')
if(present(idx)) then
! Note: this will allocate %item
@ -504,7 +504,7 @@ subroutine d_mumps_solver_default(sv)
info = psb_success_
call psb_erractionsave(err_act)
#if defined(HAVE_MUMPS_)
#if defined(AMG_HAVE_MUMPS)
if (.not.allocated(sv%id)) then
allocate(sv%id,stat=info)
if (info /= psb_success_) then
@ -561,7 +561,7 @@ function d_mumps_solver_sizeof(sv) result(val)
class(amg_d_mumps_solver_type), intent(in) :: sv
integer(psb_epk_) :: val
integer :: i
#if defined(HAVE_MUMPS_)
#if defined(AMG_HAVE_MUMPS)
val = (sv%id%INFOG(22)+sv%id%INFOG(32))*1d+6
#else
val = 0

@ -119,7 +119,7 @@
module amg_d_parmatch_aggregator_mod
use amg_d_base_aggregator_mod
use amg_d_matchboxp_mod
#if defined(SERIAL_MPI)
#if defined(PSB_SERIAL_MPI)
type, extends(amg_d_base_aggregator_type) :: amg_d_parmatch_aggregator_type
end type amg_d_parmatch_aggregator_type
#else

@ -51,7 +51,7 @@ module amg_d_slu_solver
use iso_c_binding
use amg_d_base_solver_mod
#if defined(IPK8)
#if defined(PSB_IPK8)
type, extends(amg_d_base_solver_type) :: amg_d_slu_solver_type

@ -52,7 +52,7 @@ module amg_d_sludist_solver
use iso_c_binding
use amg_d_base_solver_mod
#if (!defined(HAVE_SLUDIST_)) || defined(IPK8)
#if (!defined(PSB_HAVE_SLUDIST)) || defined(PSB_IPK8)
type, extends(amg_d_base_solver_type) :: amg_d_sludist_solver_type

@ -51,7 +51,7 @@ module amg_d_umf_solver
use iso_c_binding
use amg_d_base_solver_mod
#if defined(IPK8)
#if defined(PSB_IPK8)
type, extends(amg_d_base_solver_type) :: amg_d_umf_solver_type
end type amg_d_umf_solver_type

@ -52,10 +52,10 @@
!
module amg_s_mumps_solver
use amg_s_base_solver_mod
#if defined(HAVE_MUMPS_) && defined(HAVE_MUMPS_MODULES_)
#if defined(AMG_HAVE_MUMPS) && defined(AMG_HAVE_MUMPS_MODULES)
use smumps_struc_def
#endif
#if defined(HAVE_MUMPS_) && defined(HAVE_MUMPS_INCLUDES_)
#if defined(AMG_HAVE_MUMPS) && defined(AMG_HAVE_MUMPS_INCLUDES)
include 'smumps_struc.h'
#endif
@ -68,7 +68,7 @@ module amg_s_mumps_solver
end type amg_s_mumps_rcntl_item
type, extends(amg_s_base_solver_type) :: amg_s_mumps_solver_type
#if defined(HAVE_MUMPS_)
#if defined(AMG_HAVE_MUMPS)
type(smumps_struc), allocatable :: id
#else
integer, allocatable :: id
@ -189,7 +189,7 @@ contains
info = 0
#if defined(HAVE_MUMPS_)
#if defined(AMG_HAVE_MUMPS)
call psb_erractionsave(err_act)
@ -239,7 +239,7 @@ contains
character(len=20) :: name='s_mumps_solver_clear_data'
info = 0
#if defined(HAVE_MUMPS_)
#if defined(AMG_HAVE_MUMPS)
call psb_erractionsave(err_act)
if (allocated(sv%id)) then
if (sv%built) then
@ -279,7 +279,7 @@ contains
character(len=20) :: name='s_mumps_solver_free'
info = 0
#if defined(HAVE_MUMPS_)
#if defined(AMG_HAVE_MUMPS)
call psb_erractionsave(err_act)
call sv%clear_data(info)
if ((info == 0).and.allocated(sv%icntl)) deallocate(sv%icntl,stat=info)
@ -383,7 +383,7 @@ subroutine s_mumps_solver_csetc(sv,what,val,info,idx)
select case(psb_toupper(trim(what)))
#if defined(HAVE_MUMPS_)
#if defined(AMG_HAVE_MUMPS)
case('MUMPS_LOC_GLOB')
sv%ipar(1) = sv%stringval(psb_toupper(trim(val)))
#endif
@ -421,7 +421,7 @@ subroutine s_mumps_solver_cseti(sv,what,val,info,idx)
call psb_erractionsave(err_act)
select case(psb_toupper(what))
#if defined(HAVE_MUMPS_)
#if defined(AMG_HAVE_MUMPS)
case('MUMPS_LOC_GLOB')
sv%ipar(1) = val
case('MUMPS_PRINT_ERR')
@ -467,7 +467,7 @@ subroutine s_mumps_solver_csetr(sv,what,val,info,idx)
call psb_erractionsave(err_act)
select case(psb_toupper(what))
#if defined(HAVE_MUMPS_)
#if defined(AMG_HAVE_MUMPS)
case('MUMPS_RPAR_ENTRY')
if(present(idx)) then
! Note: this will allocate %item
@ -504,7 +504,7 @@ subroutine s_mumps_solver_default(sv)
info = psb_success_
call psb_erractionsave(err_act)
#if defined(HAVE_MUMPS_)
#if defined(AMG_HAVE_MUMPS)
if (.not.allocated(sv%id)) then
allocate(sv%id,stat=info)
if (info /= psb_success_) then
@ -561,7 +561,7 @@ function s_mumps_solver_sizeof(sv) result(val)
class(amg_s_mumps_solver_type), intent(in) :: sv
integer(psb_epk_) :: val
integer :: i
#if defined(HAVE_MUMPS_)
#if defined(AMG_HAVE_MUMPS)
val = (sv%id%INFOG(22)+sv%id%INFOG(32))*1d+6
#else
val = 0

@ -119,7 +119,7 @@
module amg_s_parmatch_aggregator_mod
use amg_s_base_aggregator_mod
use amg_s_matchboxp_mod
#if defined(SERIAL_MPI)
#if defined(PSB_SERIAL_MPI)
type, extends(amg_s_base_aggregator_type) :: amg_s_parmatch_aggregator_type
end type amg_s_parmatch_aggregator_type
#else

@ -51,7 +51,7 @@ module amg_s_slu_solver
use iso_c_binding
use amg_s_base_solver_mod
#if defined(IPK8)
#if defined(PSB_IPK8)
type, extends(amg_s_base_solver_type) :: amg_s_slu_solver_type

@ -52,10 +52,10 @@
!
module amg_z_mumps_solver
use amg_z_base_solver_mod
#if defined(HAVE_MUMPS_) && defined(HAVE_MUMPS_MODULES_)
#if defined(AMG_HAVE_MUMPS) && defined(AMG_HAVE_MUMPS_MODULES)
use zmumps_struc_def
#endif
#if defined(HAVE_MUMPS_) && defined(HAVE_MUMPS_INCLUDES_)
#if defined(AMG_HAVE_MUMPS) && defined(AMG_HAVE_MUMPS_INCLUDES)
include 'zmumps_struc.h'
#endif
@ -68,7 +68,7 @@ module amg_z_mumps_solver
end type amg_z_mumps_rcntl_item
type, extends(amg_z_base_solver_type) :: amg_z_mumps_solver_type
#if defined(HAVE_MUMPS_)
#if defined(AMG_HAVE_MUMPS)
type(zmumps_struc), allocatable :: id
#else
integer, allocatable :: id
@ -189,7 +189,7 @@ contains
info = 0
#if defined(HAVE_MUMPS_)
#if defined(AMG_HAVE_MUMPS)
call psb_erractionsave(err_act)
@ -239,7 +239,7 @@ contains
character(len=20) :: name='z_mumps_solver_clear_data'
info = 0
#if defined(HAVE_MUMPS_)
#if defined(AMG_HAVE_MUMPS)
call psb_erractionsave(err_act)
if (allocated(sv%id)) then
if (sv%built) then
@ -279,7 +279,7 @@ contains
character(len=20) :: name='z_mumps_solver_free'
info = 0
#if defined(HAVE_MUMPS_)
#if defined(AMG_HAVE_MUMPS)
call psb_erractionsave(err_act)
call sv%clear_data(info)
if ((info == 0).and.allocated(sv%icntl)) deallocate(sv%icntl,stat=info)
@ -383,7 +383,7 @@ subroutine z_mumps_solver_csetc(sv,what,val,info,idx)
select case(psb_toupper(trim(what)))
#if defined(HAVE_MUMPS_)
#if defined(AMG_HAVE_MUMPS)
case('MUMPS_LOC_GLOB')
sv%ipar(1) = sv%stringval(psb_toupper(trim(val)))
#endif
@ -421,7 +421,7 @@ subroutine z_mumps_solver_cseti(sv,what,val,info,idx)
call psb_erractionsave(err_act)
select case(psb_toupper(what))
#if defined(HAVE_MUMPS_)
#if defined(AMG_HAVE_MUMPS)
case('MUMPS_LOC_GLOB')
sv%ipar(1) = val
case('MUMPS_PRINT_ERR')
@ -467,7 +467,7 @@ subroutine z_mumps_solver_csetr(sv,what,val,info,idx)
call psb_erractionsave(err_act)
select case(psb_toupper(what))
#if defined(HAVE_MUMPS_)
#if defined(AMG_HAVE_MUMPS)
case('MUMPS_RPAR_ENTRY')
if(present(idx)) then
! Note: this will allocate %item
@ -504,7 +504,7 @@ subroutine z_mumps_solver_default(sv)
info = psb_success_
call psb_erractionsave(err_act)
#if defined(HAVE_MUMPS_)
#if defined(AMG_HAVE_MUMPS)
if (.not.allocated(sv%id)) then
allocate(sv%id,stat=info)
if (info /= psb_success_) then
@ -561,7 +561,7 @@ function z_mumps_solver_sizeof(sv) result(val)
class(amg_z_mumps_solver_type), intent(in) :: sv
integer(psb_epk_) :: val
integer :: i
#if defined(HAVE_MUMPS_)
#if defined(AMG_HAVE_MUMPS)
val = (sv%id%INFOG(22)+sv%id%INFOG(32))*1d+6
#else
val = 0

@ -51,7 +51,7 @@ module amg_z_slu_solver
use iso_c_binding
use amg_z_base_solver_mod
#if defined(IPK8)
#if defined(PSB_IPK8)
type, extends(amg_z_base_solver_type) :: amg_z_slu_solver_type

@ -52,7 +52,7 @@ module amg_z_sludist_solver
use iso_c_binding
use amg_z_base_solver_mod
#if (!defined(HAVE_SLUDIST_)) || defined(IPK8)
#if (!defined(PSB_HAVE_SLUDIST)) || defined(PSB_IPK8)
type, extends(amg_z_base_solver_type) :: amg_z_sludist_solver_type

@ -51,7 +51,7 @@ module amg_z_umf_solver
use iso_c_binding
use amg_z_base_solver_mod
#if defined(IPK8)
#if defined(PSB_IPK8)
type, extends(amg_z_base_solver_type) :: amg_z_umf_solver_type
end type amg_z_umf_solver_type

@ -5,6 +5,7 @@ MODDIR=../../modules
HERE=..
FINCLUDES=$(FMFLAG)$(HERE) $(FMFLAG)$(MODDIR) $(FMFLAG)$(INCDIR) $(PSBLAS_INCLUDES)
CINCLUDES=-I. -I.. -I$(PSBLAS_INCDIR)

@ -72,7 +72,7 @@ subroutine amg_c_soc1_map_bld(iorder,theta,clean_zeros,a,desc_a,nlaggr,ilaggr,in
use psb_base_mod
use amg_base_prec_type
use amg_c_inner_mod
#if defined(OPENMP)
#if defined(PSB_OPENMP)
use omp_lib
#endif
implicit none
@ -172,7 +172,7 @@ subroutine amg_c_soc1_map_bld(iorder,theta,clean_zeros,a,desc_a,nlaggr,ilaggr,in
! Phase one: Start with disjoint groups.
!
naggr = 0
#if defined(OPENMP)
#if defined(PSB_OPENMP)
block
integer(psb_ipk_), allocatable :: bnds(:), locnaggr(:)
integer(psb_ipk_) :: myth,nths, kk

@ -71,7 +71,7 @@ subroutine amg_c_soc2_map_bld(iorder,theta,clean_zeros,a,desc_a,nlaggr,ilaggr,in
use psb_base_mod
use amg_base_prec_type
use amg_c_inner_mod
#if defined(OPENMP)
#if defined(PSB_OPENMP)
use omp_lib
#endif
@ -211,7 +211,7 @@ subroutine amg_c_soc2_map_bld(iorder,theta,clean_zeros,a,desc_a,nlaggr,ilaggr,in
! Phase one: Start with disjoint groups.
!
naggr = 0
#if defined(OPENMP)
#if defined(PSB_OPENMP)
block
integer(psb_ipk_), allocatable :: bnds(:), locnaggr(:)
integer(psb_ipk_) :: myth,nths, kk

@ -98,7 +98,7 @@ subroutine amg_d_parmatch_aggregator_inner_mat_asb(ag,parms,a,desc_a,&
& ac,desc_ac, op_prol,op_restr,info)
use psb_base_mod
use amg_base_prec_type
#if defined(SERIAL_MPI)
#if defined(PSB_SERIAL_MPI)
use amg_d_parmatch_aggregator_mod
#else
use amg_d_parmatch_aggregator_mod, amg_protect_name => amg_d_parmatch_aggregator_inner_mat_asb
@ -133,7 +133,7 @@ subroutine amg_d_parmatch_aggregator_inner_mat_asb(ag,parms,a,desc_a,&
ictxt = desc_a%get_context()
call psb_info(ictxt,me,np)
#if !defined(SERIAL_MPI)
#if !defined(PSB_SERIAL_MPI)
if (debug) write(0,*) me,' ',trim(name),' Start:',&
& allocated(ag%ac),allocated(ag%desc_ac), allocated(ag%prol),allocated(ag%restr)

@ -98,7 +98,7 @@ subroutine amg_d_parmatch_aggregator_mat_asb(ag,parms,a,desc_a,&
& ac,desc_ac, op_prol,op_restr,info)
use psb_base_mod
use amg_base_prec_type
#if defined(SERIAL_MPI)
#if defined(PSB_SERIAL_MPI)
use amg_d_parmatch_aggregator_mod
#else
use amg_d_parmatch_aggregator_mod, amg_protect_name => amg_d_parmatch_aggregator_mat_asb
@ -136,7 +136,7 @@ subroutine amg_d_parmatch_aggregator_mat_asb(ag,parms,a,desc_a,&
end if
#if !defined(SERIAL_MPI)
#if !defined(PSB_SERIAL_MPI)
if (debug) write(0,*) me,' ',trim(name),' Start:',&
& allocated(ag%ac),allocated(ag%desc_ac), allocated(ag%prol),allocated(ag%restr)

@ -135,7 +135,7 @@ subroutine amg_d_parmatch_aggregator_mat_bld(ag,parms,a,desc_a,ilaggr,nlaggr,&
use psb_base_mod
use amg_d_inner_mod
use amg_base_prec_type
#if defined(SERIAL_MPI)
#if defined(PSB_SERIAL_MPI)
use amg_d_parmatch_aggregator_mod
#else
use amg_d_parmatch_aggregator_mod, amg_protect_name => amg_d_parmatch_aggregator_mat_bld
@ -176,7 +176,7 @@ subroutine amg_d_parmatch_aggregator_mat_bld(ag,parms,a,desc_a,ilaggr,nlaggr,&
! algorithm specified by
!
#if !defined(SERIAL_MPI)
#if !defined(PSB_SERIAL_MPI)
call clean_shortcuts(ag)
!
! When requesting smoothed aggregation we cannot use the
@ -219,7 +219,7 @@ subroutine amg_d_parmatch_aggregator_mat_bld(ag,parms,a,desc_a,ilaggr,nlaggr,&
9999 call psb_error_handler(err_act)
return
#if !defined(SERIAL_MPI)
#if !defined(PSB_SERIAL_MPI)
contains
subroutine clean_shortcuts(ag)

@ -47,7 +47,7 @@ subroutine amg_d_parmatch_aggregator_build_tprol(ag,parms,ag_data,&
use psb_base_mod
use amg_base_prec_type
use amg_d_inner_mod
#if defined(SERIAL_MPI)
#if defined(PSB_SERIAL_MPI)
use amg_d_parmatch_aggregator_mod
#else
use amg_d_parmatch_aggregator_mod, amg_protect_name => amg_d_parmatch_aggregator_build_tprol
@ -120,7 +120,7 @@ subroutine amg_d_parmatch_aggregator_build_tprol(ag,parms,ag_data,&
& amg_aggr_ord_nat_,is_legal_ml_aggr_ord)
call amg_check_def(parms%aggr_thresh,'Aggr_Thresh',dzero,is_legal_d_aggr_thrs)
#if !defined(SERIAL_MPI)
#if !defined(PSB_SERIAL_MPI)
match_algorithm = ag%matching_alg
n_sweeps = ag%n_sweeps

@ -110,7 +110,7 @@ subroutine amg_d_parmatch_smth_bld(dol1smoothing,ag,a,desc_a,ilaggr,nlaggr,&
use amg_base_prec_type
use amg_d_inner_mod
use amg_d_base_aggregator_mod
#if defined(SERIAL_MPI)
#if defined(PSB_SERIAL_MPI)
use amg_d_parmatch_aggregator_mod
#else
use amg_d_parmatch_aggregator_mod, amg_protect_name => amg_d_parmatch_smth_bld
@ -194,7 +194,7 @@ subroutine amg_d_parmatch_smth_bld(dol1smoothing,ag,a,desc_a,ilaggr,nlaggr,&
if (do_timings) call psb_tic(idx_phase1)
#if !defined(SERIAL_MPI)
#if !defined(PSB_SERIAL_MPI)
naggr = nlaggr(me+1)
ntaggr = sum(nlaggr)

@ -99,7 +99,7 @@ subroutine amg_d_parmatch_spmm_bld(a,desc_a,ilaggr,nlaggr,parms,&
& ac,desc_ac,op_prol,op_restr,t_prol,info)
use psb_base_mod
use amg_d_inner_mod
#if defined(SERIAL_MPI)
#if defined(PSB_SERIAL_MPI)
use amg_d_parmatch_aggregator_mod
#else
use amg_d_parmatch_aggregator_mod, amg_protect_name => amg_d_parmatch_spmm_bld
@ -140,7 +140,7 @@ subroutine amg_d_parmatch_spmm_bld(a,desc_a,ilaggr,nlaggr,parms,&
debug_unit = psb_get_debug_unit()
debug_level = psb_get_debug_level()
#if !defined(SERIAL_MPI)
#if !defined(PSB_SERIAL_MPI)
call a%cp_to(acsr)
call amg_d_parmatch_spmm_bld_inner(acsr,desc_a,ilaggr,nlaggr,parms,&

@ -99,7 +99,7 @@ subroutine amg_d_parmatch_spmm_bld_inner(a_csr,desc_a,ilaggr,nlaggr,parms,&
& ac,desc_ac,op_prol,op_restr,t_prol,info)
use psb_base_mod
use amg_d_inner_mod
#if defined(SERIAL_MPI)
#if defined(PSB_SERIAL_MPI)
use amg_d_parmatch_aggregator_mod
#else
use amg_d_parmatch_aggregator_mod, amg_protect_name => amg_d_parmatch_spmm_bld_inner
@ -163,7 +163,7 @@ subroutine amg_d_parmatch_spmm_bld_inner(a_csr,desc_a,ilaggr,nlaggr,parms,&
naggrm1 = sum(nlaggr(1:me))
naggrp1 = sum(nlaggr(1:me+1))
#if !defined(SERIAL_MPI)
#if !defined(PSB_SERIAL_MPI)
!
! Here T_PROL should be arriving with GLOBAL indices on the cols
! and LOCAL indices on the rows.

@ -99,7 +99,7 @@ subroutine amg_d_parmatch_spmm_bld_ov(a,desc_a,ilaggr,nlaggr,parms,&
& ac,desc_ac,op_prol,op_restr,t_prol,info)
use psb_base_mod
use amg_d_inner_mod
#if defined(SERIAL_MPI)
#if defined(PSB_SERIAL_MPI)
use amg_d_parmatch_aggregator_mod
#else
use amg_d_parmatch_aggregator_mod, amg_protect_name => amg_d_parmatch_spmm_bld_ov
@ -141,7 +141,7 @@ subroutine amg_d_parmatch_spmm_bld_ov(a,desc_a,ilaggr,nlaggr,parms,&
debug_unit = psb_get_debug_unit()
debug_level = psb_get_debug_level()
#if !defined(SERIAL_MPI)
#if !defined(PSB_SERIAL_MPI)
call a%mv_to(acsr)

@ -109,7 +109,7 @@ subroutine amg_d_parmatch_unsmth_bld(dol1smoothing,ag,a,desc_a,ilaggr,nlaggr,&
use amg_base_prec_type
use amg_d_inner_mod
use amg_d_base_aggregator_mod
#if defined(SERIAL_MPI)
#if defined(PSB_SERIAL_MPI)
use amg_d_parmatch_aggregator_mod
#else
use amg_d_parmatch_aggregator_mod, amg_protect_name => amg_d_parmatch_unsmth_bld
@ -168,7 +168,7 @@ subroutine amg_d_parmatch_unsmth_bld(dol1smoothing,ag,a,desc_a,ilaggr,nlaggr,&
goto 9999
end if
#if !defined(SERIAL_MPI)
#if !defined(PSB_SERIAL_MPI)
nglob = desc_a%get_global_rows()
nrow = desc_a%get_local_rows()
ncol = desc_a%get_local_cols()

@ -72,7 +72,7 @@ subroutine amg_d_soc1_map_bld(iorder,theta,clean_zeros,a,desc_a,nlaggr,ilaggr,in
use psb_base_mod
use amg_base_prec_type
use amg_d_inner_mod
#if defined(OPENMP)
#if defined(PSB_OPENMP)
use omp_lib
#endif
implicit none
@ -172,7 +172,7 @@ subroutine amg_d_soc1_map_bld(iorder,theta,clean_zeros,a,desc_a,nlaggr,ilaggr,in
! Phase one: Start with disjoint groups.
!
naggr = 0
#if defined(OPENMP)
#if defined(PSB_OPENMP)
block
integer(psb_ipk_), allocatable :: bnds(:), locnaggr(:)
integer(psb_ipk_) :: myth,nths, kk

@ -71,7 +71,7 @@ subroutine amg_d_soc2_map_bld(iorder,theta,clean_zeros,a,desc_a,nlaggr,ilaggr,in
use psb_base_mod
use amg_base_prec_type
use amg_d_inner_mod
#if defined(OPENMP)
#if defined(PSB_OPENMP)
use omp_lib
#endif
@ -211,7 +211,7 @@ subroutine amg_d_soc2_map_bld(iorder,theta,clean_zeros,a,desc_a,nlaggr,ilaggr,in
! Phase one: Start with disjoint groups.
!
naggr = 0
#if defined(OPENMP)
#if defined(PSB_OPENMP)
block
integer(psb_ipk_), allocatable :: bnds(:), locnaggr(:)
integer(psb_ipk_) :: myth,nths, kk

@ -98,7 +98,7 @@ subroutine amg_s_parmatch_aggregator_inner_mat_asb(ag,parms,a,desc_a,&
& ac,desc_ac, op_prol,op_restr,info)
use psb_base_mod
use amg_base_prec_type
#if defined(SERIAL_MPI)
#if defined(PSB_SERIAL_MPI)
use amg_s_parmatch_aggregator_mod
#else
use amg_s_parmatch_aggregator_mod, amg_protect_name => amg_s_parmatch_aggregator_inner_mat_asb
@ -133,7 +133,7 @@ subroutine amg_s_parmatch_aggregator_inner_mat_asb(ag,parms,a,desc_a,&
ictxt = desc_a%get_context()
call psb_info(ictxt,me,np)
#if !defined(SERIAL_MPI)
#if !defined(PSB_SERIAL_MPI)
if (debug) write(0,*) me,' ',trim(name),' Start:',&
& allocated(ag%ac),allocated(ag%desc_ac), allocated(ag%prol),allocated(ag%restr)

@ -98,7 +98,7 @@ subroutine amg_s_parmatch_aggregator_mat_asb(ag,parms,a,desc_a,&
& ac,desc_ac, op_prol,op_restr,info)
use psb_base_mod
use amg_base_prec_type
#if defined(SERIAL_MPI)
#if defined(PSB_SERIAL_MPI)
use amg_s_parmatch_aggregator_mod
#else
use amg_s_parmatch_aggregator_mod, amg_protect_name => amg_s_parmatch_aggregator_mat_asb
@ -136,7 +136,7 @@ subroutine amg_s_parmatch_aggregator_mat_asb(ag,parms,a,desc_a,&
end if
#if !defined(SERIAL_MPI)
#if !defined(PSB_SERIAL_MPI)
if (debug) write(0,*) me,' ',trim(name),' Start:',&
& allocated(ag%ac),allocated(ag%desc_ac), allocated(ag%prol),allocated(ag%restr)

@ -135,7 +135,7 @@ subroutine amg_s_parmatch_aggregator_mat_bld(ag,parms,a,desc_a,ilaggr,nlaggr,&
use psb_base_mod
use amg_s_inner_mod
use amg_base_prec_type
#if defined(SERIAL_MPI)
#if defined(PSB_SERIAL_MPI)
use amg_s_parmatch_aggregator_mod
#else
use amg_s_parmatch_aggregator_mod, amg_protect_name => amg_s_parmatch_aggregator_mat_bld
@ -176,7 +176,7 @@ subroutine amg_s_parmatch_aggregator_mat_bld(ag,parms,a,desc_a,ilaggr,nlaggr,&
! algorithm specified by
!
#if !defined(SERIAL_MPI)
#if !defined(PSB_SERIAL_MPI)
call clean_shortcuts(ag)
!
! When requesting smoothed aggregation we cannot use the
@ -219,7 +219,7 @@ subroutine amg_s_parmatch_aggregator_mat_bld(ag,parms,a,desc_a,ilaggr,nlaggr,&
9999 call psb_error_handler(err_act)
return
#if !defined(SERIAL_MPI)
#if !defined(PSB_SERIAL_MPI)
contains
subroutine clean_shortcuts(ag)

@ -47,7 +47,7 @@ subroutine amg_s_parmatch_aggregator_build_tprol(ag,parms,ag_data,&
use psb_base_mod
use amg_base_prec_type
use amg_s_inner_mod
#if defined(SERIAL_MPI)
#if defined(PSB_SERIAL_MPI)
use amg_s_parmatch_aggregator_mod
#else
use amg_s_parmatch_aggregator_mod, amg_protect_name => amg_s_parmatch_aggregator_build_tprol
@ -120,7 +120,7 @@ subroutine amg_s_parmatch_aggregator_build_tprol(ag,parms,ag_data,&
& amg_aggr_ord_nat_,is_legal_ml_aggr_ord)
call amg_check_def(parms%aggr_thresh,'Aggr_Thresh',szero,is_legal_s_aggr_thrs)
#if !defined(SERIAL_MPI)
#if !defined(PSB_SERIAL_MPI)
match_algorithm = ag%matching_alg
n_sweeps = ag%n_sweeps

@ -110,7 +110,7 @@ subroutine amg_s_parmatch_smth_bld(dol1smoothing,ag,a,desc_a,ilaggr,nlaggr,&
use amg_base_prec_type
use amg_s_inner_mod
use amg_s_base_aggregator_mod
#if defined(SERIAL_MPI)
#if defined(PSB_SERIAL_MPI)
use amg_s_parmatch_aggregator_mod
#else
use amg_s_parmatch_aggregator_mod, amg_protect_name => amg_s_parmatch_smth_bld
@ -194,7 +194,7 @@ subroutine amg_s_parmatch_smth_bld(dol1smoothing,ag,a,desc_a,ilaggr,nlaggr,&
if (do_timings) call psb_tic(idx_phase1)
#if !defined(SERIAL_MPI)
#if !defined(PSB_SERIAL_MPI)
naggr = nlaggr(me+1)
ntaggr = sum(nlaggr)

@ -99,7 +99,7 @@ subroutine amg_s_parmatch_spmm_bld(a,desc_a,ilaggr,nlaggr,parms,&
& ac,desc_ac,op_prol,op_restr,t_prol,info)
use psb_base_mod
use amg_s_inner_mod
#if defined(SERIAL_MPI)
#if defined(PSB_SERIAL_MPI)
use amg_s_parmatch_aggregator_mod
#else
use amg_s_parmatch_aggregator_mod, amg_protect_name => amg_s_parmatch_spmm_bld
@ -140,7 +140,7 @@ subroutine amg_s_parmatch_spmm_bld(a,desc_a,ilaggr,nlaggr,parms,&
debug_unit = psb_get_debug_unit()
debug_level = psb_get_debug_level()
#if !defined(SERIAL_MPI)
#if !defined(PSB_SERIAL_MPI)
call a%cp_to(acsr)
call amg_s_parmatch_spmm_bld_inner(acsr,desc_a,ilaggr,nlaggr,parms,&

@ -99,7 +99,7 @@ subroutine amg_s_parmatch_spmm_bld_inner(a_csr,desc_a,ilaggr,nlaggr,parms,&
& ac,desc_ac,op_prol,op_restr,t_prol,info)
use psb_base_mod
use amg_s_inner_mod
#if defined(SERIAL_MPI)
#if defined(PSB_SERIAL_MPI)
use amg_s_parmatch_aggregator_mod
#else
use amg_s_parmatch_aggregator_mod, amg_protect_name => amg_s_parmatch_spmm_bld_inner
@ -163,7 +163,7 @@ subroutine amg_s_parmatch_spmm_bld_inner(a_csr,desc_a,ilaggr,nlaggr,parms,&
naggrm1 = sum(nlaggr(1:me))
naggrp1 = sum(nlaggr(1:me+1))
#if !defined(SERIAL_MPI)
#if !defined(PSB_SERIAL_MPI)
!
! Here T_PROL should be arriving with GLOBAL indices on the cols
! and LOCAL indices on the rows.

@ -99,7 +99,7 @@ subroutine amg_s_parmatch_spmm_bld_ov(a,desc_a,ilaggr,nlaggr,parms,&
& ac,desc_ac,op_prol,op_restr,t_prol,info)
use psb_base_mod
use amg_s_inner_mod
#if defined(SERIAL_MPI)
#if defined(PSB_SERIAL_MPI)
use amg_s_parmatch_aggregator_mod
#else
use amg_s_parmatch_aggregator_mod, amg_protect_name => amg_s_parmatch_spmm_bld_ov
@ -141,7 +141,7 @@ subroutine amg_s_parmatch_spmm_bld_ov(a,desc_a,ilaggr,nlaggr,parms,&
debug_unit = psb_get_debug_unit()
debug_level = psb_get_debug_level()
#if !defined(SERIAL_MPI)
#if !defined(PSB_SERIAL_MPI)
call a%mv_to(acsr)

@ -109,7 +109,7 @@ subroutine amg_s_parmatch_unsmth_bld(dol1smoothing,ag,a,desc_a,ilaggr,nlaggr,&
use amg_base_prec_type
use amg_s_inner_mod
use amg_s_base_aggregator_mod
#if defined(SERIAL_MPI)
#if defined(PSB_SERIAL_MPI)
use amg_s_parmatch_aggregator_mod
#else
use amg_s_parmatch_aggregator_mod, amg_protect_name => amg_s_parmatch_unsmth_bld
@ -168,7 +168,7 @@ subroutine amg_s_parmatch_unsmth_bld(dol1smoothing,ag,a,desc_a,ilaggr,nlaggr,&
goto 9999
end if
#if !defined(SERIAL_MPI)
#if !defined(PSB_SERIAL_MPI)
nglob = desc_a%get_global_rows()
nrow = desc_a%get_local_rows()
ncol = desc_a%get_local_cols()

@ -72,7 +72,7 @@ subroutine amg_s_soc1_map_bld(iorder,theta,clean_zeros,a,desc_a,nlaggr,ilaggr,in
use psb_base_mod
use amg_base_prec_type
use amg_s_inner_mod
#if defined(OPENMP)
#if defined(PSB_OPENMP)
use omp_lib
#endif
implicit none
@ -172,7 +172,7 @@ subroutine amg_s_soc1_map_bld(iorder,theta,clean_zeros,a,desc_a,nlaggr,ilaggr,in
! Phase one: Start with disjoint groups.
!
naggr = 0
#if defined(OPENMP)
#if defined(PSB_OPENMP)
block
integer(psb_ipk_), allocatable :: bnds(:), locnaggr(:)
integer(psb_ipk_) :: myth,nths, kk

@ -71,7 +71,7 @@ subroutine amg_s_soc2_map_bld(iorder,theta,clean_zeros,a,desc_a,nlaggr,ilaggr,in
use psb_base_mod
use amg_base_prec_type
use amg_s_inner_mod
#if defined(OPENMP)
#if defined(PSB_OPENMP)
use omp_lib
#endif
@ -211,7 +211,7 @@ subroutine amg_s_soc2_map_bld(iorder,theta,clean_zeros,a,desc_a,nlaggr,ilaggr,in
! Phase one: Start with disjoint groups.
!
naggr = 0
#if defined(OPENMP)
#if defined(PSB_OPENMP)
block
integer(psb_ipk_), allocatable :: bnds(:), locnaggr(:)
integer(psb_ipk_) :: myth,nths, kk

@ -72,7 +72,7 @@ subroutine amg_z_soc1_map_bld(iorder,theta,clean_zeros,a,desc_a,nlaggr,ilaggr,in
use psb_base_mod
use amg_base_prec_type
use amg_z_inner_mod
#if defined(OPENMP)
#if defined(PSB_OPENMP)
use omp_lib
#endif
implicit none
@ -172,7 +172,7 @@ subroutine amg_z_soc1_map_bld(iorder,theta,clean_zeros,a,desc_a,nlaggr,ilaggr,in
! Phase one: Start with disjoint groups.
!
naggr = 0
#if defined(OPENMP)
#if defined(PSB_OPENMP)
block
integer(psb_ipk_), allocatable :: bnds(:), locnaggr(:)
integer(psb_ipk_) :: myth,nths, kk

@ -71,7 +71,7 @@ subroutine amg_z_soc2_map_bld(iorder,theta,clean_zeros,a,desc_a,nlaggr,ilaggr,in
use psb_base_mod
use amg_base_prec_type
use amg_z_inner_mod
#if defined(OPENMP)
#if defined(PSB_OPENMP)
use omp_lib
#endif
@ -211,7 +211,7 @@ subroutine amg_z_soc2_map_bld(iorder,theta,clean_zeros,a,desc_a,nlaggr,ilaggr,in
! Phase one: Start with disjoint groups.
!
naggr = 0
#if defined(OPENMP)
#if defined(PSB_OPENMP)
block
integer(psb_ipk_), allocatable :: bnds(:), locnaggr(:)
integer(psb_ipk_) :: myth,nths, kk

@ -127,9 +127,9 @@ subroutine amg_c_extprol_bld(a,desc_a,p,prolv,restrv,info,amold,vmold,imold)
if (debug_level >= psb_debug_outer_) &
& write(debug_unit,*) me,' ',trim(name),&
& 'Entering '
#if defined(LPK8)
#if defined(PSB_LPK8)
info=psb_err_internal_error_
call psb_errpush(info,name,a_err='Need fix for LPK8')
call psb_errpush(info,name,a_err='Need fix for PSB_LPK8')
goto 9999
#else
@ -373,9 +373,9 @@ contains
info = psb_success_
ctxt = desc_a%get_context()
call psb_info(ctxt,me,np)
#if defined(LPK8)
#if defined(PSB_LPK8)
info=psb_err_internal_error_
call psb_errpush(info,name,a_err='Need fix for LPK8')
call psb_errpush(info,name,a_err='Need fix for PSB_LPK8')
goto 9999
#else
allocate(nlaggr(np),ilaggr(1))

@ -90,10 +90,10 @@ subroutine amg_ccprecseti(p,what,val,info,ilev,ilmax,pos,idx)
use amg_c_ainv_solver
use amg_c_invk_solver
use amg_c_invt_solver
#if defined(HAVE_SLU_)
#if defined(PSB_HAVE_SLU)
use amg_c_slu_solver
#endif
#if defined(HAVE_MUMPS_)
#if defined(PSB_HAVE_MUMPS)
use amg_c_mumps_solver
#endif
@ -329,10 +329,10 @@ subroutine amg_ccprecsetc(p,what,string,info,ilev,ilmax,pos,idx)
use amg_c_ainv_solver
use amg_c_invk_solver
use amg_c_invt_solver
#if defined(HAVE_SLU_)
#if defined(PSB_HAVE_SLU)
use amg_c_slu_solver
#endif
#if defined(HAVE_MUMPS_)
#if defined(PSB_HAVE_MUMPS)
use amg_c_mumps_solver
#endif
use amg_c_krm_solver, only : amg_c_krm_solver_type
@ -480,9 +480,9 @@ subroutine amg_ccprecsetc(p,what,string,info,ilev,ilmax,pos,idx)
select case (psb_toupper(string))
case('BJAC')
call p%precv(nlev_)%set('SMOOTHER_TYPE',amg_bjac_,info,pos=pos)
#if defined(HAVE_SLU_)
#if defined(PSB_HAVE_SLU)
call p%precv(nlev_)%set('SUB_SOLVE',amg_slu_,info,pos=pos)
#elif defined(HAVE_MUMPS_)
#elif defined(PSB_HAVE_MUMPS)
call p%precv(nlev_)%set('SUB_SOLVE',amg_mumps_,info,pos=pos)
#else
call p%precv(nlev_)%set('SUB_SOLVE',amg_ilu_n_,info,pos=pos)
@ -494,9 +494,9 @@ subroutine amg_ccprecsetc(p,what,string,info,ilev,ilmax,pos,idx)
case('L1-BJAC')
call p%precv(nlev_)%set('SMOOTHER_TYPE',amg_l1_bjac_,info,pos=pos)
#if defined(HAVE_SLU_)
#if defined(PSB_HAVE_SLU)
call p%precv(nlev_)%set('SUB_SOLVE',amg_slu_,info,pos=pos)
#elif defined(HAVE_MUMPS_)
#elif defined(PSB_HAVE_MUMPS)
call p%precv(nlev_)%set('SUB_SOLVE',amg_mumps_,info,pos=pos)
#else
call p%precv(nlev_)%set('SUB_SOLVE',amg_ilu_n_,info,pos=pos)
@ -506,14 +506,14 @@ subroutine amg_ccprecsetc(p,what,string,info,ilev,ilmax,pos,idx)
& amg_distr_mat_)
call p%precv(nlev_)%set('COARSE_MAT',amg_distr_mat_,info)
case('SLU')
#if defined(HAVE_SLU_)
#if defined(PSB_HAVE_SLU)
call p%precv(nlev_)%set('SMOOTHER_TYPE',amg_bjac_,info,pos=pos)
call p%precv(nlev_)%set('SUB_SOLVE',amg_slu_,info,pos=pos)
if (hier_asb) &
& call amg_warn_coarse_mat(p%precv(nlev_)%parms%get_coarse_mat(),&
& amg_repl_mat_)
call p%precv(nlev_)%set('COARSE_MAT',amg_repl_mat_,info,pos=pos)
#elif defined(HAVE_MUMPS_)
#elif defined(PSB_HAVE_MUMPS)
call p%precv(nlev_)%set('SMOOTHER_TYPE',amg_bjac_,info,pos=pos)
call p%precv(nlev_)%set('SUB_SOLVE',amg_mumps_,info,pos=pos)
if (hier_asb) &
@ -550,7 +550,7 @@ subroutine amg_ccprecsetc(p,what,string,info,ilev,ilmax,pos,idx)
& amg_repl_mat_)
call p%precv(nlev_)%set('COARSE_MAT',amg_repl_mat_,info,pos=pos)
case('MUMPS')
#if defined(HAVE_MUMPS_)
#if defined(PSB_HAVE_MUMPS)
call p%precv(nlev_)%set('SMOOTHER_TYPE',amg_bjac_,info,pos=pos)
call p%precv(nlev_)%set('SUB_SOLVE',amg_mumps_,info,pos=pos)
if (hier_asb) &
@ -566,14 +566,14 @@ subroutine amg_ccprecsetc(p,what,string,info,ilev,ilmax,pos,idx)
call p%precv(nlev_)%set('COARSE_MAT',amg_distr_mat_,info,pos=pos)
#endif
case('UMF')
#if defined(HAVE_SLU_)
#if defined(PSB_HAVE_SLU)
call p%precv(nlev_)%set('SMOOTHER_TYPE',amg_bjac_,info,pos=pos)
call p%precv(nlev_)%set('SUB_SOLVE',amg_slu_,info,pos=pos)
if (hier_asb) &
& call amg_warn_coarse_mat(p%precv(nlev_)%parms%get_coarse_mat(),&
& amg_repl_mat_)
call p%precv(nlev_)%set('COARSE_MAT',amg_repl_mat_,info,pos=pos)
#elif defined(HAVE_MUMPS_)
#elif defined(PSB_HAVE_MUMPS)
call p%precv(nlev_)%set('SMOOTHER_TYPE',amg_bjac_,info,pos=pos)
call p%precv(nlev_)%set('SUB_SOLVE',amg_mumps_,info,pos=pos)
if (hier_asb) &
@ -590,14 +590,14 @@ subroutine amg_ccprecsetc(p,what,string,info,ilev,ilmax,pos,idx)
#endif
case('SLUDIST')
#if defined(HAVE_SLU_)
#if defined(PSB_HAVE_SLU)
call p%precv(nlev_)%set('SMOOTHER_TYPE',amg_bjac_,info,pos=pos)
call p%precv(nlev_)%set('SUB_SOLVE',amg_slu_,info,pos=pos)
if (hier_asb) &
& call amg_warn_coarse_mat(p%precv(nlev_)%parms%get_coarse_mat(),&
& amg_repl_mat_)
call p%precv(nlev_)%set('COARSE_MAT',amg_repl_mat_,info,pos=pos)
#elif defined(HAVE_MUMPS_)
#elif defined(PSB_HAVE_MUMPS)
call p%precv(nlev_)%set('SMOOTHER_TYPE',amg_bjac_,info,pos=pos)
call p%precv(nlev_)%set('SUB_SOLVE',amg_mumps_,info,pos=pos)
if (hier_asb) &
@ -709,9 +709,9 @@ subroutine amg_ccprecsetc(p,what,string,info,ilev,ilmax,pos,idx)
select case (psb_toupper(trim(string)))
case('BJAC')
call p%precv(nlev_)%set('SMOOTHER_TYPE',amg_bjac_,info,pos=pos)
#if defined(HAVE_SLU_)
#if defined(PSB_HAVE_SLU)
call p%precv(nlev_)%set('SUB_SOLVE',amg_slu_,info,pos=pos)
#elif defined(HAVE_MUMPS_)
#elif defined(PSB_HAVE_MUMPS)
call p%precv(nlev_)%set('SUB_SOLVE',amg_mumps_,info,pos=pos)
#else
call p%precv(nlev_)%set('SUB_SOLVE',amg_ilu_n_,info,pos=pos)
@ -722,9 +722,9 @@ subroutine amg_ccprecsetc(p,what,string,info,ilev,ilmax,pos,idx)
call p%precv(nlev_)%set('COARSE_MAT',amg_distr_mat_,info)
case('L1-BJAC')
call p%precv(nlev_)%set('SMOOTHER_TYPE',amg_l1_bjac_,info,pos=pos)
#if defined(HAVE_SLU_)
#if defined(PSB_HAVE_SLU)
call p%precv(nlev_)%set('SUB_SOLVE',amg_slu_,info,pos=pos)
#elif defined(HAVE_MUMPS_)
#elif defined(PSB_HAVE_MUMPS)
call p%precv(nlev_)%set('SUB_SOLVE',amg_mumps_,info,pos=pos)
#else
call p%precv(nlev_)%set('SUB_SOLVE',amg_ilu_n_,info,pos=pos)
@ -734,14 +734,14 @@ subroutine amg_ccprecsetc(p,what,string,info,ilev,ilmax,pos,idx)
& amg_distr_mat_)
call p%precv(nlev_)%set('COARSE_MAT',amg_distr_mat_,info)
case('SLU')
#if defined(HAVE_SLU_)
#if defined(PSB_HAVE_SLU)
call p%precv(nlev_)%set('SMOOTHER_TYPE',amg_bjac_,info,pos=pos)
call p%precv(nlev_)%set('SUB_SOLVE',amg_slu_,info,pos=pos)
if (hier_asb) &
& call amg_warn_coarse_mat(p%precv(nlev_)%parms%get_coarse_mat(),&
& amg_repl_mat_)
call p%precv(nlev_)%set('COARSE_MAT',amg_repl_mat_,info,pos=pos)
#elif defined(HAVE_MUMPS_)
#elif defined(PSB_HAVE_MUMPS)
call p%precv(nlev_)%set('SMOOTHER_TYPE',amg_bjac_,info,pos=pos)
call p%precv(nlev_)%set('SUB_SOLVE',amg_mumps_,info,pos=pos)
if (hier_asb) &
@ -778,7 +778,7 @@ subroutine amg_ccprecsetc(p,what,string,info,ilev,ilmax,pos,idx)
& amg_repl_mat_)
call p%precv(nlev_)%set('COARSE_MAT',amg_repl_mat_,info,pos=pos)
case('MUMPS')
#if defined(HAVE_MUMPS_)
#if defined(PSB_HAVE_MUMPS)
call p%precv(nlev_)%set('SMOOTHER_TYPE',amg_bjac_,info,pos=pos)
call p%precv(nlev_)%set('SUB_SOLVE',amg_mumps_,info,pos=pos)
if (hier_asb) &
@ -794,14 +794,14 @@ subroutine amg_ccprecsetc(p,what,string,info,ilev,ilmax,pos,idx)
call p%precv(nlev_)%set('COARSE_MAT',amg_distr_mat_,info,pos=pos)
#endif
case('UMF')
#if defined(HAVE_SLU_)
#if defined(PSB_HAVE_SLU)
call p%precv(nlev_)%set('SMOOTHER_TYPE',amg_bjac_,info,pos=pos)
call p%precv(nlev_)%set('SUB_SOLVE',amg_slu_,info,pos=pos)
if (hier_asb) &
& call amg_warn_coarse_mat(p%precv(nlev_)%parms%get_coarse_mat(),&
& amg_repl_mat_)
call p%precv(nlev_)%set('COARSE_MAT',amg_repl_mat_,info,pos=pos)
#elif defined(HAVE_MUMPS_)
#elif defined(PSB_HAVE_MUMPS)
call p%precv(nlev_)%set('SMOOTHER_TYPE',amg_bjac_,info,pos=pos)
call p%precv(nlev_)%set('SUB_SOLVE',amg_mumps_,info,pos=pos)
if (hier_asb) &
@ -818,14 +818,14 @@ subroutine amg_ccprecsetc(p,what,string,info,ilev,ilmax,pos,idx)
#endif
case('SLUDIST')
#if defined(HAVE_SLU_)
#if defined(PSB_HAVE_SLU)
call p%precv(nlev_)%set('SMOOTHER_TYPE',amg_bjac_,info,pos=pos)
call p%precv(nlev_)%set('SUB_SOLVE',amg_slu_,info,pos=pos)
if (hier_asb) &
& call amg_warn_coarse_mat(p%precv(nlev_)%parms%get_coarse_mat(),&
& amg_repl_mat_)
call p%precv(nlev_)%set('COARSE_MAT',amg_repl_mat_,info,pos=pos)
#elif defined(HAVE_MUMPS_)
#elif defined(PSB_HAVE_MUMPS)
call p%precv(nlev_)%set('SMOOTHER_TYPE',amg_bjac_,info,pos=pos)
call p%precv(nlev_)%set('SUB_SOLVE',amg_mumps_,info,pos=pos)
if (hier_asb) &

@ -99,7 +99,7 @@ subroutine amg_cprecinit(ctxt,prec,ptype,info)
use amg_c_ilu_solver
use amg_c_gs_solver
#if defined(HAVE_SLU_)
#if defined(PSB_HAVE_SLU)
use amg_c_slu_solver
#endif
@ -230,9 +230,9 @@ subroutine amg_cprecinit(ctxt,prec,ptype,info)
end do
call prec%set('ML_CYCLE','VCYCLE',info)
call prec%set('SMOOTHER_TYPE','FBGS',info)
#if defined(HAVE_MUMPS_)
#if defined(PSB_HAVE_MUMPS)
call prec%set('COARSE_SOLVE','MUMPS',info)
#elif defined(HAVE_SLU_)
#elif defined(PSB_HAVE_SLU)
call prec%set('COARSE_SOLVE','SLU',info)
#else
call prec%set('COARSE_SOLVE','ILU',info)

@ -88,8 +88,8 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
* October 15, 2003
*
*/
#ifdef Have_SLU_
#include "amg_config.h"
#ifdef AMG_HAVE_SLU
#include "slu_cdefs.h"
#define HANDLE_SIZE 8
@ -111,7 +111,7 @@ typedef struct {
int amg_cslu_fact(int n, int nnz,
#ifdef HAVE_SLU_
#ifdef AMG_HAVE_SLU
complex *values,
#else
void *values,
@ -128,7 +128,7 @@ int amg_cslu_fact(int n, int nnz,
*
*/
#ifdef Have_SLU_
#ifdef AMG_HAVE_SLU
SuperMatrix A, AC;
SuperMatrix *L, *U;
int *perm_r; /* row permutations from partial pivoting */
@ -177,10 +177,10 @@ int amg_cslu_fact(int n, int nnz,
panel_size = sp_ienv(1);
relax = sp_ienv(2);
#if defined(SLU_VERSION_5)
#if defined(AMG_SLU_VERSION_5)
cgstrf(&options, &AC, relax, panel_size, etree,
NULL, 0, perm_c, perm_r, L, U, &Glu, &stat, &info);
#elif defined(SLU_VERSION_4)
#elif defined(AMG_SLU_VERSION_4)
cgstrf(&options, &AC, relax, panel_size, etree,
NULL, 0, perm_c, perm_r, L, U, &stat, &info);
#else
@ -229,7 +229,7 @@ int amg_cslu_fact(int n, int nnz,
int amg_cslu_solve(int itrans, int n, int nrhs,
#ifdef HAVE_SLU_
#ifdef AMG_HAVE_SLU
complex *b,
#else
void *b,
@ -242,7 +242,7 @@ int amg_cslu_solve(int itrans, int n, int nrhs,
*
*/
int info;
#ifdef Have_SLU_
#ifdef AMG_HAVE_SLU
SuperMatrix B;
SuperMatrix *L, *U;
int *perm_r; /* row permutations from partial pivoting */
@ -304,7 +304,7 @@ int amg_cslu_free(void *f_factors)
* free all storage in the end
*
*/
#ifdef Have_SLU_
#ifdef AMG_HAVE_SLU
factors_t *LUfactors;
/* Free the LU factors in the factors handle */

@ -127,9 +127,9 @@ subroutine amg_d_extprol_bld(a,desc_a,p,prolv,restrv,info,amold,vmold,imold)
if (debug_level >= psb_debug_outer_) &
& write(debug_unit,*) me,' ',trim(name),&
& 'Entering '
#if defined(LPK8)
#if defined(PSB_LPK8)
info=psb_err_internal_error_
call psb_errpush(info,name,a_err='Need fix for LPK8')
call psb_errpush(info,name,a_err='Need fix for PSB_LPK8')
goto 9999
#else
@ -373,9 +373,9 @@ contains
info = psb_success_
ctxt = desc_a%get_context()
call psb_info(ctxt,me,np)
#if defined(LPK8)
#if defined(PSB_LPK8)
info=psb_err_internal_error_
call psb_errpush(info,name,a_err='Need fix for LPK8')
call psb_errpush(info,name,a_err='Need fix for PSB_LPK8')
goto 9999
#else
allocate(nlaggr(np),ilaggr(1))

@ -90,16 +90,16 @@ subroutine amg_dcprecseti(p,what,val,info,ilev,ilmax,pos,idx)
use amg_d_ainv_solver
use amg_d_invk_solver
use amg_d_invt_solver
#if defined(HAVE_UMF_)
#if defined(PSB_HAVE_UMF)
use amg_d_umf_solver
#endif
#if defined(HAVE_SLUDIST_)
#if defined(PSB_HAVE_SLUDIST)
use amg_d_sludist_solver
#endif
#if defined(HAVE_SLU_)
#if defined(PSB_HAVE_SLU)
use amg_d_slu_solver
#endif
#if defined(HAVE_MUMPS_)
#if defined(PSB_HAVE_MUMPS)
use amg_d_mumps_solver
#endif
@ -335,16 +335,16 @@ subroutine amg_dcprecsetc(p,what,string,info,ilev,ilmax,pos,idx)
use amg_d_ainv_solver
use amg_d_invk_solver
use amg_d_invt_solver
#if defined(HAVE_UMF_)
#if defined(PSB_HAVE_UMF)
use amg_d_umf_solver
#endif
#if defined(HAVE_SLUDIST_)
#if defined(PSB_HAVE_SLUDIST)
use amg_d_sludist_solver
#endif
#if defined(HAVE_SLU_)
#if defined(PSB_HAVE_SLU)
use amg_d_slu_solver
#endif
#if defined(HAVE_MUMPS_)
#if defined(PSB_HAVE_MUMPS)
use amg_d_mumps_solver
#endif
use amg_d_krm_solver, only : amg_d_krm_solver_type
@ -492,11 +492,11 @@ subroutine amg_dcprecsetc(p,what,string,info,ilev,ilmax,pos,idx)
select case (psb_toupper(string))
case('BJAC')
call p%precv(nlev_)%set('SMOOTHER_TYPE',amg_bjac_,info,pos=pos)
#if defined(HAVE_UMF_)
#if defined(PSB_HAVE_UMF)
call p%precv(nlev_)%set('SUB_SOLVE',amg_umf_,info,pos=pos)
#elif defined(HAVE_SLU_)
#elif defined(PSB_HAVE_SLU)
call p%precv(nlev_)%set('SUB_SOLVE',amg_slu_,info,pos=pos)
#elif defined(HAVE_MUMPS_)
#elif defined(PSB_HAVE_MUMPS)
call p%precv(nlev_)%set('SUB_SOLVE',amg_mumps_,info,pos=pos)
#else
call p%precv(nlev_)%set('SUB_SOLVE',amg_ilu_n_,info,pos=pos)
@ -508,11 +508,11 @@ subroutine amg_dcprecsetc(p,what,string,info,ilev,ilmax,pos,idx)
case('L1-BJAC')
call p%precv(nlev_)%set('SMOOTHER_TYPE',amg_l1_bjac_,info,pos=pos)
#if defined(HAVE_UMF_)
#if defined(PSB_HAVE_UMF)
call p%precv(nlev_)%set('SUB_SOLVE',amg_umf_,info,pos=pos)
#elif defined(HAVE_SLU_)
#elif defined(PSB_HAVE_SLU)
call p%precv(nlev_)%set('SUB_SOLVE',amg_slu_,info,pos=pos)
#elif defined(HAVE_MUMPS_)
#elif defined(PSB_HAVE_MUMPS)
call p%precv(nlev_)%set('SUB_SOLVE',amg_mumps_,info,pos=pos)
#else
call p%precv(nlev_)%set('SUB_SOLVE',amg_ilu_n_,info,pos=pos)
@ -522,14 +522,14 @@ subroutine amg_dcprecsetc(p,what,string,info,ilev,ilmax,pos,idx)
& amg_distr_mat_)
call p%precv(nlev_)%set('COARSE_MAT',amg_distr_mat_,info)
case('SLU')
#if defined(HAVE_SLU_)
#if defined(PSB_HAVE_SLU)
call p%precv(nlev_)%set('SMOOTHER_TYPE',amg_bjac_,info,pos=pos)
call p%precv(nlev_)%set('SUB_SOLVE',amg_slu_,info,pos=pos)
if (hier_asb) &
& call amg_warn_coarse_mat(p%precv(nlev_)%parms%get_coarse_mat(),&
& amg_repl_mat_)
call p%precv(nlev_)%set('COARSE_MAT',amg_repl_mat_,info,pos=pos)
#elif defined(HAVE_MUMPS_)
#elif defined(PSB_HAVE_MUMPS)
call p%precv(nlev_)%set('SMOOTHER_TYPE',amg_bjac_,info,pos=pos)
call p%precv(nlev_)%set('SUB_SOLVE',amg_mumps_,info,pos=pos)
if (hier_asb) &
@ -566,7 +566,7 @@ subroutine amg_dcprecsetc(p,what,string,info,ilev,ilmax,pos,idx)
& amg_repl_mat_)
call p%precv(nlev_)%set('COARSE_MAT',amg_repl_mat_,info,pos=pos)
case('MUMPS')
#if defined(HAVE_MUMPS_)
#if defined(PSB_HAVE_MUMPS)
call p%precv(nlev_)%set('SMOOTHER_TYPE',amg_bjac_,info,pos=pos)
call p%precv(nlev_)%set('SUB_SOLVE',amg_mumps_,info,pos=pos)
if (hier_asb) &
@ -582,21 +582,21 @@ subroutine amg_dcprecsetc(p,what,string,info,ilev,ilmax,pos,idx)
call p%precv(nlev_)%set('COARSE_MAT',amg_distr_mat_,info,pos=pos)
#endif
case('UMF')
#if defined(HAVE_UMF_)
#if defined(PSB_HAVE_UMF)
call p%precv(nlev_)%set('SMOOTHER_TYPE',amg_bjac_,info,pos=pos)
call p%precv(nlev_)%set('SUB_SOLVE',amg_umf_,info,pos=pos)
if (hier_asb) &
& call amg_warn_coarse_mat(p%precv(nlev_)%parms%get_coarse_mat(),&
& amg_repl_mat_)
call p%precv(nlev_)%set('COARSE_MAT',amg_repl_mat_,info,pos=pos)
#elif defined(HAVE_SLU_)
#elif defined(PSB_HAVE_SLU)
call p%precv(nlev_)%set('SMOOTHER_TYPE',amg_bjac_,info,pos=pos)
call p%precv(nlev_)%set('SUB_SOLVE',amg_slu_,info,pos=pos)
if (hier_asb) &
& call amg_warn_coarse_mat(p%precv(nlev_)%parms%get_coarse_mat(),&
& amg_repl_mat_)
call p%precv(nlev_)%set('COARSE_MAT',amg_repl_mat_,info,pos=pos)
#elif defined(HAVE_MUMPS_)
#elif defined(PSB_HAVE_MUMPS)
call p%precv(nlev_)%set('SMOOTHER_TYPE',amg_bjac_,info,pos=pos)
call p%precv(nlev_)%set('SUB_SOLVE',amg_mumps_,info,pos=pos)
if (hier_asb) &
@ -613,28 +613,28 @@ subroutine amg_dcprecsetc(p,what,string,info,ilev,ilmax,pos,idx)
#endif
case('SLUDIST')
#if defined(HAVE_SLUDIST_)
#if defined(PSB_HAVE_SLUDIST)
call p%precv(nlev_)%set('SMOOTHER_TYPE',amg_bjac_,info,pos=pos)
call p%precv(nlev_)%set('SUB_SOLVE',amg_sludist_,info,pos=pos)
if (hier_asb) &
& call amg_warn_coarse_mat(p%precv(nlev_)%parms%get_coarse_mat(),&
& amg_distr_mat_)
call p%precv(nlev_)%set('COARSE_MAT',amg_distr_mat_,info,pos=pos)
#elif defined(HAVE_UMF_)
#elif defined(PSB_HAVE_UMF)
call p%precv(nlev_)%set('SMOOTHER_TYPE',amg_bjac_,info,pos=pos)
call p%precv(nlev_)%set('SUB_SOLVE',amg_umf_,info,pos=pos)
if (hier_asb) &
& call amg_warn_coarse_mat(p%precv(nlev_)%parms%get_coarse_mat(),&
& amg_repl_mat_)
call p%precv(nlev_)%set('COARSE_MAT',amg_repl_mat_,info,pos=pos)
#elif defined(HAVE_SLU_)
#elif defined(PSB_HAVE_SLU)
call p%precv(nlev_)%set('SMOOTHER_TYPE',amg_bjac_,info,pos=pos)
call p%precv(nlev_)%set('SUB_SOLVE',amg_slu_,info,pos=pos)
if (hier_asb) &
& call amg_warn_coarse_mat(p%precv(nlev_)%parms%get_coarse_mat(),&
& amg_repl_mat_)
call p%precv(nlev_)%set('COARSE_MAT',amg_repl_mat_,info,pos=pos)
#elif defined(HAVE_MUMPS_)
#elif defined(PSB_HAVE_MUMPS)
call p%precv(nlev_)%set('SMOOTHER_TYPE',amg_bjac_,info,pos=pos)
call p%precv(nlev_)%set('SUB_SOLVE',amg_mumps_,info,pos=pos)
if (hier_asb) &
@ -746,11 +746,11 @@ subroutine amg_dcprecsetc(p,what,string,info,ilev,ilmax,pos,idx)
select case (psb_toupper(trim(string)))
case('BJAC')
call p%precv(nlev_)%set('SMOOTHER_TYPE',amg_bjac_,info,pos=pos)
#if defined(HAVE_UMF_)
#if defined(PSB_HAVE_UMF)
call p%precv(nlev_)%set('SUB_SOLVE',amg_umf_,info,pos=pos)
#elif defined(HAVE_SLU_)
#elif defined(PSB_HAVE_SLU)
call p%precv(nlev_)%set('SUB_SOLVE',amg_slu_,info,pos=pos)
#elif defined(HAVE_MUMPS_)
#elif defined(PSB_HAVE_MUMPS)
call p%precv(nlev_)%set('SUB_SOLVE',amg_mumps_,info,pos=pos)
#else
call p%precv(nlev_)%set('SUB_SOLVE',amg_ilu_n_,info,pos=pos)
@ -761,11 +761,11 @@ subroutine amg_dcprecsetc(p,what,string,info,ilev,ilmax,pos,idx)
call p%precv(nlev_)%set('COARSE_MAT',amg_distr_mat_,info)
case('L1-BJAC')
call p%precv(nlev_)%set('SMOOTHER_TYPE',amg_l1_bjac_,info,pos=pos)
#if defined(HAVE_UMF_)
#if defined(PSB_HAVE_UMF)
call p%precv(nlev_)%set('SUB_SOLVE',amg_umf_,info,pos=pos)
#elif defined(HAVE_SLU_)
#elif defined(PSB_HAVE_SLU)
call p%precv(nlev_)%set('SUB_SOLVE',amg_slu_,info,pos=pos)
#elif defined(HAVE_MUMPS_)
#elif defined(PSB_HAVE_MUMPS)
call p%precv(nlev_)%set('SUB_SOLVE',amg_mumps_,info,pos=pos)
#else
call p%precv(nlev_)%set('SUB_SOLVE',amg_ilu_n_,info,pos=pos)
@ -775,14 +775,14 @@ subroutine amg_dcprecsetc(p,what,string,info,ilev,ilmax,pos,idx)
& amg_distr_mat_)
call p%precv(nlev_)%set('COARSE_MAT',amg_distr_mat_,info)
case('SLU')
#if defined(HAVE_SLU_)
#if defined(PSB_HAVE_SLU)
call p%precv(nlev_)%set('SMOOTHER_TYPE',amg_bjac_,info,pos=pos)
call p%precv(nlev_)%set('SUB_SOLVE',amg_slu_,info,pos=pos)
if (hier_asb) &
& call amg_warn_coarse_mat(p%precv(nlev_)%parms%get_coarse_mat(),&
& amg_repl_mat_)
call p%precv(nlev_)%set('COARSE_MAT',amg_repl_mat_,info,pos=pos)
#elif defined(HAVE_MUMPS_)
#elif defined(PSB_HAVE_MUMPS)
call p%precv(nlev_)%set('SMOOTHER_TYPE',amg_bjac_,info,pos=pos)
call p%precv(nlev_)%set('SUB_SOLVE',amg_mumps_,info,pos=pos)
if (hier_asb) &
@ -819,7 +819,7 @@ subroutine amg_dcprecsetc(p,what,string,info,ilev,ilmax,pos,idx)
& amg_repl_mat_)
call p%precv(nlev_)%set('COARSE_MAT',amg_repl_mat_,info,pos=pos)
case('MUMPS')
#if defined(HAVE_MUMPS_)
#if defined(PSB_HAVE_MUMPS)
call p%precv(nlev_)%set('SMOOTHER_TYPE',amg_bjac_,info,pos=pos)
call p%precv(nlev_)%set('SUB_SOLVE',amg_mumps_,info,pos=pos)
if (hier_asb) &
@ -835,21 +835,21 @@ subroutine amg_dcprecsetc(p,what,string,info,ilev,ilmax,pos,idx)
call p%precv(nlev_)%set('COARSE_MAT',amg_distr_mat_,info,pos=pos)
#endif
case('UMF')
#if defined(HAVE_UMF_)
#if defined(PSB_HAVE_UMF)
call p%precv(nlev_)%set('SMOOTHER_TYPE',amg_bjac_,info,pos=pos)
call p%precv(nlev_)%set('SUB_SOLVE',amg_umf_,info,pos=pos)
if (hier_asb) &
& call amg_warn_coarse_mat(p%precv(nlev_)%parms%get_coarse_mat(),&
& amg_repl_mat_)
call p%precv(nlev_)%set('COARSE_MAT',amg_repl_mat_,info,pos=pos)
#elif defined(HAVE_SLU_)
#elif defined(PSB_HAVE_SLU)
call p%precv(nlev_)%set('SMOOTHER_TYPE',amg_bjac_,info,pos=pos)
call p%precv(nlev_)%set('SUB_SOLVE',amg_slu_,info,pos=pos)
if (hier_asb) &
& call amg_warn_coarse_mat(p%precv(nlev_)%parms%get_coarse_mat(),&
& amg_repl_mat_)
call p%precv(nlev_)%set('COARSE_MAT',amg_repl_mat_,info,pos=pos)
#elif defined(HAVE_MUMPS_)
#elif defined(PSB_HAVE_MUMPS)
call p%precv(nlev_)%set('SMOOTHER_TYPE',amg_bjac_,info,pos=pos)
call p%precv(nlev_)%set('SUB_SOLVE',amg_mumps_,info,pos=pos)
if (hier_asb) &
@ -866,28 +866,28 @@ subroutine amg_dcprecsetc(p,what,string,info,ilev,ilmax,pos,idx)
#endif
case('SLUDIST')
#if defined(HAVE_SLUDIST_)
#if defined(PSB_HAVE_SLUDIST)
call p%precv(nlev_)%set('SMOOTHER_TYPE',amg_bjac_,info,pos=pos)
call p%precv(nlev_)%set('SUB_SOLVE',amg_sludist_,info,pos=pos)
if (hier_asb) &
& call amg_warn_coarse_mat(p%precv(nlev_)%parms%get_coarse_mat(),&
& amg_distr_mat_)
call p%precv(nlev_)%set('COARSE_MAT',amg_distr_mat_,info,pos=pos)
#elif defined(HAVE_UMF_)
#elif defined(PSB_HAVE_UMF)
call p%precv(nlev_)%set('SMOOTHER_TYPE',amg_bjac_,info,pos=pos)
call p%precv(nlev_)%set('SUB_SOLVE',amg_umf_,info,pos=pos)
if (hier_asb) &
& call amg_warn_coarse_mat(p%precv(nlev_)%parms%get_coarse_mat(),&
& amg_repl_mat_)
call p%precv(nlev_)%set('COARSE_MAT',amg_repl_mat_,info,pos=pos)
#elif defined(HAVE_SLU_)
#elif defined(PSB_HAVE_SLU)
call p%precv(nlev_)%set('SMOOTHER_TYPE',amg_bjac_,info,pos=pos)
call p%precv(nlev_)%set('SUB_SOLVE',amg_slu_,info,pos=pos)
if (hier_asb) &
& call amg_warn_coarse_mat(p%precv(nlev_)%parms%get_coarse_mat(),&
& amg_repl_mat_)
call p%precv(nlev_)%set('COARSE_MAT',amg_repl_mat_,info,pos=pos)
#elif defined(HAVE_MUMPS_)
#elif defined(PSB_HAVE_MUMPS)
call p%precv(nlev_)%set('SMOOTHER_TYPE',amg_bjac_,info,pos=pos)
call p%precv(nlev_)%set('SUB_SOLVE',amg_mumps_,info,pos=pos)
if (hier_asb) &

@ -100,10 +100,10 @@ subroutine amg_dprecinit(ctxt,prec,ptype,info)
use amg_d_gs_solver
use amg_d_poly_smoother
#if defined(HAVE_UMF_)
#if defined(PSB_HAVE_UMF)
use amg_d_umf_solver
#endif
#if defined(HAVE_SLU_)
#if defined(PSB_HAVE_SLU)
use amg_d_slu_solver
#endif
@ -242,11 +242,11 @@ subroutine amg_dprecinit(ctxt,prec,ptype,info)
end do
call prec%set('ML_CYCLE','VCYCLE',info)
call prec%set('SMOOTHER_TYPE','FBGS',info)
#if defined(HAVE_UMF_)
#if defined(PSB_HAVE_UMF)
call prec%set('COARSE_SOLVE','UMF',info)
#elif defined(HAVE_MUMPS_)
#elif defined(PSB_HAVE_MUMPS)
call prec%set('COARSE_SOLVE','MUMPS',info)
#elif defined(HAVE_SLU_)
#elif defined(PSB_HAVE_SLU)
call prec%set('COARSE_SOLVE','SLU',info)
#else
call prec%set('COARSE_SOLVE','ILU',info)

@ -87,8 +87,8 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
* October 15, 2003
*
*/
#ifdef Have_SLU_
#include "amg_config.h"
#ifdef AMG_HAVE_SLU
#include "slu_ddefs.h"
#define HANDLE_SIZE 8
@ -122,7 +122,7 @@ int amg_dslu_fact(int n, int nnz, double *values,
*
*/
#ifdef Have_SLU_
#ifdef AMG_HAVE_SLU
SuperMatrix A, AC;
SuperMatrix *L, *U;
int *perm_r; /* row permutations from partial pivoting */
@ -171,10 +171,10 @@ int amg_dslu_fact(int n, int nnz, double *values,
panel_size = sp_ienv(1);
relax = sp_ienv(2);
#if defined(SLU_VERSION_5)
#if defined(AMG_SLU_VERSION_5)
dgstrf(&options, &AC, relax, panel_size, etree,
NULL, 0, perm_c, perm_r, L, U, &Glu, &stat, &info);
#elif defined(SLU_VERSION_4)
#elif defined(AMG_SLU_VERSION_4)
dgstrf(&options, &AC, relax, panel_size, etree,
NULL, 0, perm_c, perm_r, L, U, &stat, &info);
#else
@ -231,7 +231,7 @@ int amg_dslu_solve(int itrans, int n, int nrhs, double *b, int ldb,
*
*/
int info;
#ifdef Have_SLU_
#ifdef AMG_HAVE_SLU
SuperMatrix B;
SuperMatrix *L, *U;
int *perm_r; /* row permutations from partial pivoting */
@ -285,7 +285,7 @@ int amg_dslu_free(void *f_factors)
* free all storage in the end
*
*/
#ifdef Have_SLU_
#ifdef AMG_HAVE_SLU
factors_t *LUfactors;
/* Free the LU factors in the factors handle */

@ -88,13 +88,14 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
*/
#ifdef Have_SLUDist_
#include "amg_config.h"
#ifdef AMG_HAVE_SLUDIST
#include <math.h>
#include "superlu_ddefs.h"
#define HANDLE_SIZE 8
#if (SLUD_VERSION_>=63)
#if (AMG_SLUD_VERSION>=63)
typedef struct {
SuperMatrix *A;
dLUstruct_t *LUstruct;
@ -131,11 +132,11 @@ int amg_dsludist_fact(int n, int nl, int nnzl, int ffstr,
*
*/
#ifdef Have_SLUDist_
#ifdef AMG_HAVE_SLUDIST
SuperMatrix *A;
NRformat_loc *Astore;
#if (SLUD_VERSION_>=63)
#if (AMG_SLUD_VERSION>=63)
dScalePermstruct_t *ScalePermstruct;
dLUstruct_t *LUstruct;
dSOLVEstruct_t SOLVEstruct;
@ -148,9 +149,9 @@ int amg_dsludist_fact(int n, int nl, int nnzl, int ffstr,
int i, panel_size, permc_spec, relax, info;
trans_t trans;
double drop_tol = 0.0, b[1], berr[1];
#if (SLUD_VERSION_>=50)
#if (AMG_SLUD_VERSION>=50)
superlu_dist_options_t options;
#elif (SLUD_VERSION_>=30)
#elif (AMG_SLUD_VERSION>=30)
superlu_options_t options;
#else
choke_on_me;
@ -174,7 +175,7 @@ int amg_dsludist_fact(int n, int nl, int nnzl, int ffstr,
SLU_NR_loc, SLU_D, SLU_GE);
/* Initialize ScalePermstruct and LUstruct. */
#if (SLUD_VERSION_>=63)
#if (AMG_SLUD_VERSION>=63)
ScalePermstruct = (dScalePermstruct_t *) SUPERLU_MALLOC(sizeof(dScalePermstruct_t));
LUstruct = (dLUstruct_t *) SUPERLU_MALLOC(sizeof(dLUstruct_t));
dScalePermstructInit(n,n, ScalePermstruct);
@ -183,11 +184,11 @@ int amg_dsludist_fact(int n, int nl, int nnzl, int ffstr,
LUstruct = (LUstruct_t *) SUPERLU_MALLOC(sizeof(LUstruct_t));
ScalePermstructInit(n,n, ScalePermstruct);
#endif
#if (SLUD_VERSION_>=63)
#if (AMG_SLUD_VERSION>=63)
dLUstructInit(n, LUstruct);
#elif (SLUD_VERSION_>=40)
#elif (AMG_SLUD_VERSION>=40)
LUstructInit(n, LUstruct);
#elif (SLUD_VERSION_>=30)
#elif (AMG_SLUD_VERSION>=30)
LUstructInit(n,n, LUstruct);
#else
choke_on_me;
@ -243,9 +244,9 @@ int amg_dsludist_solve(int itrans, int n, int nrhs,
* performs triangular solve
*
*/
#ifdef Have_SLUDist_
#ifdef AMG_HAVE_SLUDIST
SuperMatrix *A;
#if (SLUD_VERSION_>=63)
#if (AMG_SLUD_VERSION>=63)
dScalePermstruct_t *ScalePermstruct;
dLUstruct_t *LUstruct;
dSOLVEstruct_t SOLVEstruct;
@ -259,9 +260,9 @@ int amg_dsludist_solve(int itrans, int n, int nrhs,
trans_t trans;
double drop_tol = 0.0;
double *berr;
#if (SLUD_VERSION_>=50)
#if (AMG_SLUD_VERSION>=50)
superlu_dist_options_t options;
#elif (SLUD_VERSION_>=30)
#elif (AMG_SLUD_VERSION>=30)
superlu_options_t options;
#else
choke_on_me;
@ -329,9 +330,9 @@ int amg_dsludist_free(void *f_factors)
* free all storage in the end
*
*/
#ifdef Have_SLUDist_
#ifdef AMG_HAVE_SLUDIST
SuperMatrix *A;
#if (SLUD_VERSION_>=63)
#if (AMG_SLUD_VERSION>=63)
dScalePermstruct_t *ScalePermstruct;
dLUstruct_t *LUstruct;
dSOLVEstruct_t SOLVEstruct;
@ -345,9 +346,9 @@ int amg_dsludist_free(void *f_factors)
trans_t trans;
double drop_tol = 0.0;
double *berr;
#if (SLUD_VERSION_>=50)
#if (AMG_SLUD_VERSION>=50)
superlu_dist_options_t options;
#elif (SLUD_VERSION_>=30)
#elif (AMG_SLUD_VERSION>=30)
superlu_options_t options;
#else
choke_on_me;
@ -368,7 +369,7 @@ int amg_dsludist_free(void *f_factors)
// we either have a leak or a segfault here.
// To be investigated further.
//Destroy_CompRowLoc_Matrix_dist(A);
#if (SLUD_VERSION_>=63)
#if (AMG_SLUD_VERSION>=63)
dScalePermstructFree(ScalePermstruct);
dLUstructFree(LUstruct);
#else

@ -73,10 +73,9 @@ Availability:
http://www.cise.ufl.edu/research/sparse/umfpack
*/
#include <stdio.h>
#ifdef Have_UMF_
#include "amg_config.h"
#ifdef AMG_HAVE_UMF
#include "umfpack.h"
#endif
@ -88,7 +87,7 @@ int amg_dumf_fact(int n, int nnz,
{
#ifdef Have_UMF_
#ifdef AMG_HAVE_UMF
double Info [UMFPACK_INFO], Control [UMFPACK_CONTROL];
void *Symbolic, *Numeric ;
int i, info;
@ -146,7 +145,7 @@ int amg_dumf_solve(int itrans, int n,
void *numptr)
{
#ifdef Have_UMF_
#ifdef AMG_HAVE_UMF
double Info [UMFPACK_INFO], Control [UMFPACK_CONTROL];
void *Symbolic, *Numeric ;
int i,trans, info;
@ -178,7 +177,7 @@ int amg_dumf_solve(int itrans, int n,
int amg_dumf_free(void *symptr, void *numptr)
{
#ifdef Have_UMF_
#ifdef AMG_HAVE_UMF
void *Symbolic, *Numeric ;
Symbolic = symptr;
Numeric = numptr;

@ -127,9 +127,9 @@ subroutine amg_s_extprol_bld(a,desc_a,p,prolv,restrv,info,amold,vmold,imold)
if (debug_level >= psb_debug_outer_) &
& write(debug_unit,*) me,' ',trim(name),&
& 'Entering '
#if defined(LPK8)
#if defined(PSB_LPK8)
info=psb_err_internal_error_
call psb_errpush(info,name,a_err='Need fix for LPK8')
call psb_errpush(info,name,a_err='Need fix for PSB_LPK8')
goto 9999
#else
@ -373,9 +373,9 @@ contains
info = psb_success_
ctxt = desc_a%get_context()
call psb_info(ctxt,me,np)
#if defined(LPK8)
#if defined(PSB_LPK8)
info=psb_err_internal_error_
call psb_errpush(info,name,a_err='Need fix for LPK8')
call psb_errpush(info,name,a_err='Need fix for PSB_LPK8')
goto 9999
#else
allocate(nlaggr(np),ilaggr(1))

@ -90,10 +90,10 @@ subroutine amg_scprecseti(p,what,val,info,ilev,ilmax,pos,idx)
use amg_s_ainv_solver
use amg_s_invk_solver
use amg_s_invt_solver
#if defined(HAVE_SLU_)
#if defined(PSB_HAVE_SLU)
use amg_s_slu_solver
#endif
#if defined(HAVE_MUMPS_)
#if defined(PSB_HAVE_MUMPS)
use amg_s_mumps_solver
#endif
@ -329,10 +329,10 @@ subroutine amg_scprecsetc(p,what,string,info,ilev,ilmax,pos,idx)
use amg_s_ainv_solver
use amg_s_invk_solver
use amg_s_invt_solver
#if defined(HAVE_SLU_)
#if defined(PSB_HAVE_SLU)
use amg_s_slu_solver
#endif
#if defined(HAVE_MUMPS_)
#if defined(PSB_HAVE_MUMPS)
use amg_s_mumps_solver
#endif
use amg_s_krm_solver, only : amg_s_krm_solver_type
@ -480,9 +480,9 @@ subroutine amg_scprecsetc(p,what,string,info,ilev,ilmax,pos,idx)
select case (psb_toupper(string))
case('BJAC')
call p%precv(nlev_)%set('SMOOTHER_TYPE',amg_bjac_,info,pos=pos)
#if defined(HAVE_SLU_)
#if defined(PSB_HAVE_SLU)
call p%precv(nlev_)%set('SUB_SOLVE',amg_slu_,info,pos=pos)
#elif defined(HAVE_MUMPS_)
#elif defined(PSB_HAVE_MUMPS)
call p%precv(nlev_)%set('SUB_SOLVE',amg_mumps_,info,pos=pos)
#else
call p%precv(nlev_)%set('SUB_SOLVE',amg_ilu_n_,info,pos=pos)
@ -494,9 +494,9 @@ subroutine amg_scprecsetc(p,what,string,info,ilev,ilmax,pos,idx)
case('L1-BJAC')
call p%precv(nlev_)%set('SMOOTHER_TYPE',amg_l1_bjac_,info,pos=pos)
#if defined(HAVE_SLU_)
#if defined(PSB_HAVE_SLU)
call p%precv(nlev_)%set('SUB_SOLVE',amg_slu_,info,pos=pos)
#elif defined(HAVE_MUMPS_)
#elif defined(PSB_HAVE_MUMPS)
call p%precv(nlev_)%set('SUB_SOLVE',amg_mumps_,info,pos=pos)
#else
call p%precv(nlev_)%set('SUB_SOLVE',amg_ilu_n_,info,pos=pos)
@ -506,14 +506,14 @@ subroutine amg_scprecsetc(p,what,string,info,ilev,ilmax,pos,idx)
& amg_distr_mat_)
call p%precv(nlev_)%set('COARSE_MAT',amg_distr_mat_,info)
case('SLU')
#if defined(HAVE_SLU_)
#if defined(PSB_HAVE_SLU)
call p%precv(nlev_)%set('SMOOTHER_TYPE',amg_bjac_,info,pos=pos)
call p%precv(nlev_)%set('SUB_SOLVE',amg_slu_,info,pos=pos)
if (hier_asb) &
& call amg_warn_coarse_mat(p%precv(nlev_)%parms%get_coarse_mat(),&
& amg_repl_mat_)
call p%precv(nlev_)%set('COARSE_MAT',amg_repl_mat_,info,pos=pos)
#elif defined(HAVE_MUMPS_)
#elif defined(PSB_HAVE_MUMPS)
call p%precv(nlev_)%set('SMOOTHER_TYPE',amg_bjac_,info,pos=pos)
call p%precv(nlev_)%set('SUB_SOLVE',amg_mumps_,info,pos=pos)
if (hier_asb) &
@ -550,7 +550,7 @@ subroutine amg_scprecsetc(p,what,string,info,ilev,ilmax,pos,idx)
& amg_repl_mat_)
call p%precv(nlev_)%set('COARSE_MAT',amg_repl_mat_,info,pos=pos)
case('MUMPS')
#if defined(HAVE_MUMPS_)
#if defined(PSB_HAVE_MUMPS)
call p%precv(nlev_)%set('SMOOTHER_TYPE',amg_bjac_,info,pos=pos)
call p%precv(nlev_)%set('SUB_SOLVE',amg_mumps_,info,pos=pos)
if (hier_asb) &
@ -566,14 +566,14 @@ subroutine amg_scprecsetc(p,what,string,info,ilev,ilmax,pos,idx)
call p%precv(nlev_)%set('COARSE_MAT',amg_distr_mat_,info,pos=pos)
#endif
case('UMF')
#if defined(HAVE_SLU_)
#if defined(PSB_HAVE_SLU)
call p%precv(nlev_)%set('SMOOTHER_TYPE',amg_bjac_,info,pos=pos)
call p%precv(nlev_)%set('SUB_SOLVE',amg_slu_,info,pos=pos)
if (hier_asb) &
& call amg_warn_coarse_mat(p%precv(nlev_)%parms%get_coarse_mat(),&
& amg_repl_mat_)
call p%precv(nlev_)%set('COARSE_MAT',amg_repl_mat_,info,pos=pos)
#elif defined(HAVE_MUMPS_)
#elif defined(PSB_HAVE_MUMPS)
call p%precv(nlev_)%set('SMOOTHER_TYPE',amg_bjac_,info,pos=pos)
call p%precv(nlev_)%set('SUB_SOLVE',amg_mumps_,info,pos=pos)
if (hier_asb) &
@ -590,14 +590,14 @@ subroutine amg_scprecsetc(p,what,string,info,ilev,ilmax,pos,idx)
#endif
case('SLUDIST')
#if defined(HAVE_SLU_)
#if defined(PSB_HAVE_SLU)
call p%precv(nlev_)%set('SMOOTHER_TYPE',amg_bjac_,info,pos=pos)
call p%precv(nlev_)%set('SUB_SOLVE',amg_slu_,info,pos=pos)
if (hier_asb) &
& call amg_warn_coarse_mat(p%precv(nlev_)%parms%get_coarse_mat(),&
& amg_repl_mat_)
call p%precv(nlev_)%set('COARSE_MAT',amg_repl_mat_,info,pos=pos)
#elif defined(HAVE_MUMPS_)
#elif defined(PSB_HAVE_MUMPS)
call p%precv(nlev_)%set('SMOOTHER_TYPE',amg_bjac_,info,pos=pos)
call p%precv(nlev_)%set('SUB_SOLVE',amg_mumps_,info,pos=pos)
if (hier_asb) &
@ -709,9 +709,9 @@ subroutine amg_scprecsetc(p,what,string,info,ilev,ilmax,pos,idx)
select case (psb_toupper(trim(string)))
case('BJAC')
call p%precv(nlev_)%set('SMOOTHER_TYPE',amg_bjac_,info,pos=pos)
#if defined(HAVE_SLU_)
#if defined(PSB_HAVE_SLU)
call p%precv(nlev_)%set('SUB_SOLVE',amg_slu_,info,pos=pos)
#elif defined(HAVE_MUMPS_)
#elif defined(PSB_HAVE_MUMPS)
call p%precv(nlev_)%set('SUB_SOLVE',amg_mumps_,info,pos=pos)
#else
call p%precv(nlev_)%set('SUB_SOLVE',amg_ilu_n_,info,pos=pos)
@ -722,9 +722,9 @@ subroutine amg_scprecsetc(p,what,string,info,ilev,ilmax,pos,idx)
call p%precv(nlev_)%set('COARSE_MAT',amg_distr_mat_,info)
case('L1-BJAC')
call p%precv(nlev_)%set('SMOOTHER_TYPE',amg_l1_bjac_,info,pos=pos)
#if defined(HAVE_SLU_)
#if defined(PSB_HAVE_SLU)
call p%precv(nlev_)%set('SUB_SOLVE',amg_slu_,info,pos=pos)
#elif defined(HAVE_MUMPS_)
#elif defined(PSB_HAVE_MUMPS)
call p%precv(nlev_)%set('SUB_SOLVE',amg_mumps_,info,pos=pos)
#else
call p%precv(nlev_)%set('SUB_SOLVE',amg_ilu_n_,info,pos=pos)
@ -734,14 +734,14 @@ subroutine amg_scprecsetc(p,what,string,info,ilev,ilmax,pos,idx)
& amg_distr_mat_)
call p%precv(nlev_)%set('COARSE_MAT',amg_distr_mat_,info)
case('SLU')
#if defined(HAVE_SLU_)
#if defined(PSB_HAVE_SLU)
call p%precv(nlev_)%set('SMOOTHER_TYPE',amg_bjac_,info,pos=pos)
call p%precv(nlev_)%set('SUB_SOLVE',amg_slu_,info,pos=pos)
if (hier_asb) &
& call amg_warn_coarse_mat(p%precv(nlev_)%parms%get_coarse_mat(),&
& amg_repl_mat_)
call p%precv(nlev_)%set('COARSE_MAT',amg_repl_mat_,info,pos=pos)
#elif defined(HAVE_MUMPS_)
#elif defined(PSB_HAVE_MUMPS)
call p%precv(nlev_)%set('SMOOTHER_TYPE',amg_bjac_,info,pos=pos)
call p%precv(nlev_)%set('SUB_SOLVE',amg_mumps_,info,pos=pos)
if (hier_asb) &
@ -778,7 +778,7 @@ subroutine amg_scprecsetc(p,what,string,info,ilev,ilmax,pos,idx)
& amg_repl_mat_)
call p%precv(nlev_)%set('COARSE_MAT',amg_repl_mat_,info,pos=pos)
case('MUMPS')
#if defined(HAVE_MUMPS_)
#if defined(PSB_HAVE_MUMPS)
call p%precv(nlev_)%set('SMOOTHER_TYPE',amg_bjac_,info,pos=pos)
call p%precv(nlev_)%set('SUB_SOLVE',amg_mumps_,info,pos=pos)
if (hier_asb) &
@ -794,14 +794,14 @@ subroutine amg_scprecsetc(p,what,string,info,ilev,ilmax,pos,idx)
call p%precv(nlev_)%set('COARSE_MAT',amg_distr_mat_,info,pos=pos)
#endif
case('UMF')
#if defined(HAVE_SLU_)
#if defined(PSB_HAVE_SLU)
call p%precv(nlev_)%set('SMOOTHER_TYPE',amg_bjac_,info,pos=pos)
call p%precv(nlev_)%set('SUB_SOLVE',amg_slu_,info,pos=pos)
if (hier_asb) &
& call amg_warn_coarse_mat(p%precv(nlev_)%parms%get_coarse_mat(),&
& amg_repl_mat_)
call p%precv(nlev_)%set('COARSE_MAT',amg_repl_mat_,info,pos=pos)
#elif defined(HAVE_MUMPS_)
#elif defined(PSB_HAVE_MUMPS)
call p%precv(nlev_)%set('SMOOTHER_TYPE',amg_bjac_,info,pos=pos)
call p%precv(nlev_)%set('SUB_SOLVE',amg_mumps_,info,pos=pos)
if (hier_asb) &
@ -818,14 +818,14 @@ subroutine amg_scprecsetc(p,what,string,info,ilev,ilmax,pos,idx)
#endif
case('SLUDIST')
#if defined(HAVE_SLU_)
#if defined(PSB_HAVE_SLU)
call p%precv(nlev_)%set('SMOOTHER_TYPE',amg_bjac_,info,pos=pos)
call p%precv(nlev_)%set('SUB_SOLVE',amg_slu_,info,pos=pos)
if (hier_asb) &
& call amg_warn_coarse_mat(p%precv(nlev_)%parms%get_coarse_mat(),&
& amg_repl_mat_)
call p%precv(nlev_)%set('COARSE_MAT',amg_repl_mat_,info,pos=pos)
#elif defined(HAVE_MUMPS_)
#elif defined(PSB_HAVE_MUMPS)
call p%precv(nlev_)%set('SMOOTHER_TYPE',amg_bjac_,info,pos=pos)
call p%precv(nlev_)%set('SUB_SOLVE',amg_mumps_,info,pos=pos)
if (hier_asb) &

@ -100,7 +100,7 @@ subroutine amg_sprecinit(ctxt,prec,ptype,info)
use amg_s_gs_solver
use amg_s_poly_smoother
#if defined(HAVE_SLU_)
#if defined(PSB_HAVE_SLU)
use amg_s_slu_solver
#endif
@ -239,9 +239,9 @@ subroutine amg_sprecinit(ctxt,prec,ptype,info)
end do
call prec%set('ML_CYCLE','VCYCLE',info)
call prec%set('SMOOTHER_TYPE','FBGS',info)
#if defined(HAVE_MUMPS_)
#if defined(PSB_HAVE_MUMPS)
call prec%set('COARSE_SOLVE','MUMPS',info)
#elif defined(HAVE_SLU_)
#elif defined(PSB_HAVE_SLU)
call prec%set('COARSE_SOLVE','SLU',info)
#else
call prec%set('COARSE_SOLVE','ILU',info)

@ -88,7 +88,8 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
*/
#ifdef Have_SLU_
#include "amg_config.h"
#ifdef AMG_HAVE_SLU
#include "slu_sdefs.h"
#define HANDLE_SIZE 8
@ -122,7 +123,7 @@ int amg_sslu_fact(int n, int nnz, float *values,
*
*/
#ifdef Have_SLU_
#ifdef AMG_HAVE_SLU
SuperMatrix A, AC;
SuperMatrix *L, *U;
int *perm_r; /* row permutations from partial pivoting */
@ -171,10 +172,10 @@ int amg_sslu_fact(int n, int nnz, float *values,
panel_size = sp_ienv(1);
relax = sp_ienv(2);
#if defined(SLU_VERSION_5)
#if defined(AMG_SLU_VERSION_5)
sgstrf(&options, &AC, relax, panel_size,
etree, NULL, 0, perm_c, perm_r, L, U, &Glu, &stat, &info);
#elif defined(SLU_VERSION_4)
#elif defined(AMG_SLU_VERSION_4)
sgstrf(&options, &AC, relax, panel_size,
etree, NULL, 0, perm_c, perm_r, L, U, &stat, &info);
#else
@ -231,7 +232,7 @@ int amg_sslu_solve(int itrans, int n, int nrhs, float *b, int ldb,
*
*/
int info;
#ifdef Have_SLU_
#ifdef AMG_HAVE_SLU
SuperMatrix B;
SuperMatrix *L, *U;
int *perm_r; /* row permutations from partial pivoting */
@ -285,7 +286,7 @@ int amg_sslu_free(void *f_factors)
* free all storage in the end
*
*/
#ifdef Have_SLU_
#ifdef AMG_HAVE_SLU
factors_t *LUfactors;
/* Free the LU factors in the factors handle */

@ -127,9 +127,9 @@ subroutine amg_z_extprol_bld(a,desc_a,p,prolv,restrv,info,amold,vmold,imold)
if (debug_level >= psb_debug_outer_) &
& write(debug_unit,*) me,' ',trim(name),&
& 'Entering '
#if defined(LPK8)
#if defined(PSB_LPK8)
info=psb_err_internal_error_
call psb_errpush(info,name,a_err='Need fix for LPK8')
call psb_errpush(info,name,a_err='Need fix for PSB_LPK8')
goto 9999
#else
@ -373,9 +373,9 @@ contains
info = psb_success_
ctxt = desc_a%get_context()
call psb_info(ctxt,me,np)
#if defined(LPK8)
#if defined(PSB_LPK8)
info=psb_err_internal_error_
call psb_errpush(info,name,a_err='Need fix for LPK8')
call psb_errpush(info,name,a_err='Need fix for PSB_LPK8')
goto 9999
#else
allocate(nlaggr(np),ilaggr(1))

@ -90,16 +90,16 @@ subroutine amg_zcprecseti(p,what,val,info,ilev,ilmax,pos,idx)
use amg_z_ainv_solver
use amg_z_invk_solver
use amg_z_invt_solver
#if defined(HAVE_UMF_)
#if defined(PSB_HAVE_UMF)
use amg_z_umf_solver
#endif
#if defined(HAVE_SLUDIST_)
#if defined(PSB_HAVE_SLUDIST)
use amg_z_sludist_solver
#endif
#if defined(HAVE_SLU_)
#if defined(PSB_HAVE_SLU)
use amg_z_slu_solver
#endif
#if defined(HAVE_MUMPS_)
#if defined(PSB_HAVE_MUMPS)
use amg_z_mumps_solver
#endif
@ -335,16 +335,16 @@ subroutine amg_zcprecsetc(p,what,string,info,ilev,ilmax,pos,idx)
use amg_z_ainv_solver
use amg_z_invk_solver
use amg_z_invt_solver
#if defined(HAVE_UMF_)
#if defined(PSB_HAVE_UMF)
use amg_z_umf_solver
#endif
#if defined(HAVE_SLUDIST_)
#if defined(PSB_HAVE_SLUDIST)
use amg_z_sludist_solver
#endif
#if defined(HAVE_SLU_)
#if defined(PSB_HAVE_SLU)
use amg_z_slu_solver
#endif
#if defined(HAVE_MUMPS_)
#if defined(PSB_HAVE_MUMPS)
use amg_z_mumps_solver
#endif
use amg_z_krm_solver, only : amg_z_krm_solver_type
@ -492,11 +492,11 @@ subroutine amg_zcprecsetc(p,what,string,info,ilev,ilmax,pos,idx)
select case (psb_toupper(string))
case('BJAC')
call p%precv(nlev_)%set('SMOOTHER_TYPE',amg_bjac_,info,pos=pos)
#if defined(HAVE_UMF_)
#if defined(PSB_HAVE_UMF)
call p%precv(nlev_)%set('SUB_SOLVE',amg_umf_,info,pos=pos)
#elif defined(HAVE_SLU_)
#elif defined(PSB_HAVE_SLU)
call p%precv(nlev_)%set('SUB_SOLVE',amg_slu_,info,pos=pos)
#elif defined(HAVE_MUMPS_)
#elif defined(PSB_HAVE_MUMPS)
call p%precv(nlev_)%set('SUB_SOLVE',amg_mumps_,info,pos=pos)
#else
call p%precv(nlev_)%set('SUB_SOLVE',amg_ilu_n_,info,pos=pos)
@ -508,11 +508,11 @@ subroutine amg_zcprecsetc(p,what,string,info,ilev,ilmax,pos,idx)
case('L1-BJAC')
call p%precv(nlev_)%set('SMOOTHER_TYPE',amg_l1_bjac_,info,pos=pos)
#if defined(HAVE_UMF_)
#if defined(PSB_HAVE_UMF)
call p%precv(nlev_)%set('SUB_SOLVE',amg_umf_,info,pos=pos)
#elif defined(HAVE_SLU_)
#elif defined(PSB_HAVE_SLU)
call p%precv(nlev_)%set('SUB_SOLVE',amg_slu_,info,pos=pos)
#elif defined(HAVE_MUMPS_)
#elif defined(PSB_HAVE_MUMPS)
call p%precv(nlev_)%set('SUB_SOLVE',amg_mumps_,info,pos=pos)
#else
call p%precv(nlev_)%set('SUB_SOLVE',amg_ilu_n_,info,pos=pos)
@ -522,14 +522,14 @@ subroutine amg_zcprecsetc(p,what,string,info,ilev,ilmax,pos,idx)
& amg_distr_mat_)
call p%precv(nlev_)%set('COARSE_MAT',amg_distr_mat_,info)
case('SLU')
#if defined(HAVE_SLU_)
#if defined(PSB_HAVE_SLU)
call p%precv(nlev_)%set('SMOOTHER_TYPE',amg_bjac_,info,pos=pos)
call p%precv(nlev_)%set('SUB_SOLVE',amg_slu_,info,pos=pos)
if (hier_asb) &
& call amg_warn_coarse_mat(p%precv(nlev_)%parms%get_coarse_mat(),&
& amg_repl_mat_)
call p%precv(nlev_)%set('COARSE_MAT',amg_repl_mat_,info,pos=pos)
#elif defined(HAVE_MUMPS_)
#elif defined(PSB_HAVE_MUMPS)
call p%precv(nlev_)%set('SMOOTHER_TYPE',amg_bjac_,info,pos=pos)
call p%precv(nlev_)%set('SUB_SOLVE',amg_mumps_,info,pos=pos)
if (hier_asb) &
@ -566,7 +566,7 @@ subroutine amg_zcprecsetc(p,what,string,info,ilev,ilmax,pos,idx)
& amg_repl_mat_)
call p%precv(nlev_)%set('COARSE_MAT',amg_repl_mat_,info,pos=pos)
case('MUMPS')
#if defined(HAVE_MUMPS_)
#if defined(PSB_HAVE_MUMPS)
call p%precv(nlev_)%set('SMOOTHER_TYPE',amg_bjac_,info,pos=pos)
call p%precv(nlev_)%set('SUB_SOLVE',amg_mumps_,info,pos=pos)
if (hier_asb) &
@ -582,21 +582,21 @@ subroutine amg_zcprecsetc(p,what,string,info,ilev,ilmax,pos,idx)
call p%precv(nlev_)%set('COARSE_MAT',amg_distr_mat_,info,pos=pos)
#endif
case('UMF')
#if defined(HAVE_UMF_)
#if defined(PSB_HAVE_UMF)
call p%precv(nlev_)%set('SMOOTHER_TYPE',amg_bjac_,info,pos=pos)
call p%precv(nlev_)%set('SUB_SOLVE',amg_umf_,info,pos=pos)
if (hier_asb) &
& call amg_warn_coarse_mat(p%precv(nlev_)%parms%get_coarse_mat(),&
& amg_repl_mat_)
call p%precv(nlev_)%set('COARSE_MAT',amg_repl_mat_,info,pos=pos)
#elif defined(HAVE_SLU_)
#elif defined(PSB_HAVE_SLU)
call p%precv(nlev_)%set('SMOOTHER_TYPE',amg_bjac_,info,pos=pos)
call p%precv(nlev_)%set('SUB_SOLVE',amg_slu_,info,pos=pos)
if (hier_asb) &
& call amg_warn_coarse_mat(p%precv(nlev_)%parms%get_coarse_mat(),&
& amg_repl_mat_)
call p%precv(nlev_)%set('COARSE_MAT',amg_repl_mat_,info,pos=pos)
#elif defined(HAVE_MUMPS_)
#elif defined(PSB_HAVE_MUMPS)
call p%precv(nlev_)%set('SMOOTHER_TYPE',amg_bjac_,info,pos=pos)
call p%precv(nlev_)%set('SUB_SOLVE',amg_mumps_,info,pos=pos)
if (hier_asb) &
@ -613,28 +613,28 @@ subroutine amg_zcprecsetc(p,what,string,info,ilev,ilmax,pos,idx)
#endif
case('SLUDIST')
#if defined(HAVE_SLUDIST_)
#if defined(PSB_HAVE_SLUDIST)
call p%precv(nlev_)%set('SMOOTHER_TYPE',amg_bjac_,info,pos=pos)
call p%precv(nlev_)%set('SUB_SOLVE',amg_sludist_,info,pos=pos)
if (hier_asb) &
& call amg_warn_coarse_mat(p%precv(nlev_)%parms%get_coarse_mat(),&
& amg_distr_mat_)
call p%precv(nlev_)%set('COARSE_MAT',amg_distr_mat_,info,pos=pos)
#elif defined(HAVE_UMF_)
#elif defined(PSB_HAVE_UMF)
call p%precv(nlev_)%set('SMOOTHER_TYPE',amg_bjac_,info,pos=pos)
call p%precv(nlev_)%set('SUB_SOLVE',amg_umf_,info,pos=pos)
if (hier_asb) &
& call amg_warn_coarse_mat(p%precv(nlev_)%parms%get_coarse_mat(),&
& amg_repl_mat_)
call p%precv(nlev_)%set('COARSE_MAT',amg_repl_mat_,info,pos=pos)
#elif defined(HAVE_SLU_)
#elif defined(PSB_HAVE_SLU)
call p%precv(nlev_)%set('SMOOTHER_TYPE',amg_bjac_,info,pos=pos)
call p%precv(nlev_)%set('SUB_SOLVE',amg_slu_,info,pos=pos)
if (hier_asb) &
& call amg_warn_coarse_mat(p%precv(nlev_)%parms%get_coarse_mat(),&
& amg_repl_mat_)
call p%precv(nlev_)%set('COARSE_MAT',amg_repl_mat_,info,pos=pos)
#elif defined(HAVE_MUMPS_)
#elif defined(PSB_HAVE_MUMPS)
call p%precv(nlev_)%set('SMOOTHER_TYPE',amg_bjac_,info,pos=pos)
call p%precv(nlev_)%set('SUB_SOLVE',amg_mumps_,info,pos=pos)
if (hier_asb) &
@ -746,11 +746,11 @@ subroutine amg_zcprecsetc(p,what,string,info,ilev,ilmax,pos,idx)
select case (psb_toupper(trim(string)))
case('BJAC')
call p%precv(nlev_)%set('SMOOTHER_TYPE',amg_bjac_,info,pos=pos)
#if defined(HAVE_UMF_)
#if defined(PSB_HAVE_UMF)
call p%precv(nlev_)%set('SUB_SOLVE',amg_umf_,info,pos=pos)
#elif defined(HAVE_SLU_)
#elif defined(PSB_HAVE_SLU)
call p%precv(nlev_)%set('SUB_SOLVE',amg_slu_,info,pos=pos)
#elif defined(HAVE_MUMPS_)
#elif defined(PSB_HAVE_MUMPS)
call p%precv(nlev_)%set('SUB_SOLVE',amg_mumps_,info,pos=pos)
#else
call p%precv(nlev_)%set('SUB_SOLVE',amg_ilu_n_,info,pos=pos)
@ -761,11 +761,11 @@ subroutine amg_zcprecsetc(p,what,string,info,ilev,ilmax,pos,idx)
call p%precv(nlev_)%set('COARSE_MAT',amg_distr_mat_,info)
case('L1-BJAC')
call p%precv(nlev_)%set('SMOOTHER_TYPE',amg_l1_bjac_,info,pos=pos)
#if defined(HAVE_UMF_)
#if defined(PSB_HAVE_UMF)
call p%precv(nlev_)%set('SUB_SOLVE',amg_umf_,info,pos=pos)
#elif defined(HAVE_SLU_)
#elif defined(PSB_HAVE_SLU)
call p%precv(nlev_)%set('SUB_SOLVE',amg_slu_,info,pos=pos)
#elif defined(HAVE_MUMPS_)
#elif defined(PSB_HAVE_MUMPS)
call p%precv(nlev_)%set('SUB_SOLVE',amg_mumps_,info,pos=pos)
#else
call p%precv(nlev_)%set('SUB_SOLVE',amg_ilu_n_,info,pos=pos)
@ -775,14 +775,14 @@ subroutine amg_zcprecsetc(p,what,string,info,ilev,ilmax,pos,idx)
& amg_distr_mat_)
call p%precv(nlev_)%set('COARSE_MAT',amg_distr_mat_,info)
case('SLU')
#if defined(HAVE_SLU_)
#if defined(PSB_HAVE_SLU)
call p%precv(nlev_)%set('SMOOTHER_TYPE',amg_bjac_,info,pos=pos)
call p%precv(nlev_)%set('SUB_SOLVE',amg_slu_,info,pos=pos)
if (hier_asb) &
& call amg_warn_coarse_mat(p%precv(nlev_)%parms%get_coarse_mat(),&
& amg_repl_mat_)
call p%precv(nlev_)%set('COARSE_MAT',amg_repl_mat_,info,pos=pos)
#elif defined(HAVE_MUMPS_)
#elif defined(PSB_HAVE_MUMPS)
call p%precv(nlev_)%set('SMOOTHER_TYPE',amg_bjac_,info,pos=pos)
call p%precv(nlev_)%set('SUB_SOLVE',amg_mumps_,info,pos=pos)
if (hier_asb) &
@ -819,7 +819,7 @@ subroutine amg_zcprecsetc(p,what,string,info,ilev,ilmax,pos,idx)
& amg_repl_mat_)
call p%precv(nlev_)%set('COARSE_MAT',amg_repl_mat_,info,pos=pos)
case('MUMPS')
#if defined(HAVE_MUMPS_)
#if defined(PSB_HAVE_MUMPS)
call p%precv(nlev_)%set('SMOOTHER_TYPE',amg_bjac_,info,pos=pos)
call p%precv(nlev_)%set('SUB_SOLVE',amg_mumps_,info,pos=pos)
if (hier_asb) &
@ -835,21 +835,21 @@ subroutine amg_zcprecsetc(p,what,string,info,ilev,ilmax,pos,idx)
call p%precv(nlev_)%set('COARSE_MAT',amg_distr_mat_,info,pos=pos)
#endif
case('UMF')
#if defined(HAVE_UMF_)
#if defined(PSB_HAVE_UMF)
call p%precv(nlev_)%set('SMOOTHER_TYPE',amg_bjac_,info,pos=pos)
call p%precv(nlev_)%set('SUB_SOLVE',amg_umf_,info,pos=pos)
if (hier_asb) &
& call amg_warn_coarse_mat(p%precv(nlev_)%parms%get_coarse_mat(),&
& amg_repl_mat_)
call p%precv(nlev_)%set('COARSE_MAT',amg_repl_mat_,info,pos=pos)
#elif defined(HAVE_SLU_)
#elif defined(PSB_HAVE_SLU)
call p%precv(nlev_)%set('SMOOTHER_TYPE',amg_bjac_,info,pos=pos)
call p%precv(nlev_)%set('SUB_SOLVE',amg_slu_,info,pos=pos)
if (hier_asb) &
& call amg_warn_coarse_mat(p%precv(nlev_)%parms%get_coarse_mat(),&
& amg_repl_mat_)
call p%precv(nlev_)%set('COARSE_MAT',amg_repl_mat_,info,pos=pos)
#elif defined(HAVE_MUMPS_)
#elif defined(PSB_HAVE_MUMPS)
call p%precv(nlev_)%set('SMOOTHER_TYPE',amg_bjac_,info,pos=pos)
call p%precv(nlev_)%set('SUB_SOLVE',amg_mumps_,info,pos=pos)
if (hier_asb) &
@ -866,28 +866,28 @@ subroutine amg_zcprecsetc(p,what,string,info,ilev,ilmax,pos,idx)
#endif
case('SLUDIST')
#if defined(HAVE_SLUDIST_)
#if defined(PSB_HAVE_SLUDIST)
call p%precv(nlev_)%set('SMOOTHER_TYPE',amg_bjac_,info,pos=pos)
call p%precv(nlev_)%set('SUB_SOLVE',amg_sludist_,info,pos=pos)
if (hier_asb) &
& call amg_warn_coarse_mat(p%precv(nlev_)%parms%get_coarse_mat(),&
& amg_distr_mat_)
call p%precv(nlev_)%set('COARSE_MAT',amg_distr_mat_,info,pos=pos)
#elif defined(HAVE_UMF_)
#elif defined(PSB_HAVE_UMF)
call p%precv(nlev_)%set('SMOOTHER_TYPE',amg_bjac_,info,pos=pos)
call p%precv(nlev_)%set('SUB_SOLVE',amg_umf_,info,pos=pos)
if (hier_asb) &
& call amg_warn_coarse_mat(p%precv(nlev_)%parms%get_coarse_mat(),&
& amg_repl_mat_)
call p%precv(nlev_)%set('COARSE_MAT',amg_repl_mat_,info,pos=pos)
#elif defined(HAVE_SLU_)
#elif defined(PSB_HAVE_SLU)
call p%precv(nlev_)%set('SMOOTHER_TYPE',amg_bjac_,info,pos=pos)
call p%precv(nlev_)%set('SUB_SOLVE',amg_slu_,info,pos=pos)
if (hier_asb) &
& call amg_warn_coarse_mat(p%precv(nlev_)%parms%get_coarse_mat(),&
& amg_repl_mat_)
call p%precv(nlev_)%set('COARSE_MAT',amg_repl_mat_,info,pos=pos)
#elif defined(HAVE_MUMPS_)
#elif defined(PSB_HAVE_MUMPS)
call p%precv(nlev_)%set('SMOOTHER_TYPE',amg_bjac_,info,pos=pos)
call p%precv(nlev_)%set('SUB_SOLVE',amg_mumps_,info,pos=pos)
if (hier_asb) &

@ -99,10 +99,10 @@ subroutine amg_zprecinit(ctxt,prec,ptype,info)
use amg_z_ilu_solver
use amg_z_gs_solver
#if defined(HAVE_UMF_)
#if defined(PSB_HAVE_UMF)
use amg_z_umf_solver
#endif
#if defined(HAVE_SLU_)
#if defined(PSB_HAVE_SLU)
use amg_z_slu_solver
#endif
@ -233,11 +233,11 @@ subroutine amg_zprecinit(ctxt,prec,ptype,info)
end do
call prec%set('ML_CYCLE','VCYCLE',info)
call prec%set('SMOOTHER_TYPE','FBGS',info)
#if defined(HAVE_UMF_)
#if defined(PSB_HAVE_UMF)
call prec%set('COARSE_SOLVE','UMF',info)
#elif defined(HAVE_MUMPS_)
#elif defined(PSB_HAVE_MUMPS)
call prec%set('COARSE_SOLVE','MUMPS',info)
#elif defined(HAVE_SLU_)
#elif defined(PSB_HAVE_SLU)
call prec%set('COARSE_SOLVE','SLU',info)
#else
call prec%set('COARSE_SOLVE','ILU',info)

@ -87,8 +87,8 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
* October 15, 2003
*
*/
#ifdef Have_SLU_
#include "amg_config.h"
#ifdef AMG_HAVE_SLU
#include "slu_zdefs.h"
#define HANDLE_SIZE 8
@ -109,7 +109,7 @@ typedef struct {
int amg_zslu_fact(int n, int nnz,
#ifdef HAVE_SLU_
#ifdef AMG_HAVE_SLU
doublecomplex *values,
#else
void *values,
@ -127,7 +127,7 @@ int amg_zslu_fact(int n, int nnz,
*
*/
#ifdef Have_SLU_
#ifdef AMG_HAVE_SLU
SuperMatrix A, AC;
SuperMatrix *L, *U;
int *perm_r; /* row permutations from partial pivoting */
@ -176,10 +176,10 @@ int amg_zslu_fact(int n, int nnz,
panel_size = sp_ienv(1);
relax = sp_ienv(2);
#if defined(SLU_VERSION_5)
#if defined(AMG_SLU_VERSION_5)
zgstrf(&options, &AC, relax, panel_size, etree,
NULL, 0, perm_c, perm_r, L, U, &Glu, &stat, &info);
#elif defined(SLU_VERSION_4)
#elif defined(AMG_SLU_VERSION_4)
zgstrf(&options, &AC, relax, panel_size, etree,
NULL, 0, perm_c, perm_r, L, U, &stat, &info);
#else
@ -228,7 +228,7 @@ int amg_zslu_fact(int n, int nnz,
int amg_zslu_solve(int itrans, int n, int nrhs,
#ifdef HAVE_SLU_
#ifdef AMG_HAVE_SLU
doublecomplex *b,
#else
void *b,

@ -88,13 +88,14 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
*/
#ifdef Have_SLUDist_
#include "amg_config.h"
#ifdef AMG_HAVE_SLUDIST
#include <math.h>
#include "superlu_zdefs.h"
#define HANDLE_SIZE 8
#if (SLUD_VERSION_>=63)
#if (AMG_SLUD_VERSION>=63)
typedef struct {
SuperMatrix *A;
zLUstruct_t *LUstruct;
@ -118,7 +119,7 @@ typedef struct {
int amg_zsludist_fact(int n, int nl, int nnzl, int ffstr,
#ifdef Have_SLUDist_
#ifdef AMG_HAVE_SLUDIST
doublecomplex *values, int *rowptr, int *colind,
void **f_factors,
#else
@ -138,11 +139,11 @@ int amg_zsludist_fact(int n, int nl, int nnzl, int ffstr,
*
*/
#ifdef Have_SLUDist_
#ifdef AMG_HAVE_SLUDIST
SuperMatrix *A;
NRformat_loc *Astore;
#if (SLUD_VERSION_>=63)
#if (AMG_SLUD_VERSION>=63)
zScalePermstruct_t *ScalePermstruct;
zLUstruct_t *LUstruct;
zSOLVEstruct_t SOLVEstruct;
@ -155,9 +156,9 @@ int amg_zsludist_fact(int n, int nl, int nnzl, int ffstr,
int i, panel_size, permc_spec, relax, info;
trans_t trans;
double drop_tol = 0.0,berr[1];
#if (SLUD_VERSION_>=50)
#if (AMG_SLUD_VERSION>=50)
superlu_dist_options_t options;
#elif (SLUD_VERSION_>=30)
#elif (AMG_SLUD_VERSION>=30)
superlu_options_t options;
#else
choke_on_me;
@ -181,7 +182,7 @@ int amg_zsludist_fact(int n, int nl, int nnzl, int ffstr,
SLU_NR_loc, SLU_Z, SLU_GE);
/* Initialize ScalePermstruct and LUstruct. */
#if (SLUD_VERSION_>=63)
#if (AMG_SLUD_VERSION>=63)
ScalePermstruct = (zScalePermstruct_t *) SUPERLU_MALLOC(sizeof(zScalePermstruct_t));
LUstruct = (zLUstruct_t *) SUPERLU_MALLOC(sizeof(zLUstruct_t));
zScalePermstructInit(n,n, ScalePermstruct);
@ -190,11 +191,11 @@ int amg_zsludist_fact(int n, int nl, int nnzl, int ffstr,
LUstruct = (LUstruct_t *) SUPERLU_MALLOC(sizeof(LUstruct_t));
ScalePermstructInit(n,n, ScalePermstruct);
#endif
#if (SLUD_VERSION_>=63)
#if (AMG_SLUD_VERSION>=63)
zLUstructInit(n, LUstruct);
#elif (SLUD_VERSION_>=40)
#elif (AMG_SLUD_VERSION>=40)
LUstructInit(n, LUstruct);
#elif (SLUD_VERSION_>=30)
#elif (AMG_SLUD_VERSION>=30)
LUstructInit(n,n, LUstruct);
#else
choke_on_me;
@ -242,7 +243,7 @@ int amg_zsludist_fact(int n, int nl, int nnzl, int ffstr,
int amg_zsludist_solve(int itrans, int n, int nrhs,
#ifdef Have_SLUDist_
#ifdef AMG_HAVE_SLUDIST
doublecomplex *b,
#else
void *b,
@ -255,9 +256,9 @@ int amg_zsludist_solve(int itrans, int n, int nrhs,
* performs triangular solve
*
*/
#ifdef Have_SLUDist_
#ifdef AMG_HAVE_SLUDIST
SuperMatrix *A;
#if (SLUD_VERSION_>=63)
#if (AMG_SLUD_VERSION>=63)
zScalePermstruct_t *ScalePermstruct;
zLUstruct_t *LUstruct;
zSOLVEstruct_t SOLVEstruct;
@ -271,9 +272,9 @@ int amg_zsludist_solve(int itrans, int n, int nrhs,
trans_t trans;
double drop_tol = 0.0;
double *berr;
#if (SLUD_VERSION_>=50)
#if (AMG_SLUD_VERSION>=50)
superlu_dist_options_t options;
#elif (SLUD_VERSION_>=30)
#elif (AMG_SLUD_VERSION>=30)
superlu_options_t options;
#else
choke_on_me;
@ -341,9 +342,9 @@ int amg_zsludist_free(void *f_factors)
* free all storage in the end
*
*/
#ifdef Have_SLUDist_
#ifdef AMG_HAVE_SLUDIST
SuperMatrix *A;
#if (SLUD_VERSION_>=63)
#if (AMG_SLUD_VERSION>=63)
zScalePermstruct_t *ScalePermstruct;
zLUstruct_t *LUstruct;
zSOLVEstruct_t SOLVEstruct;
@ -357,9 +358,9 @@ int amg_zsludist_free(void *f_factors)
trans_t trans;
double drop_tol = 0.0;
double *berr;
#if (SLUD_VERSION_>=50)
#if (AMG_SLUD_VERSION>=50)
superlu_dist_options_t options;
#elif (SLUD_VERSION_>=30)
#elif (AMG_SLUD_VERSION>=30)
superlu_options_t options;
#else
choke_on_me;
@ -380,7 +381,7 @@ int amg_zsludist_free(void *f_factors)
// we either have a leak or a segfault here.
// To be investigated further.
//Destroy_CompRowLoc_Matrix_dist(A);
#if (SLUD_VERSION_>=63)
#if (AMG_SLUD_VERSION>=63)
zScalePermstructFree(ScalePermstruct);
zLUstructFree(LUstruct);
#else

@ -73,10 +73,9 @@ Availability:
http://www.cise.ufl.edu/research/sparse/umfpack
*/
#include <stdio.h>
#ifdef Have_UMF_
#include "amg_config.h"
#ifdef AMG_HAVE_UMF
#include "umfpack.h"
#endif
@ -89,7 +88,7 @@ int amg_zumf_fact(int n, int nnz,
{
#ifdef Have_UMF_
#ifdef AMG_HAVE_UMF
double Info [UMFPACK_INFO], Control [UMFPACK_CONTROL];
void *Symbolic, *Numeric ;
int i, info;
@ -147,7 +146,7 @@ int amg_zumf_solve(int itrans, int n,
void *numptr)
{
#ifdef Have_UMF_
#ifdef AMG_HAVE_UMF
double Info [UMFPACK_INFO], Control [UMFPACK_CONTROL];
void *Symbolic, *Numeric ;
int i,trans, info;
@ -179,7 +178,7 @@ int amg_zumf_solve(int itrans, int n,
int amg_zumf_free(void *symptr, void *numptr)
{
#ifdef Have_UMF_
#ifdef AMG_HAVE_UMF
void *Symbolic, *Numeric ;
Symbolic = symptr;
Numeric = numptr;

@ -53,10 +53,10 @@ subroutine amg_c_base_onelev_csetc(lv,what,val,info,pos,idx)
use amg_c_ainv_solver
use amg_c_invk_solver
use amg_c_invt_solver
#if defined(HAVE_SLU_)
#if defined(PSB_HAVE_SLU)
use amg_c_slu_solver
#endif
#if defined(HAVE_MUMPS_)
#if defined(PSB_HAVE_MUMPS)
use amg_c_mumps_solver
#endif
@ -88,10 +88,10 @@ subroutine amg_c_base_onelev_csetc(lv,what,val,info,pos,idx)
type(amg_c_ainv_solver_type) :: amg_c_ainv_solver_mold
type(amg_c_invk_solver_type) :: amg_c_invk_solver_mold
type(amg_c_invt_solver_type) :: amg_c_invt_solver_mold
#if defined(HAVE_SLU_)
#if defined(PSB_HAVE_SLU)
type(amg_c_slu_solver_type) :: amg_c_slu_solver_mold
#endif
#if defined(HAVE_MUMPS_)
#if defined(PSB_HAVE_MUMPS)
type(amg_c_mumps_solver_type) :: amg_c_mumps_solver_mold
#endif
@ -216,11 +216,11 @@ subroutine amg_c_base_onelev_csetc(lv,what,val,info,pos,idx)
if (allocated(lv%sm2a)) call lv%sm2a%sv%set('SUB_SOLVE',val,info)
end if
end if
#ifdef HAVE_SLU_
#ifdef PSB_HAVE_SLU
case ('SLU')
call lv%set(amg_c_slu_solver_mold,info,pos=pos)
#endif
#ifdef HAVE_MUMPS_
#ifdef PSB_HAVE_MUMPS
case ('MUMPS')
call lv%set(amg_c_mumps_solver_mold,info,pos=pos)
#endif
@ -252,14 +252,14 @@ subroutine amg_c_base_onelev_csetc(lv,what,val,info,pos,idx)
allocate(amg_c_dec_aggregator_type :: lv%aggr, stat=info)
case('SYMDEC')
allocate(amg_c_symdec_aggregator_type :: lv%aggr, stat=info)
#if !defined(SERIAL_MPI)
#if !defined(PSB_SERIAL_MPI)
#endif
case default
info = psb_err_internal_error_
#if !defined(SERIAL_MPI)
#if !defined(PSB_SERIAL_MPI)
call psb_errpush(info,name,a_err='Unsupported PAR_AGGR_ALG')
#else
call psb_errpush(info,name,a_err='PAR_AGGR_ALG unsupported (SERIAL_MPI on)')
call psb_errpush(info,name,a_err='PAR_AGGR_ALG unsupported (PSB_SERIAL_MPI on)')
#endif
goto 9999
end select

@ -49,10 +49,10 @@ subroutine amg_c_base_onelev_cseti(lv,what,val,info,pos,idx)
use amg_c_ilu_solver
use amg_c_id_solver
use amg_c_gs_solver
#if defined(HAVE_SLU_)
#if defined(PSB_HAVE_SLU)
use amg_c_slu_solver
#endif
#if defined(HAVE_MUMPS_)
#if defined(PSB_HAVE_MUMPS)
use amg_c_mumps_solver
#endif
@ -78,10 +78,10 @@ subroutine amg_c_base_onelev_cseti(lv,what,val,info,pos,idx)
type(amg_c_id_solver_type) :: amg_c_id_solver_mold
type(amg_c_gs_solver_type) :: amg_c_gs_solver_mold
type(amg_c_bwgs_solver_type) :: amg_c_bwgs_solver_mold
#if defined(HAVE_SLU_)
#if defined(PSB_HAVE_SLU)
type(amg_c_slu_solver_type) :: amg_c_slu_solver_mold
#endif
#if defined(HAVE_MUMPS_)
#if defined(PSB_HAVE_MUMPS)
type(amg_c_mumps_solver_type) :: amg_c_mumps_solver_mold
#endif
@ -174,11 +174,11 @@ subroutine amg_c_base_onelev_cseti(lv,what,val,info,pos,idx)
if (allocated(lv%sm2a)) call lv%sm2a%sv%set('SUB_SOLVE',val,info)
end if
end if
#ifdef HAVE_SLU_
#ifdef PSB_HAVE_SLU
case (amg_slu_)
call lv%set(amg_c_slu_solver_mold,info,pos=pos)
#endif
#ifdef HAVE_MUMPS_
#ifdef PSB_HAVE_MUMPS
case (amg_mumps_)
call lv%set(amg_c_mumps_solver_mold,info,pos=pos)
#endif

@ -84,11 +84,7 @@ subroutine amg_c_base_onelev_setsm(lev,val,info,pos)
end if
endif
if (.not.allocated(lev%sm)) then
#ifdef HAVE_MOLD
allocate(lev%sm,mold=val)
#else
allocate(lev%sm,source=val)
#endif
end if
call lev%sm%default()
if (ipos_ == amg_smooth_both_) lev%sm2 => lev%sm
@ -100,11 +96,7 @@ subroutine amg_c_base_onelev_setsm(lev,val,info,pos)
endif
end if
if (.not.allocated(lev%sm2a)) then
#ifdef HAVE_MOLD
allocate(lev%sm2a,mold=val)
#else
allocate(lev%sm2a,source=val)
#endif
end if
call lev%sm2a%default()
lev%sm2 => lev%sm2a

@ -81,11 +81,7 @@ subroutine amg_c_base_onelev_setsv(lev,val,info,pos)
end if
if (.not.allocated(lev%sm%sv)) then
#ifdef HAVE_MOLD
allocate(lev%sm%sv,mold=val,stat=info)
#else
allocate(lev%sm%sv,source=val,stat=info)
#endif
if (info /= 0) then
info = 3111
return
@ -125,11 +121,7 @@ subroutine amg_c_base_onelev_setsv(lev,val,info,pos)
end if
end if
if (.not.allocated(lev%sm2a%sv)) then
#ifdef HAVE_MOLD
allocate(lev%sm2a%sv,mold=val,stat=info)
#else
allocate(lev%sm2a%sv,source=val,stat=info)
#endif
if (info /= 0) then
info = 3111
return

@ -42,7 +42,7 @@ subroutine amg_d_base_onelev_csetc(lv,what,val,info,pos,idx)
use amg_d_base_aggregator_mod
use amg_d_dec_aggregator_mod
use amg_d_symdec_aggregator_mod
#if !defined(SERIAL_MPI)
#if !defined(PSB_SERIAL_MPI)
use amg_d_parmatch_aggregator_mod
#endif
use amg_d_poly_smoother
@ -57,16 +57,16 @@ subroutine amg_d_base_onelev_csetc(lv,what,val,info,pos,idx)
use amg_d_ainv_solver
use amg_d_invk_solver
use amg_d_invt_solver
#if defined(HAVE_UMF_)
#if defined(PSB_HAVE_UMF)
use amg_d_umf_solver
#endif
#if defined(HAVE_SLUDIST_)
#if defined(PSB_HAVE_SLUDIST)
use amg_d_sludist_solver
#endif
#if defined(HAVE_SLU_)
#if defined(PSB_HAVE_SLU)
use amg_d_slu_solver
#endif
#if defined(HAVE_MUMPS_)
#if defined(PSB_HAVE_MUMPS)
use amg_d_mumps_solver
#endif
@ -99,16 +99,16 @@ subroutine amg_d_base_onelev_csetc(lv,what,val,info,pos,idx)
type(amg_d_invk_solver_type) :: amg_d_invk_solver_mold
type(amg_d_invt_solver_type) :: amg_d_invt_solver_mold
type(amg_d_poly_smoother_type) :: amg_d_poly_smoother_mold
#if defined(HAVE_UMF_)
#if defined(PSB_HAVE_UMF)
type(amg_d_umf_solver_type) :: amg_d_umf_solver_mold
#endif
#if defined(HAVE_SLUDIST_)
#if defined(PSB_HAVE_SLUDIST)
type(amg_d_sludist_solver_type) :: amg_d_sludist_solver_mold
#endif
#if defined(HAVE_SLU_)
#if defined(PSB_HAVE_SLU)
type(amg_d_slu_solver_type) :: amg_d_slu_solver_mold
#endif
#if defined(HAVE_MUMPS_)
#if defined(PSB_HAVE_MUMPS)
type(amg_d_mumps_solver_type) :: amg_d_mumps_solver_mold
#endif
@ -236,19 +236,19 @@ subroutine amg_d_base_onelev_csetc(lv,what,val,info,pos,idx)
if (allocated(lv%sm2a)) call lv%sm2a%sv%set('SUB_SOLVE',val,info)
end if
end if
#ifdef HAVE_SLU_
#ifdef PSB_HAVE_SLU
case ('SLU')
call lv%set(amg_d_slu_solver_mold,info,pos=pos)
#endif
#ifdef HAVE_MUMPS_
#ifdef PSB_HAVE_MUMPS
case ('MUMPS')
call lv%set(amg_d_mumps_solver_mold,info,pos=pos)
#endif
#ifdef HAVE_SLUDIST_
#ifdef PSB_HAVE_SLUDIST
case ('SLUDIST')
call lv%set(amg_d_sludist_solver_mold,info,pos=pos)
#endif
#ifdef HAVE_UMF_
#ifdef PSB_HAVE_UMF
case ('UMF')
call lv%set(amg_d_umf_solver_mold,info,pos=pos)
#endif
@ -280,16 +280,16 @@ subroutine amg_d_base_onelev_csetc(lv,what,val,info,pos,idx)
allocate(amg_d_dec_aggregator_type :: lv%aggr, stat=info)
case('SYMDEC')
allocate(amg_d_symdec_aggregator_type :: lv%aggr, stat=info)
#if !defined(SERIAL_MPI)
#if !defined(PSB_SERIAL_MPI)
case('COUP','COUPLED')
allocate(amg_d_parmatch_aggregator_type :: lv%aggr, stat=info)
#endif
case default
info = psb_err_internal_error_
#if !defined(SERIAL_MPI)
#if !defined(PSB_SERIAL_MPI)
call psb_errpush(info,name,a_err='Unsupported PAR_AGGR_ALG')
#else
call psb_errpush(info,name,a_err='PAR_AGGR_ALG unsupported (SERIAL_MPI on)')
call psb_errpush(info,name,a_err='PAR_AGGR_ALG unsupported (PSB_SERIAL_MPI on)')
#endif
goto 9999
end select

@ -50,16 +50,16 @@ subroutine amg_d_base_onelev_cseti(lv,what,val,info,pos,idx)
use amg_d_ilu_solver
use amg_d_id_solver
use amg_d_gs_solver
#if defined(HAVE_UMF_)
#if defined(PSB_HAVE_UMF)
use amg_d_umf_solver
#endif
#if defined(HAVE_SLUDIST_)
#if defined(PSB_HAVE_SLUDIST)
use amg_d_sludist_solver
#endif
#if defined(HAVE_SLU_)
#if defined(PSB_HAVE_SLU)
use amg_d_slu_solver
#endif
#if defined(HAVE_MUMPS_)
#if defined(PSB_HAVE_MUMPS)
use amg_d_mumps_solver
#endif
@ -85,16 +85,16 @@ subroutine amg_d_base_onelev_cseti(lv,what,val,info,pos,idx)
type(amg_d_id_solver_type) :: amg_d_id_solver_mold
type(amg_d_gs_solver_type) :: amg_d_gs_solver_mold
type(amg_d_bwgs_solver_type) :: amg_d_bwgs_solver_mold
#if defined(HAVE_UMF_)
#if defined(PSB_HAVE_UMF)
type(amg_d_umf_solver_type) :: amg_d_umf_solver_mold
#endif
#if defined(HAVE_SLUDIST_)
#if defined(PSB_HAVE_SLUDIST)
type(amg_d_sludist_solver_type) :: amg_d_sludist_solver_mold
#endif
#if defined(HAVE_SLU_)
#if defined(PSB_HAVE_SLU)
type(amg_d_slu_solver_type) :: amg_d_slu_solver_mold
#endif
#if defined(HAVE_MUMPS_)
#if defined(PSB_HAVE_MUMPS)
type(amg_d_mumps_solver_type) :: amg_d_mumps_solver_mold
#endif
@ -187,19 +187,19 @@ subroutine amg_d_base_onelev_cseti(lv,what,val,info,pos,idx)
if (allocated(lv%sm2a)) call lv%sm2a%sv%set('SUB_SOLVE',val,info)
end if
end if
#ifdef HAVE_SLU_
#ifdef PSB_HAVE_SLU
case (amg_slu_)
call lv%set(amg_d_slu_solver_mold,info,pos=pos)
#endif
#ifdef HAVE_MUMPS_
#ifdef PSB_HAVE_MUMPS
case (amg_mumps_)
call lv%set(amg_d_mumps_solver_mold,info,pos=pos)
#endif
#ifdef HAVE_SLUDIST_
#ifdef PSB_HAVE_SLUDIST
case (amg_sludist_)
call lv%set(amg_d_sludist_solver_mold,info,pos=pos)
#endif
#ifdef HAVE_UMF_
#ifdef PSB_HAVE_UMF
case (amg_umf_)
call lv%set(amg_d_umf_solver_mold,info,pos=pos)
#endif

@ -84,11 +84,7 @@ subroutine amg_d_base_onelev_setsm(lev,val,info,pos)
end if
endif
if (.not.allocated(lev%sm)) then
#ifdef HAVE_MOLD
allocate(lev%sm,mold=val)
#else
allocate(lev%sm,source=val)
#endif
end if
call lev%sm%default()
if (ipos_ == amg_smooth_both_) lev%sm2 => lev%sm
@ -100,11 +96,7 @@ subroutine amg_d_base_onelev_setsm(lev,val,info,pos)
endif
end if
if (.not.allocated(lev%sm2a)) then
#ifdef HAVE_MOLD
allocate(lev%sm2a,mold=val)
#else
allocate(lev%sm2a,source=val)
#endif
end if
call lev%sm2a%default()
lev%sm2 => lev%sm2a

@ -81,11 +81,7 @@ subroutine amg_d_base_onelev_setsv(lev,val,info,pos)
end if
if (.not.allocated(lev%sm%sv)) then
#ifdef HAVE_MOLD
allocate(lev%sm%sv,mold=val,stat=info)
#else
allocate(lev%sm%sv,source=val,stat=info)
#endif
if (info /= 0) then
info = 3111
return
@ -125,11 +121,7 @@ subroutine amg_d_base_onelev_setsv(lev,val,info,pos)
end if
end if
if (.not.allocated(lev%sm2a%sv)) then
#ifdef HAVE_MOLD
allocate(lev%sm2a%sv,mold=val,stat=info)
#else
allocate(lev%sm2a%sv,source=val,stat=info)
#endif
if (info /= 0) then
info = 3111
return

@ -42,7 +42,7 @@ subroutine amg_s_base_onelev_csetc(lv,what,val,info,pos,idx)
use amg_s_base_aggregator_mod
use amg_s_dec_aggregator_mod
use amg_s_symdec_aggregator_mod
#if !defined(SERIAL_MPI)
#if !defined(PSB_SERIAL_MPI)
use amg_s_parmatch_aggregator_mod
#endif
use amg_s_poly_smoother
@ -57,10 +57,10 @@ subroutine amg_s_base_onelev_csetc(lv,what,val,info,pos,idx)
use amg_s_ainv_solver
use amg_s_invk_solver
use amg_s_invt_solver
#if defined(HAVE_SLU_)
#if defined(PSB_HAVE_SLU)
use amg_s_slu_solver
#endif
#if defined(HAVE_MUMPS_)
#if defined(PSB_HAVE_MUMPS)
use amg_s_mumps_solver
#endif
@ -93,10 +93,10 @@ subroutine amg_s_base_onelev_csetc(lv,what,val,info,pos,idx)
type(amg_s_invk_solver_type) :: amg_s_invk_solver_mold
type(amg_s_invt_solver_type) :: amg_s_invt_solver_mold
type(amg_s_poly_smoother_type) :: amg_s_poly_smoother_mold
#if defined(HAVE_SLU_)
#if defined(PSB_HAVE_SLU)
type(amg_s_slu_solver_type) :: amg_s_slu_solver_mold
#endif
#if defined(HAVE_MUMPS_)
#if defined(PSB_HAVE_MUMPS)
type(amg_s_mumps_solver_type) :: amg_s_mumps_solver_mold
#endif
@ -224,11 +224,11 @@ subroutine amg_s_base_onelev_csetc(lv,what,val,info,pos,idx)
if (allocated(lv%sm2a)) call lv%sm2a%sv%set('SUB_SOLVE',val,info)
end if
end if
#ifdef HAVE_SLU_
#ifdef PSB_HAVE_SLU
case ('SLU')
call lv%set(amg_s_slu_solver_mold,info,pos=pos)
#endif
#ifdef HAVE_MUMPS_
#ifdef PSB_HAVE_MUMPS
case ('MUMPS')
call lv%set(amg_s_mumps_solver_mold,info,pos=pos)
#endif
@ -260,16 +260,16 @@ subroutine amg_s_base_onelev_csetc(lv,what,val,info,pos,idx)
allocate(amg_s_dec_aggregator_type :: lv%aggr, stat=info)
case('SYMDEC')
allocate(amg_s_symdec_aggregator_type :: lv%aggr, stat=info)
#if !defined(SERIAL_MPI)
#if !defined(PSB_SERIAL_MPI)
case('COUP','COUPLED')
allocate(amg_s_parmatch_aggregator_type :: lv%aggr, stat=info)
#endif
case default
info = psb_err_internal_error_
#if !defined(SERIAL_MPI)
#if !defined(PSB_SERIAL_MPI)
call psb_errpush(info,name,a_err='Unsupported PAR_AGGR_ALG')
#else
call psb_errpush(info,name,a_err='PAR_AGGR_ALG unsupported (SERIAL_MPI on)')
call psb_errpush(info,name,a_err='PAR_AGGR_ALG unsupported (PSB_SERIAL_MPI on)')
#endif
goto 9999
end select

@ -50,10 +50,10 @@ subroutine amg_s_base_onelev_cseti(lv,what,val,info,pos,idx)
use amg_s_ilu_solver
use amg_s_id_solver
use amg_s_gs_solver
#if defined(HAVE_SLU_)
#if defined(PSB_HAVE_SLU)
use amg_s_slu_solver
#endif
#if defined(HAVE_MUMPS_)
#if defined(PSB_HAVE_MUMPS)
use amg_s_mumps_solver
#endif
@ -79,10 +79,10 @@ subroutine amg_s_base_onelev_cseti(lv,what,val,info,pos,idx)
type(amg_s_id_solver_type) :: amg_s_id_solver_mold
type(amg_s_gs_solver_type) :: amg_s_gs_solver_mold
type(amg_s_bwgs_solver_type) :: amg_s_bwgs_solver_mold
#if defined(HAVE_SLU_)
#if defined(PSB_HAVE_SLU)
type(amg_s_slu_solver_type) :: amg_s_slu_solver_mold
#endif
#if defined(HAVE_MUMPS_)
#if defined(PSB_HAVE_MUMPS)
type(amg_s_mumps_solver_type) :: amg_s_mumps_solver_mold
#endif
@ -175,11 +175,11 @@ subroutine amg_s_base_onelev_cseti(lv,what,val,info,pos,idx)
if (allocated(lv%sm2a)) call lv%sm2a%sv%set('SUB_SOLVE',val,info)
end if
end if
#ifdef HAVE_SLU_
#ifdef PSB_HAVE_SLU
case (amg_slu_)
call lv%set(amg_s_slu_solver_mold,info,pos=pos)
#endif
#ifdef HAVE_MUMPS_
#ifdef PSB_HAVE_MUMPS
case (amg_mumps_)
call lv%set(amg_s_mumps_solver_mold,info,pos=pos)
#endif

@ -84,11 +84,7 @@ subroutine amg_s_base_onelev_setsm(lev,val,info,pos)
end if
endif
if (.not.allocated(lev%sm)) then
#ifdef HAVE_MOLD
allocate(lev%sm,mold=val)
#else
allocate(lev%sm,source=val)
#endif
end if
call lev%sm%default()
if (ipos_ == amg_smooth_both_) lev%sm2 => lev%sm
@ -100,11 +96,7 @@ subroutine amg_s_base_onelev_setsm(lev,val,info,pos)
endif
end if
if (.not.allocated(lev%sm2a)) then
#ifdef HAVE_MOLD
allocate(lev%sm2a,mold=val)
#else
allocate(lev%sm2a,source=val)
#endif
end if
call lev%sm2a%default()
lev%sm2 => lev%sm2a

@ -81,11 +81,7 @@ subroutine amg_s_base_onelev_setsv(lev,val,info,pos)
end if
if (.not.allocated(lev%sm%sv)) then
#ifdef HAVE_MOLD
allocate(lev%sm%sv,mold=val,stat=info)
#else
allocate(lev%sm%sv,source=val,stat=info)
#endif
if (info /= 0) then
info = 3111
return
@ -125,11 +121,7 @@ subroutine amg_s_base_onelev_setsv(lev,val,info,pos)
end if
end if
if (.not.allocated(lev%sm2a%sv)) then
#ifdef HAVE_MOLD
allocate(lev%sm2a%sv,mold=val,stat=info)
#else
allocate(lev%sm2a%sv,source=val,stat=info)
#endif
if (info /= 0) then
info = 3111
return

@ -53,16 +53,16 @@ subroutine amg_z_base_onelev_csetc(lv,what,val,info,pos,idx)
use amg_z_ainv_solver
use amg_z_invk_solver
use amg_z_invt_solver
#if defined(HAVE_UMF_)
#if defined(PSB_HAVE_UMF)
use amg_z_umf_solver
#endif
#if defined(HAVE_SLUDIST_)
#if defined(PSB_HAVE_SLUDIST)
use amg_z_sludist_solver
#endif
#if defined(HAVE_SLU_)
#if defined(PSB_HAVE_SLU)
use amg_z_slu_solver
#endif
#if defined(HAVE_MUMPS_)
#if defined(PSB_HAVE_MUMPS)
use amg_z_mumps_solver
#endif
@ -94,16 +94,16 @@ subroutine amg_z_base_onelev_csetc(lv,what,val,info,pos,idx)
type(amg_z_ainv_solver_type) :: amg_z_ainv_solver_mold
type(amg_z_invk_solver_type) :: amg_z_invk_solver_mold
type(amg_z_invt_solver_type) :: amg_z_invt_solver_mold
#if defined(HAVE_UMF_)
#if defined(PSB_HAVE_UMF)
type(amg_z_umf_solver_type) :: amg_z_umf_solver_mold
#endif
#if defined(HAVE_SLUDIST_)
#if defined(PSB_HAVE_SLUDIST)
type(amg_z_sludist_solver_type) :: amg_z_sludist_solver_mold
#endif
#if defined(HAVE_SLU_)
#if defined(PSB_HAVE_SLU)
type(amg_z_slu_solver_type) :: amg_z_slu_solver_mold
#endif
#if defined(HAVE_MUMPS_)
#if defined(PSB_HAVE_MUMPS)
type(amg_z_mumps_solver_type) :: amg_z_mumps_solver_mold
#endif
@ -228,19 +228,19 @@ subroutine amg_z_base_onelev_csetc(lv,what,val,info,pos,idx)
if (allocated(lv%sm2a)) call lv%sm2a%sv%set('SUB_SOLVE',val,info)
end if
end if
#ifdef HAVE_SLU_
#ifdef PSB_HAVE_SLU
case ('SLU')
call lv%set(amg_z_slu_solver_mold,info,pos=pos)
#endif
#ifdef HAVE_MUMPS_
#ifdef PSB_HAVE_MUMPS
case ('MUMPS')
call lv%set(amg_z_mumps_solver_mold,info,pos=pos)
#endif
#ifdef HAVE_SLUDIST_
#ifdef PSB_HAVE_SLUDIST
case ('SLUDIST')
call lv%set(amg_z_sludist_solver_mold,info,pos=pos)
#endif
#ifdef HAVE_UMF_
#ifdef PSB_HAVE_UMF
case ('UMF')
call lv%set(amg_z_umf_solver_mold,info,pos=pos)
#endif
@ -272,14 +272,14 @@ subroutine amg_z_base_onelev_csetc(lv,what,val,info,pos,idx)
allocate(amg_z_dec_aggregator_type :: lv%aggr, stat=info)
case('SYMDEC')
allocate(amg_z_symdec_aggregator_type :: lv%aggr, stat=info)
#if !defined(SERIAL_MPI)
#if !defined(PSB_SERIAL_MPI)
#endif
case default
info = psb_err_internal_error_
#if !defined(SERIAL_MPI)
#if !defined(PSB_SERIAL_MPI)
call psb_errpush(info,name,a_err='Unsupported PAR_AGGR_ALG')
#else
call psb_errpush(info,name,a_err='PAR_AGGR_ALG unsupported (SERIAL_MPI on)')
call psb_errpush(info,name,a_err='PAR_AGGR_ALG unsupported (PSB_SERIAL_MPI on)')
#endif
goto 9999
end select

@ -49,16 +49,16 @@ subroutine amg_z_base_onelev_cseti(lv,what,val,info,pos,idx)
use amg_z_ilu_solver
use amg_z_id_solver
use amg_z_gs_solver
#if defined(HAVE_UMF_)
#if defined(PSB_HAVE_UMF)
use amg_z_umf_solver
#endif
#if defined(HAVE_SLUDIST_)
#if defined(PSB_HAVE_SLUDIST)
use amg_z_sludist_solver
#endif
#if defined(HAVE_SLU_)
#if defined(PSB_HAVE_SLU)
use amg_z_slu_solver
#endif
#if defined(HAVE_MUMPS_)
#if defined(PSB_HAVE_MUMPS)
use amg_z_mumps_solver
#endif
@ -84,16 +84,16 @@ subroutine amg_z_base_onelev_cseti(lv,what,val,info,pos,idx)
type(amg_z_id_solver_type) :: amg_z_id_solver_mold
type(amg_z_gs_solver_type) :: amg_z_gs_solver_mold
type(amg_z_bwgs_solver_type) :: amg_z_bwgs_solver_mold
#if defined(HAVE_UMF_)
#if defined(PSB_HAVE_UMF)
type(amg_z_umf_solver_type) :: amg_z_umf_solver_mold
#endif
#if defined(HAVE_SLUDIST_)
#if defined(PSB_HAVE_SLUDIST)
type(amg_z_sludist_solver_type) :: amg_z_sludist_solver_mold
#endif
#if defined(HAVE_SLU_)
#if defined(PSB_HAVE_SLU)
type(amg_z_slu_solver_type) :: amg_z_slu_solver_mold
#endif
#if defined(HAVE_MUMPS_)
#if defined(PSB_HAVE_MUMPS)
type(amg_z_mumps_solver_type) :: amg_z_mumps_solver_mold
#endif
@ -186,19 +186,19 @@ subroutine amg_z_base_onelev_cseti(lv,what,val,info,pos,idx)
if (allocated(lv%sm2a)) call lv%sm2a%sv%set('SUB_SOLVE',val,info)
end if
end if
#ifdef HAVE_SLU_
#ifdef PSB_HAVE_SLU
case (amg_slu_)
call lv%set(amg_z_slu_solver_mold,info,pos=pos)
#endif
#ifdef HAVE_MUMPS_
#ifdef PSB_HAVE_MUMPS
case (amg_mumps_)
call lv%set(amg_z_mumps_solver_mold,info,pos=pos)
#endif
#ifdef HAVE_SLUDIST_
#ifdef PSB_HAVE_SLUDIST
case (amg_sludist_)
call lv%set(amg_z_sludist_solver_mold,info,pos=pos)
#endif
#ifdef HAVE_UMF_
#ifdef PSB_HAVE_UMF
case (amg_umf_)
call lv%set(amg_z_umf_solver_mold,info,pos=pos)
#endif

@ -84,11 +84,7 @@ subroutine amg_z_base_onelev_setsm(lev,val,info,pos)
end if
endif
if (.not.allocated(lev%sm)) then
#ifdef HAVE_MOLD
allocate(lev%sm,mold=val)
#else
allocate(lev%sm,source=val)
#endif
end if
call lev%sm%default()
if (ipos_ == amg_smooth_both_) lev%sm2 => lev%sm
@ -100,11 +96,7 @@ subroutine amg_z_base_onelev_setsm(lev,val,info,pos)
endif
end if
if (.not.allocated(lev%sm2a)) then
#ifdef HAVE_MOLD
allocate(lev%sm2a,mold=val)
#else
allocate(lev%sm2a,source=val)
#endif
end if
call lev%sm2a%default()
lev%sm2 => lev%sm2a

@ -81,11 +81,7 @@ subroutine amg_z_base_onelev_setsv(lev,val,info,pos)
end if
if (.not.allocated(lev%sm%sv)) then
#ifdef HAVE_MOLD
allocate(lev%sm%sv,mold=val,stat=info)
#else
allocate(lev%sm%sv,source=val,stat=info)
#endif
if (info /= 0) then
info = 3111
return
@ -125,11 +121,7 @@ subroutine amg_z_base_onelev_setsv(lev,val,info,pos)
end if
end if
if (.not.allocated(lev%sm2a%sv)) then
#ifdef HAVE_MOLD
allocate(lev%sm2a%sv,mold=val,stat=info)
#else
allocate(lev%sm2a%sv,source=val,stat=info)
#endif
if (info /= 0) then
info = 3111
return

@ -66,7 +66,7 @@ subroutine c_mumps_solver_apply(alpha,sv,x,beta,y,desc_data,&
call psb_erractionsave(err_act)
#if defined(HAVE_MUMPS_)
#if defined(AMG_HAVE_MUMPS)
info = psb_success_
trans_ = psb_toupper(trans)
select case(trans_)

@ -59,7 +59,7 @@ subroutine c_mumps_solver_apply_vect(alpha,sv,x,beta,y,desc_data,&
integer(psb_ipk_) :: err_act
character(len=20) :: name='c_mumps_solver_apply_vect'
#if defined(HAVE_MUMPS_)
#if defined(AMG_HAVE_MUMPS)
call psb_erractionsave(err_act)

@ -58,7 +58,7 @@ subroutine c_mumps_solver_bld(a,desc_a,sv,info,b,amold,vmold,imold)
! Local variables
type(psb_cspmat_type) :: atmp
type(psb_c_coo_sparse_mat), target :: acoo
#if defined(IPK4) && defined(LPK8)
#if defined(PSB_IPK4) && defined(PSB_LPK8)
integer(psb_lpk_), allocatable :: gia(:), gja(:)
#endif
integer(psb_ipk_) :: n_row,n_col, nrow_a, nza, npr, npc
@ -69,7 +69,7 @@ subroutine c_mumps_solver_bld(a,desc_a,sv,info,b,amold,vmold,imold)
integer(psb_ipk_) :: np, iam, me, i, err_act, debug_unit, debug_level
character(len=20) :: name='c_mumps_solver_bld', ch_err
#if defined(HAVE_MUMPS_)
#if defined(AMG_HAVE_MUMPS)
info=psb_success_
@ -165,7 +165,7 @@ subroutine c_mumps_solver_bld(a,desc_a,sv,info,b,amold,vmold,imold)
! switch to global numbering
if (sv%ipar(1) == amg_global_solver_ ) then
#if defined(IPK4) && defined(LPK8)
#if defined(PSB_IPK4) && defined(PSB_LPK8)
!
! Strategy here is as follows: because a call to MUMPS
! as a gobal solver is mostly done at the coarsest level,

@ -66,7 +66,7 @@ subroutine d_mumps_solver_apply(alpha,sv,x,beta,y,desc_data,&
call psb_erractionsave(err_act)
#if defined(HAVE_MUMPS_)
#if defined(AMG_HAVE_MUMPS)
info = psb_success_
trans_ = psb_toupper(trans)
select case(trans_)

@ -59,7 +59,7 @@ subroutine d_mumps_solver_apply_vect(alpha,sv,x,beta,y,desc_data,&
integer(psb_ipk_) :: err_act
character(len=20) :: name='d_mumps_solver_apply_vect'
#if defined(HAVE_MUMPS_)
#if defined(AMG_HAVE_MUMPS)
call psb_erractionsave(err_act)

@ -58,7 +58,7 @@ subroutine d_mumps_solver_bld(a,desc_a,sv,info,b,amold,vmold,imold)
! Local variables
type(psb_dspmat_type) :: atmp
type(psb_d_coo_sparse_mat), target :: acoo
#if defined(IPK4) && defined(LPK8)
#if defined(PSB_IPK4) && defined(PSB_LPK8)
integer(psb_lpk_), allocatable :: gia(:), gja(:)
#endif
integer(psb_ipk_) :: n_row,n_col, nrow_a, nza, npr, npc
@ -69,7 +69,7 @@ subroutine d_mumps_solver_bld(a,desc_a,sv,info,b,amold,vmold,imold)
integer(psb_ipk_) :: np, iam, me, i, err_act, debug_unit, debug_level
character(len=20) :: name='d_mumps_solver_bld', ch_err
#if defined(HAVE_MUMPS_)
#if defined(AMG_HAVE_MUMPS)
info=psb_success_
@ -165,7 +165,7 @@ subroutine d_mumps_solver_bld(a,desc_a,sv,info,b,amold,vmold,imold)
! switch to global numbering
if (sv%ipar(1) == amg_global_solver_ ) then
#if defined(IPK4) && defined(LPK8)
#if defined(PSB_IPK4) && defined(PSB_LPK8)
!
! Strategy here is as follows: because a call to MUMPS
! as a gobal solver is mostly done at the coarsest level,

@ -66,7 +66,7 @@ subroutine s_mumps_solver_apply(alpha,sv,x,beta,y,desc_data,&
call psb_erractionsave(err_act)
#if defined(HAVE_MUMPS_)
#if defined(AMG_HAVE_MUMPS)
info = psb_success_
trans_ = psb_toupper(trans)
select case(trans_)

@ -59,7 +59,7 @@ subroutine s_mumps_solver_apply_vect(alpha,sv,x,beta,y,desc_data,&
integer(psb_ipk_) :: err_act
character(len=20) :: name='s_mumps_solver_apply_vect'
#if defined(HAVE_MUMPS_)
#if defined(AMG_HAVE_MUMPS)
call psb_erractionsave(err_act)

@ -58,7 +58,7 @@ subroutine s_mumps_solver_bld(a,desc_a,sv,info,b,amold,vmold,imold)
! Local variables
type(psb_sspmat_type) :: atmp
type(psb_s_coo_sparse_mat), target :: acoo
#if defined(IPK4) && defined(LPK8)
#if defined(PSB_IPK4) && defined(PSB_LPK8)
integer(psb_lpk_), allocatable :: gia(:), gja(:)
#endif
integer(psb_ipk_) :: n_row,n_col, nrow_a, nza, npr, npc
@ -69,7 +69,7 @@ subroutine s_mumps_solver_bld(a,desc_a,sv,info,b,amold,vmold,imold)
integer(psb_ipk_) :: np, iam, me, i, err_act, debug_unit, debug_level
character(len=20) :: name='s_mumps_solver_bld', ch_err
#if defined(HAVE_MUMPS_)
#if defined(AMG_HAVE_MUMPS)
info=psb_success_
@ -165,7 +165,7 @@ subroutine s_mumps_solver_bld(a,desc_a,sv,info,b,amold,vmold,imold)
! switch to global numbering
if (sv%ipar(1) == amg_global_solver_ ) then
#if defined(IPK4) && defined(LPK8)
#if defined(PSB_IPK4) && defined(PSB_LPK8)
!
! Strategy here is as follows: because a call to MUMPS
! as a gobal solver is mostly done at the coarsest level,

@ -66,7 +66,7 @@ subroutine z_mumps_solver_apply(alpha,sv,x,beta,y,desc_data,&
call psb_erractionsave(err_act)
#if defined(HAVE_MUMPS_)
#if defined(AMG_HAVE_MUMPS)
info = psb_success_
trans_ = psb_toupper(trans)
select case(trans_)

@ -59,7 +59,7 @@ subroutine z_mumps_solver_apply_vect(alpha,sv,x,beta,y,desc_data,&
integer(psb_ipk_) :: err_act
character(len=20) :: name='z_mumps_solver_apply_vect'
#if defined(HAVE_MUMPS_)
#if defined(AMG_HAVE_MUMPS)
call psb_erractionsave(err_act)

@ -58,7 +58,7 @@ subroutine z_mumps_solver_bld(a,desc_a,sv,info,b,amold,vmold,imold)
! Local variables
type(psb_zspmat_type) :: atmp
type(psb_z_coo_sparse_mat), target :: acoo
#if defined(IPK4) && defined(LPK8)
#if defined(PSB_IPK4) && defined(PSB_LPK8)
integer(psb_lpk_), allocatable :: gia(:), gja(:)
#endif
integer(psb_ipk_) :: n_row,n_col, nrow_a, nza, npr, npc
@ -69,7 +69,7 @@ subroutine z_mumps_solver_bld(a,desc_a,sv,info,b,amold,vmold,imold)
integer(psb_ipk_) :: np, iam, me, i, err_act, debug_unit, debug_level
character(len=20) :: name='z_mumps_solver_bld', ch_err
#if defined(HAVE_MUMPS_)
#if defined(AMG_HAVE_MUMPS)
info=psb_success_
@ -165,7 +165,7 @@ subroutine z_mumps_solver_bld(a,desc_a,sv,info,b,amold,vmold,imold)
! switch to global numbering
if (sv%ipar(1) == amg_global_solver_ ) then
#if defined(IPK4) && defined(LPK8)
#if defined(PSB_IPK4) && defined(PSB_LPK8)
!
! Strategy here is as follows: because a call to MUMPS
! as a gobal solver is mostly done at the coarsest level,

@ -4,6 +4,8 @@
#define AMG_VALID_PRECONDITIONER_STRINGS "NONE","DIAG","BJAC","ML","AS"
#define AMG_VALID_PRECONDITIONER_STRING "NONE DIAG BJAC ML AS"
#include "amg_config.h"
#include "psb_types.h"
#include "amg_const.h"
#include "amg_c_dprec.h"

94
configure vendored

@ -667,6 +667,14 @@ SLU_FLAGS
MUMPS_LIBS
MUMPS_FLAGS
EXTRA_LIBS
CHAVEMUMPSINCLUDES
CHAVEMUMPSMODULES
CHAVEMUMPS
CSLUDISTVERSION
CHAVESLUDIST
CSLUVERSION
CHAVESLU
CHAVEUMF
INSTALL_SAMPLESDIR
INSTALL_DOCSDIR
INSTALL_MODULESDIR
@ -5768,7 +5776,7 @@ if test x"$pac_cv_serial_mpi" == x"yes" ; then
MPIFC="$FC";
MPICC="$CC";
MPICXX="$CXX";
CXXDEFINES="-DSERIAL_MPI $CXXDEFINES";
CXXDEFINES="$CXXDEFINES";
else
ac_ext=c
@ -7089,7 +7097,7 @@ printf "%s\n" "#define SIZEOF_VOID_P $ac_cv_sizeof_void_p" >>confdefs.h
# Define for platforms with 64 bit (void * ) pointers
if test X"$ac_cv_sizeof_void_p" == X"8" ; then
CDEFINES="-DPtr64Bits $CDEFINES"
CDEFINES="$CDEFINES"
fi
ac_ext=${ac_fc_srcext-f}
ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5'
@ -7283,7 +7291,7 @@ elif test "x$pac_fc_case" == "xupper case"; then
else
pac_f_c_names="-DUNKNOWN"
fi
CDEFINES="$pac_f_c_names $CDEFINES"
CDEFINES="$CDEFINES"
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $pac_f_c_names " >&5
printf "%s\n" " $pac_f_c_names " >&6; }
@ -7567,7 +7575,7 @@ if test x"$pac_cv_serial_mpi" == x"yes" ; then
else
PAC_FORTRAN_CHECK_HAVE_MPI_MOD_F08()
if test x"$pac_cv_mpi_f08" == x"yes" ; then
FDEFINES="$psblas_cv_define_prepend-DMPI_MOD $FDEFINES";
FDEFINES="$psblas_cv_define_prepend-DPSB_MPI_MOD $FDEFINES";
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for Fortran MPI mod" >&5
printf %s "checking for Fortran MPI mod... " >&6; }
@ -7589,13 +7597,13 @@ if ac_fn_fc_try_compile "$LINENO"
then :
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
printf "%s\n" "yes" >&6; }
FDEFINES="$psblas_cv_define_prepend-DMPI_MOD $FDEFINES"
FDEFINES="$psblas_cv_define_prepend-DPSB_MPI_MOD $FDEFINES"
else $as_nop
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
echo "configure: failed program was:" >&5
cat conftest.$ac_ext >&5
FDEFINES="$psblas_cv_define_prepend-DMPI_H $FDEFINES"
FDEFINES="$psblas_cv_define_prepend-DPSB_MPI_H $FDEFINES"
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
ac_ext=c
@ -7611,8 +7619,8 @@ fi
FLINK="$MPIFC"
PAC_ARG_OPENMP()
if test x"$pac_cv_openmp" == x"yes" ; then
FDEFINES="$psblas_cv_define_prepend-DOPENMP $FDEFINES";
CDEFINES="-DOPENMP $CDEFINES";
FDEFINES="$psblas_cv_define_prepend-DPSB_OPENMP $FDEFINES";
CDEFINES="$CDEFINES";
FCOPT="$FCOPT $pac_cv_openmp_fcopt";
CCOPT="$CCOPT $pac_cv_openmp_ccopt";
FLINK="$FLINK $pac_cv_openmp_fcopt";
@ -7850,7 +7858,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: PSBLAS size of LPK \"$pac_cv_psblas_lpk\"." >&5
printf "%s\n" "$as_me: PSBLAS size of LPK \"$pac_cv_psblas_lpk\"." >&6;}
if test x"$pac_cv_psblas_lpk" == x8"" ; then
CXXDEFINES="-DBIT64 $CXXDEFINES";
CXXDEFINES="$CXXDEFINES";
fi
###############################################################################
@ -7881,7 +7889,7 @@ AR="${AR} -cDr"
###############################################################################
# Custom test : do we have a module or include for MPI Fortran interface?
if test x"$pac_cv_serial_mpi" == x"yes" ; then
FDEFINES="$psblas_cv_define_prepend-DSERIAL_MPI $psblas_cv_define_prepend-DMPI_MOD $FDEFINES";
FDEFINES="$psblas_cv_define_prepend-DSERIAL_MPI $psblas_cv_define_prepend-DPSB_MPI_MOD $FDEFINES";
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for Fortran MPI mod" >&5
printf %s "checking for Fortran MPI mod... " >&6; }
@ -7903,13 +7911,13 @@ if ac_fn_fc_try_compile "$LINENO"
then :
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
printf "%s\n" "yes" >&6; }
FDEFINES="$psblas_cv_define_prepend-DMPI_MOD $FDEFINES"
FDEFINES="$psblas_cv_define_prepend-DPSB_MPI_MOD $FDEFINES"
else $as_nop
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
echo "configure: failed program was:" >&5
cat conftest.$ac_ext >&5
FDEFINES="$psblas_cv_define_prepend-DMPI_H $FDEFINES"
FDEFINES="$psblas_cv_define_prepend-DPSB_MPI_H $FDEFINES"
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
ac_ext=c
@ -8339,7 +8347,7 @@ else $as_nop
printf "%s\n" "no" >&6; }
echo "configure: failed program was:" >&5
cat conftest.$ac_ext >&5
FDEFINES="$psblas_cv_define_prepend-DHAVE_BUGGY_GENERICS $FDEFINES"
FDEFINES="$psblas_cv_define_prepend-DPSB_HAVE_BUGGY_GENERICS $FDEFINES"
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
@ -8375,7 +8383,7 @@ if ac_fn_fc_try_compile "$LINENO"
then :
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
printf "%s\n" "yes" >&6; }
FDEFINES="$psblas_cv_define_prepend-DHAVE_FLUSH_STMT $FDEFINES"
FDEFINES="$psblas_cv_define_prepend-DPSB_HAVE_FLUSH_STMT $FDEFINES"
else $as_nop
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
@ -8424,12 +8432,14 @@ if ac_fn_fc_try_compile "$LINENO"
then :
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
printf "%s\n" "yes" >&6; }
FDEFINES="$psblas_cv_define_prepend-DHAVE_SAME_TYPE_AS $FDEFINES"
:
else $as_nop
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
echo "configure: failed program was:" >&5
cat conftest.$ac_ext >&5
as_fn_error $? "Sorry, cannot build PSBLAS without support for SAME_TYPE_AS.
Please get a Fortran compiler that supports it, e.g. GNU Fortran 4.8." "$LINENO" 5
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
@ -8470,12 +8480,14 @@ if ac_fn_fc_try_compile "$LINENO"
then :
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
printf "%s\n" "yes" >&6; }
FDEFINES="$psblas_cv_define_prepend-DHAVE_EXTENDS_TYPE_OF $FDEFINES"
:
else $as_nop
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
echo "configure: failed program was:" >&5
cat conftest.$ac_ext >&5
as_fn_error $? "Sorry, cannot build PSBLAS without support for EXTENDS_TYPE_OF.
Please get a Fortran compiler that supports it, e.g. GNU Fortran 4.8." "$LINENO" 5
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
@ -8518,12 +8530,14 @@ if ac_fn_fc_try_compile "$LINENO"
then :
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
printf "%s\n" "yes" >&6; }
FDEFINES="$psblas_cv_define_prepend-DHAVE_MOLD $FDEFINES"
:
else $as_nop
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
echo "configure: failed program was:" >&5
cat conftest.$ac_ext >&5
as_fn_error $? "Sorry, cannot build PSBLAS without support for MOLD= allocation.
Please get a Fortran compiler that supports it, e.g. GNU Fortran 4.8." "$LINENO" 5
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
@ -9560,7 +9574,7 @@ done
# Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND:
if test x"$pac_lapack_ok" = xyes; then
FDEFINES="$psblas_cv_define_prepend-DHAVE_LAPACK $FDEFINES"
FDEFINES="$psblas_cv_define_prepend-DPSB_HAVE_LAPACK $FDEFINES"
:
else
pac_lapack_ok=no
@ -9959,11 +9973,16 @@ if test "x$amg4psblas_cv_have_mumps" == "xyes" ; then
printf "%s\n" "$as_me: PSBLAS defines PSB_LPK_ as $pac_cv_psblas_lpk. MUMPS interfacing will fail when called in global mode on very large matrices. " >&6;}
fi
if test "x$pac_mumps_fmods_ok" == "xyes" ; then
FDEFINES="$amg_cv_define_prepend-DHAVE_MUMPS_ $amg_cv_define_prepend-DHAVE_MUMPS_MODULES_ $MUMPS_MODULES $FDEFINES"
MUMPS_FLAGS="-DHave_MUMPS_ $MUMPS_MODULES"
FDEFINES="$amg_cv_define_prepend-DAMG_HAVE_MUMPS $amg_cv_define_prepend-DAMG_HAVE_MUMPS_MODULES $MUMPS_MODULES $FDEFINES"
MUMPS_FLAGS="-DAMG_HAVE_MUMPS $MUMPS_MODULES"
CHAVEMUMPS="#define AMG_HAVE_MUMPS"
CHAVEMUMPSMODULES="#define AMG_HAVE_MUMPS_MODULES"
elif test "x$pac_mumps_fincs_ok" == "xyes" ; then
FDEFINES="$amg_cv_define_prepend-DHAVE_MUMPS_ $amg_cv_define_prepend-DHAVE_MUMPS_INCLUDES_ $MUMPS_FINCLUDES $FDEFINES"
MUMPS_FLAGS="-DHave_MUMPS_ $MUMPS_INCLUDES"
FDEFINES="$amg_cv_define_prepend-DAMG_HAVE_MUMPS_ $amg_cv_define_prepend-DAMG_HAVE_MUMPS_INCLUDES $MUMPS_FINCLUDES $FDEFINES"
MUMPS_FLAGS="-DAMG_HAVE_MUMPS $MUMPS_INCLUDES"
CHAVEMUMPS="#define AMG_HAVE_MUMPS"
CHAVEMUMPSINCLUDES="#define AMG_HAVE_MUMPS_INCLUDES"
else
# This should not happen
MUMPS_FLAGS=""
@ -10198,8 +10217,9 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
if test "x$amg4psblas_cv_have_umfpack" == "xyes" ; then
UMF_FLAGS="-DHave_UMF_ $UMF_INCLUDES"
FDEFINES="$amg_cv_define_prepend-DHAVE_UMF_ $FDEFINES"
UMF_FLAGS="$UMF_INCLUDES"
FDEFINES="$amg_cv_define_prepend-DAMG_HAVE_UMF $FDEFINES"
CHAVEUMF="#define AMG_HAVE_UMF"
else
UMF_FLAGS=""
fi
@ -10452,8 +10472,10 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
if test "x$amg4psblas_cv_have_superlu" == "xyes" ; then
SLU_FLAGS="-DHave_SLU_ -DSLU_VERSION_$pac_slu_version $SLU_INCLUDES"
FDEFINES="$amg_cv_define_prepend-DHAVE_SLU_ $FDEFINES"
SLU_FLAGS="-DAMG_SLU_VERSION_$pac_slu_version $SLU_INCLUDES"
FDEFINES="$amg_cv_define_prepend-DAMG_HAVE_SLU $FDEFINES"
CHAVESLU="#define AMG_HAVE_SLU"
CSLUVERSION="#define AMG_SLU_VERSION_$pac_slu_version"
else
SLU_FLAGS=""
fi
@ -10819,8 +10841,10 @@ if test "x$amg4psblas_cv_have_superludist" == "xyes" ; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: Configuring with SuperLU_DIST version flag $pac_sludist_version" >&5
printf "%s\n" "$as_me: Configuring with SuperLU_DIST version flag $pac_sludist_version" >&6;}
SLUDIST_FLAGS=""
SLUDIST_FLAGS="-DHave_SLUDist_ -DSLUD_VERSION_="$pac_sludist_version" $SLUDIST_INCLUDES"
FDEFINES="$amg_cv_define_prepend-DHAVE_SLUDIST_ $FDEFINES"
SLUDIST_FLAGS="$SLUDIST_INCLUDES"
FDEFINES="$amg_cv_define_prepend-DAMG_HAVE_SLUDIST $FDEFINES"
CHAVESLUDIST="#define AMG_HAVE_SLUDISST"
CSLUDISTVERSION="#define AMG_SLUD_VERSION $pac_sludist_version"
else
SLUDIST_FLAGS=""
fi
@ -10861,6 +10885,17 @@ AMGCXXDEFINES="$CXXDEFINES"
@ -10878,6 +10913,8 @@ AMGCXXDEFINES="$CXXDEFINES"
ac_config_files="$ac_config_files Make.inc"
ac_config_files="$ac_config_files amgprec/amg_config.h"
cat >confcache <<\_ACEOF
# This file is a shell script that caches the results of configure
# tests run on this system so they can be shared between configure
@ -11620,6 +11657,7 @@ do
case $ac_config_target in
"depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
"Make.inc") CONFIG_FILES="$CONFIG_FILES Make.inc" ;;
"amgprec/amg_config.h") CONFIG_FILES="$CONFIG_FILES amgprec/amg_config.h" ;;
*) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
esac

@ -66,7 +66,7 @@ PSBLAS_DIR="$pac_cv_psblas_dir";
PSBLAS_INCDIR="$pac_cv_psblas_incdir";
PSBLAS_MODDIR="$pac_cv_psblas_moddir";
PSBLAS_LIBDIR="$pac_cv_psblas_libdir";
AC_MSG_CHECKING([for PSBLAS install dir])
AC_MSG_CHECKING([for PSBLAS install dir])
if test "X$PSBLAS_DIR" != "X" ; then
case $PSBLAS_DIR in
/*) ;;
@ -185,7 +185,7 @@ if test x"$pac_cv_serial_mpi" == x"yes" ; then
MPIFC="$FC";
MPICC="$CC";
MPICXX="$CXX";
CXXDEFINES="-DSERIAL_MPI $CXXDEFINES";
CXXDEFINES="$CXXDEFINES";
else
AC_LANG([C])
@ -339,7 +339,7 @@ AC_LANG([C])
AC_CHECK_SIZEOF(void *)
# Define for platforms with 64 bit (void * ) pointers
if test X"$ac_cv_sizeof_void_p" == X"8" ; then
CDEFINES="-DPtr64Bits $CDEFINES"
CDEFINES="$CDEFINES"
fi
AC_LANG([Fortran])
__AC_FC_NAME_MANGLING
@ -392,7 +392,7 @@ else
pac_f_c_names="-DUNKNOWN"
dnl AC_MSG_NOTICE([Fortran name mangling unknown case])
fi
CDEFINES="$pac_f_c_names $CDEFINES"
CDEFINES="$CDEFINES"
AC_MSG_RESULT([ $pac_f_c_names ])
@ -553,20 +553,20 @@ if test x"$pac_cv_serial_mpi" == x"yes" ; then
else
PAC_FORTRAN_CHECK_HAVE_MPI_MOD_F08()
if test x"$pac_cv_mpi_f08" == x"yes" ; then
dnl FDEFINES="$psblas_cv_define_prepend-DMPI_MOD_F08 $FDEFINES";
FDEFINES="$psblas_cv_define_prepend-DMPI_MOD $FDEFINES";
dnl FDEFINES="$psblas_cv_define_prepend-DPSB_MPI_MOD_F08 $FDEFINES";
FDEFINES="$psblas_cv_define_prepend-DPSB_MPI_MOD $FDEFINES";
else
PAC_FORTRAN_CHECK_HAVE_MPI_MOD(
[FDEFINES="$psblas_cv_define_prepend-DMPI_MOD $FDEFINES"],
[FDEFINES="$psblas_cv_define_prepend-DMPI_H $FDEFINES"])
[FDEFINES="$psblas_cv_define_prepend-DPSB_MPI_MOD $FDEFINES"],
[FDEFINES="$psblas_cv_define_prepend-DPSB_MPI_H $FDEFINES"])
fi
fi
FLINK="$MPIFC"
PAC_ARG_OPENMP()
if test x"$pac_cv_openmp" == x"yes" ; then
FDEFINES="$psblas_cv_define_prepend-DOPENMP $FDEFINES";
CDEFINES="-DOPENMP $CDEFINES";
FDEFINES="$psblas_cv_define_prepend-DPSB_OPENMP $FDEFINES";
CDEFINES="$CDEFINES";
FCOPT="$FCOPT $pac_cv_openmp_fcopt";
CCOPT="$CCOPT $pac_cv_openmp_ccopt";
FLINK="$FLINK $pac_cv_openmp_fcopt";
@ -595,7 +595,7 @@ fi
PAC_FORTRAN_PSBLAS_INTEGER_SIZES()
AC_MSG_NOTICE([PSBLAS size of LPK "$pac_cv_psblas_lpk".])
if test x"$pac_cv_psblas_lpk" == x8"" ; then
CXXDEFINES="-DBIT64 $CXXDEFINES";
CXXDEFINES="$CXXDEFINES";
fi
###############################################################################
@ -626,11 +626,11 @@ AR="${AR} -cDr"
###############################################################################
# Custom test : do we have a module or include for MPI Fortran interface?
if test x"$pac_cv_serial_mpi" == x"yes" ; then
FDEFINES="$psblas_cv_define_prepend-DSERIAL_MPI $psblas_cv_define_prepend-DMPI_MOD $FDEFINES";
FDEFINES="$psblas_cv_define_prepend-DSERIAL_MPI $psblas_cv_define_prepend-DPSB_MPI_MOD $FDEFINES";
else
PAC_FORTRAN_CHECK_HAVE_MPI_MOD(
[FDEFINES="$psblas_cv_define_prepend-DMPI_MOD $FDEFINES"],
[FDEFINES="$psblas_cv_define_prepend-DMPI_H $FDEFINES"])
[FDEFINES="$psblas_cv_define_prepend-DPSB_MPI_MOD $FDEFINES"],
[FDEFINES="$psblas_cv_define_prepend-DPSB_MPI_H $FDEFINES"])
fi
#
@ -692,24 +692,30 @@ PAC_FORTRAN_TEST_FINAL(
PAC_FORTRAN_TEST_GENERICS(
[],
[FDEFINES="$psblas_cv_define_prepend-DHAVE_BUGGY_GENERICS $FDEFINES"]
[FDEFINES="$psblas_cv_define_prepend-DPSB_HAVE_BUGGY_GENERICS $FDEFINES"]
)
PAC_FORTRAN_TEST_FLUSH(
[FDEFINES="$psblas_cv_define_prepend-DHAVE_FLUSH_STMT $FDEFINES"],
[FDEFINES="$psblas_cv_define_prepend-DPSB_HAVE_FLUSH_STMT $FDEFINES"],
)
PAC_FORTRAN_TEST_SAME_TYPE(
[FDEFINES="$psblas_cv_define_prepend-DHAVE_SAME_TYPE_AS $FDEFINES"],
[],
[AC_MSG_ERROR([Sorry, cannot build PSBLAS without support for SAME_TYPE_AS.
Please get a Fortran compiler that supports it, e.g. GNU Fortran 4.8.])]
)
PAC_FORTRAN_TEST_EXTENDS_TYPE(
[FDEFINES="$psblas_cv_define_prepend-DHAVE_EXTENDS_TYPE_OF $FDEFINES"],
[],
[AC_MSG_ERROR([Sorry, cannot build PSBLAS without support for EXTENDS_TYPE_OF.
Please get a Fortran compiler that supports it, e.g. GNU Fortran 4.8.])]
)
PAC_FORTRAN_TEST_MOLD(
[FDEFINES="$psblas_cv_define_prepend-DHAVE_MOLD $FDEFINES"],
[],
[AC_MSG_ERROR([Sorry, cannot build PSBLAS without support for MOLD= allocation.
Please get a Fortran compiler that supports it, e.g. GNU Fortran 4.8.])]
)
###############################################################################
@ -725,7 +731,7 @@ PAC_FORTRAN_TEST_MOLD(
AC_LANG([Fortran])
PAC_BLAS([], [AC_MSG_ERROR([[Cannot find BLAS library, specify a path using --with-blas=DIR/LIB (for example --with-blas=/usr/path/lib/libcxml.a)]])])
PAC_LAPACK(
[FDEFINES="$psblas_cv_define_prepend-DHAVE_LAPACK $FDEFINES"],
[FDEFINES="$psblas_cv_define_prepend-DPSB_HAVE_LAPACK $FDEFINES"],
)
AC_LANG([C])
###############################################################################
@ -752,11 +758,16 @@ if test "x$amg4psblas_cv_have_mumps" == "xyes" ; then
AC_MSG_NOTICE([PSBLAS defines PSB_LPK_ as $pac_cv_psblas_lpk. MUMPS interfacing will fail when called in global mode on very large matrices. ])
fi
if test "x$pac_mumps_fmods_ok" == "xyes" ; then
FDEFINES="$amg_cv_define_prepend-DHAVE_MUMPS_ $amg_cv_define_prepend-DHAVE_MUMPS_MODULES_ $MUMPS_MODULES $FDEFINES"
MUMPS_FLAGS="-DHave_MUMPS_ $MUMPS_MODULES"
FDEFINES="$amg_cv_define_prepend-DAMG_HAVE_MUMPS $amg_cv_define_prepend-DAMG_HAVE_MUMPS_MODULES $MUMPS_MODULES $FDEFINES"
MUMPS_FLAGS="-DAMG_HAVE_MUMPS $MUMPS_MODULES"
CHAVEMUMPS="#define AMG_HAVE_MUMPS"
CHAVEMUMPSMODULES="#define AMG_HAVE_MUMPS_MODULES"
elif test "x$pac_mumps_fincs_ok" == "xyes" ; then
FDEFINES="$amg_cv_define_prepend-DHAVE_MUMPS_ $amg_cv_define_prepend-DHAVE_MUMPS_INCLUDES_ $MUMPS_FINCLUDES $FDEFINES"
MUMPS_FLAGS="-DHave_MUMPS_ $MUMPS_INCLUDES"
FDEFINES="$amg_cv_define_prepend-DAMG_HAVE_MUMPS_ $amg_cv_define_prepend-DAMG_HAVE_MUMPS_INCLUDES $MUMPS_FINCLUDES $FDEFINES"
MUMPS_FLAGS="-DAMG_HAVE_MUMPS $MUMPS_INCLUDES"
CHAVEMUMPS="#define AMG_HAVE_MUMPS"
CHAVEMUMPSINCLUDES="#define AMG_HAVE_MUMPS_INCLUDES"
else
# This should not happen
MUMPS_FLAGS=""
@ -769,16 +780,19 @@ fi
PAC_CHECK_UMFPACK
if test "x$amg4psblas_cv_have_umfpack" == "xyes" ; then
UMF_FLAGS="-DHave_UMF_ $UMF_INCLUDES"
FDEFINES="$amg_cv_define_prepend-DHAVE_UMF_ $FDEFINES"
UMF_FLAGS="$UMF_INCLUDES"
FDEFINES="$amg_cv_define_prepend-DAMG_HAVE_UMF $FDEFINES"
CHAVEUMF="#define AMG_HAVE_UMF"
else
UMF_FLAGS=""
fi
PAC_CHECK_SUPERLU
if test "x$amg4psblas_cv_have_superlu" == "xyes" ; then
SLU_FLAGS="-DHave_SLU_ -DSLU_VERSION_$pac_slu_version $SLU_INCLUDES"
FDEFINES="$amg_cv_define_prepend-DHAVE_SLU_ $FDEFINES"
SLU_FLAGS="-DAMG_SLU_VERSION_$pac_slu_version $SLU_INCLUDES"
FDEFINES="$amg_cv_define_prepend-DAMG_HAVE_SLU $FDEFINES"
CHAVESLU="#define AMG_HAVE_SLU"
CSLUVERSION="#define AMG_SLU_VERSION_$pac_slu_version"
else
SLU_FLAGS=""
fi
@ -789,8 +803,10 @@ if test "x$amg4psblas_cv_have_superludist" == "xyes" ; then
pac_sludist_version="$amg4psblas_cv_superludist_major$amg4psblas_cv_superludist_minor";
AC_MSG_NOTICE([Configuring with SuperLU_DIST version flag $pac_sludist_version])
SLUDIST_FLAGS=""
SLUDIST_FLAGS="-DHave_SLUDist_ -DSLUD_VERSION_="$pac_sludist_version" $SLUDIST_INCLUDES"
FDEFINES="$amg_cv_define_prepend-DHAVE_SLUDIST_ $FDEFINES"
SLUDIST_FLAGS="$SLUDIST_INCLUDES"
FDEFINES="$amg_cv_define_prepend-DAMG_HAVE_SLUDIST $FDEFINES"
CHAVESLUDIST="#define AMG_HAVE_SLUDISST"
CSLUDISTVERSION="#define AMG_SLUD_VERSION $pac_sludist_version"
else
SLUDIST_FLAGS=""
fi
@ -829,6 +845,17 @@ AC_SUBST(INSTALL_MODULESDIR)
AC_SUBST(INSTALL_DOCSDIR)
AC_SUBST(INSTALL_SAMPLESDIR)
AC_SUBST(CHAVEUMF)
AC_SUBST(CHAVESLU)
AC_SUBST(CSLUVERSION)
AC_SUBST(CHAVESLUDIST)
AC_SUBST(CSLUDISTVERSION)
AC_SUBST(CHAVEMUMPS)
AC_SUBST(CHAVEMUMPSMODULES)
AC_SUBST(CHAVEMUMPSINCLUDES)
AC_SUBST(EXTRA_LIBS)
AC_SUBST(MUMPS_FLAGS)
AC_SUBST(MUMPS_LIBS)
@ -847,6 +874,7 @@ AC_SUBST(COMPILERULES)
# the following files will be created by Automake
AC_CONFIG_FILES([Make.inc])
AC_CONFIG_FILES([amgprec/amg_config.h])
AC_OUTPUT()
###############################################################################

@ -93,7 +93,7 @@ contains
& a1,a2,a3,b1,b2,b3,c,g,info,f,amold,vmold,partition, nrl,iv)
use psb_base_mod
use psb_util_mod
#if defined(OPENMP)
#if defined(PSB_OPENMP)
use omp_lib
#endif
!
@ -262,7 +262,7 @@ contains
! A nifty MPI function will split the process list
npdims = 0
#if defined(SERIAL_MPI)
#if defined(PSB_SERIAL_MPI)
npdims = 1
#else
call mpi_dims_create(np,3,npdims,info)
@ -379,7 +379,7 @@ contains
integer(psb_lpk_), allocatable :: irow(:),icol(:)
real(psb_dpk_), allocatable :: val(:)
real(psb_dpk_) :: x,y,z, zt(nb)
#if defined(OPENMP)
#if defined(PSB_OPENMP)
nth = omp_get_num_threads()
ith = omp_get_thread_num()
#else
@ -566,7 +566,7 @@ contains
& a1,a2,b1,b2,c,g,info,f,amold,vmold,partition, nrl,iv)
use psb_base_mod
use psb_util_mod
#if defined(OPENMP)
#if defined(PSB_OPENMP)
use omp_lib
#endif
!
@ -725,7 +725,7 @@ contains
! A nifty MPI function will split the process list
npdims = 0
#if defined(SERIAL_MPI)
#if defined(PSB_SERIAL_MPI)
npdims = 1
#else
call mpi_dims_create(np,2,npdims,info)
@ -836,7 +836,7 @@ contains
integer(psb_lpk_), allocatable :: irow(:),icol(:)
real(psb_dpk_), allocatable :: val(:)
real(psb_dpk_) :: x,y,z, zt(nb)
#if defined(OPENMP)
#if defined(PSB_OPENMP)
nth = omp_get_num_threads()
ith = omp_get_thread_num()
#else

@ -74,7 +74,7 @@ program amg_d_pde2d
use amg_d_pde2d_box_mod
use amg_d_pde2d_gauss_mod
use amg_d_genpde_mod
#if defined(OPENMP)
#if defined(PSB_OPENMP)
use omp_lib
#endif
implicit none
@ -212,7 +212,7 @@ program amg_d_pde2d
call psb_init(ctxt)
call psb_info(ctxt,iam,np)
#if defined(OPENMP)
#if defined(PSB_OPENMP)
!$OMP parallel shared(nth)
!$OMP master
nth = omp_get_num_threads()

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save