diff --git a/config/pac.m4 b/config/pac.m4 index 9d0061f0..03b153cc 100644 --- a/config/pac.m4 +++ b/config/pac.m4 @@ -858,3 +858,34 @@ CPPFLAGS="$save_CPPFLAGS"; CC="$save_CC"; ])dnl +dnl @synopsis PAC_ARG_SERIAL_MPI +dnl +dnl Test for --with-serial-mpi={yes|no} +dnl +dnl +dnl +dnl Example use: +dnl +dnl +dnl @author Salvatore Filippone +dnl +AC_DEFUN([PAC_ARG_SERIAL_MPI], +[ +AC_MSG_CHECKING([whether we want serial (fake) mpi]) +AC_ARG_ENABLE(serial, +AC_HELP_STRING([--enable-serial], +[Specify whether to enable a fake mpi library to run in serial mode. ]), +[ +pac_cv_serial_mpi="yes"; +] +dnl , +dnl [pac_cv_serial_mpi="no";] +) +if test x"$pac_cv_serial_mpi" == x"yes" ; then + AC_MSG_RESULT([yes.]) +else + pac_cv_serial_mpi="no"; + AC_MSG_RESULT([no.]) +fi +] +) diff --git a/configure b/configure index 0121e8db..1e2a3eb1 100755 --- a/configure +++ b/configure @@ -719,6 +719,7 @@ with_psblas with_libs with_umfpack with_umfpackdir +enable_serial with_superlu with_superludir with_superludist @@ -1357,6 +1358,13 @@ if test -n "$ac_init_help"; then esac cat <<\_ACEOF +Optional Features: + --disable-option-checking ignore unrecognized --enable/--with options + --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) + --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --enable-serial Specify whether to enable a fake mpi library to run + in serial mode. + Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) @@ -4400,7 +4408,27 @@ else UMF_FLAGS="" fi -PAC_ARG_SERIAL_MPI + +{ $as_echo "$as_me:$LINENO: checking whether we want serial (fake) mpi" >&5 +$as_echo_n "checking whether we want serial (fake) mpi... " >&6; } +# Check whether --enable-serial was given. +if test "${enable_serial+set}" = set; then + enableval=$enable_serial; +pac_cv_serial_mpi="yes"; + + +fi + +if test x"$pac_cv_serial_mpi" == x"yes" ; then + { $as_echo "$as_me:$LINENO: result: yes." >&5 +$as_echo "yes." >&6; } +else + pac_cv_serial_mpi="no"; + { $as_echo "$as_me:$LINENO: result: no." >&5 +$as_echo "no." >&6; } +fi + + #Note : we miss the name of the Intel C compiler if test x"$pac_cv_serial_mpi" == x"yes" ; then diff --git a/mlprec/mld_inner_mod.f90 b/mlprec/mld_inner_mod.f90 index 34609821..2c7ab8e9 100644 --- a/mlprec/mld_inner_mod.f90 +++ b/mlprec/mld_inner_mod.f90 @@ -938,129 +938,129 @@ module mld_inner_mod end subroutine mld_zumf_bld end interface - interface mld_ilu0_fact - subroutine mld_silu0_fact(ialg,a,l,u,d,info,blck,upd) - use psb_sparse_mod, only : psb_s_sparse_mat, psb_desc_type, psb_spk_ - integer, intent(in) :: ialg - integer, intent(out) :: info - type(psb_s_sparse_mat),intent(in) :: a - type(psb_s_sparse_mat),intent(inout) :: l,u - type(psb_s_sparse_mat),intent(in), optional, target :: blck - character, intent(in), optional :: upd - real(psb_spk_), intent(inout) :: d(:) - end subroutine mld_silu0_fact - subroutine mld_dilu0_fact(ialg,a,l,u,d,info,blck,upd) - use psb_sparse_mod, only : psb_d_sparse_mat, psb_desc_type, psb_dpk_ - integer, intent(in) :: ialg - integer, intent(out) :: info - type(psb_d_sparse_mat),intent(in) :: a - type(psb_d_sparse_mat),intent(inout) :: l,u - type(psb_d_sparse_mat),intent(in), optional, target :: blck - character, intent(in), optional :: upd - real(psb_dpk_), intent(inout) :: d(:) - end subroutine mld_dilu0_fact - subroutine mld_cilu0_fact(ialg,a,l,u,d,info,blck,upd) - use psb_sparse_mod, only : psb_c_sparse_mat, psb_desc_type, psb_spk_ - integer, intent(in) :: ialg - integer, intent(out) :: info - type(psb_c_sparse_mat),intent(in) :: a - type(psb_c_sparse_mat),intent(inout) :: l,u - type(psb_c_sparse_mat),intent(in), optional, target :: blck - character, intent(in), optional :: upd - complex(psb_spk_), intent(inout) :: d(:) - end subroutine mld_cilu0_fact - subroutine mld_zilu0_fact(ialg,a,l,u,d,info,blck,upd) - use psb_sparse_mod, only : psb_z_sparse_mat, psb_desc_type, psb_dpk_ - integer, intent(in) :: ialg - integer, intent(out) :: info - type(psb_z_sparse_mat),intent(in) :: a - type(psb_z_sparse_mat),intent(inout) :: l,u - type(psb_z_sparse_mat),intent(in), optional, target :: blck - character, intent(in), optional :: upd - complex(psb_dpk_), intent(inout) :: d(:) - end subroutine mld_zilu0_fact - end interface - - interface mld_iluk_fact - subroutine mld_siluk_fact(fill_in,ialg,a,l,u,d,info,blck) - use psb_sparse_mod, only : psb_s_sparse_mat, psb_desc_type, psb_spk_ - integer, intent(in) :: fill_in,ialg - integer, intent(out) :: info - type(psb_s_sparse_mat),intent(in) :: a - type(psb_s_sparse_mat),intent(inout) :: l,u - type(psb_s_sparse_mat),intent(in), optional, target :: blck - real(psb_spk_), intent(inout) :: d(:) - end subroutine mld_siluk_fact - subroutine mld_diluk_fact(fill_in,ialg,a,l,u,d,info,blck) - use psb_sparse_mod, only : psb_d_sparse_mat, psb_desc_type, psb_dpk_ - integer, intent(in) :: fill_in,ialg - integer, intent(out) :: info - type(psb_d_sparse_mat),intent(in) :: a - type(psb_d_sparse_mat),intent(inout) :: l,u - type(psb_d_sparse_mat),intent(in), optional, target :: blck - real(psb_dpk_), intent(inout) :: d(:) - end subroutine mld_diluk_fact - subroutine mld_ciluk_fact(fill_in,ialg,a,l,u,d,info,blck) - use psb_sparse_mod, only : psb_c_sparse_mat, psb_desc_type, psb_spk_ - integer, intent(in) :: fill_in,ialg - integer, intent(out) :: info - type(psb_c_sparse_mat),intent(in) :: a - type(psb_c_sparse_mat),intent(inout) :: l,u - type(psb_c_sparse_mat),intent(in), optional, target :: blck - complex(psb_spk_), intent(inout) :: d(:) - end subroutine mld_ciluk_fact - subroutine mld_ziluk_fact(fill_in,ialg,a,l,u,d,info,blck) - use psb_sparse_mod, only : psb_z_sparse_mat, psb_desc_type, psb_dpk_ - integer, intent(in) :: fill_in,ialg - integer, intent(out) :: info - type(psb_z_sparse_mat),intent(in) :: a - type(psb_z_sparse_mat),intent(inout) :: l,u - type(psb_z_sparse_mat),intent(in), optional, target :: blck - complex(psb_dpk_), intent(inout) :: d(:) - end subroutine mld_ziluk_fact - end interface - - interface mld_ilut_fact - subroutine mld_silut_fact(fill_in,thres,a,l,u,d,info,blck) - use psb_sparse_mod, only : psb_s_sparse_mat, psb_desc_type, psb_spk_ - integer, intent(in) :: fill_in - real(psb_spk_), intent(in) :: thres - integer, intent(out) :: info - type(psb_s_sparse_mat),intent(in) :: a - type(psb_s_sparse_mat),intent(inout) :: l,u - type(psb_s_sparse_mat),intent(in), optional, target :: blck - real(psb_spk_), intent(inout) :: d(:) - end subroutine mld_silut_fact - subroutine mld_dilut_fact(fill_in,thres,a,l,u,d,info,blck) - use psb_sparse_mod, only : psb_d_sparse_mat, psb_desc_type, psb_dpk_ - integer, intent(in) :: fill_in - real(psb_dpk_), intent(in) :: thres - integer, intent(out) :: info - type(psb_d_sparse_mat),intent(in) :: a - type(psb_d_sparse_mat),intent(inout) :: l,u - type(psb_d_sparse_mat),intent(in), optional, target :: blck - real(psb_dpk_), intent(inout) :: d(:) - end subroutine mld_dilut_fact - subroutine mld_cilut_fact(fill_in,thres,a,l,u,d,info,blck) - use psb_sparse_mod, only : psb_c_sparse_mat, psb_desc_type, psb_spk_ - integer, intent(in) :: fill_in - real(psb_spk_), intent(in) :: thres - integer, intent(out) :: info - type(psb_c_sparse_mat),intent(in) :: a - type(psb_c_sparse_mat),intent(inout) :: l,u - type(psb_c_sparse_mat),intent(in), optional, target :: blck - complex(psb_spk_), intent(inout) :: d(:) - end subroutine mld_cilut_fact - subroutine mld_zilut_fact(fill_in,thres,a,l,u,d,info,blck) - use psb_sparse_mod, only : psb_z_sparse_mat, psb_desc_type, psb_dpk_ - integer, intent(in) :: fill_in - real(psb_dpk_), intent(in) :: thres - integer, intent(out) :: info - type(psb_z_sparse_mat),intent(in) :: a - type(psb_z_sparse_mat),intent(inout) :: l,u - type(psb_z_sparse_mat),intent(in), optional, target :: blck - complex(psb_dpk_), intent(inout) :: d(:) - end subroutine mld_zilut_fact - end interface +!!$ interface mld_ilu0_fact +!!$ subroutine mld_silu0_fact(ialg,a,l,u,d,info,blck,upd) +!!$ use psb_sparse_mod, only : psb_s_sparse_mat, psb_desc_type, psb_spk_ +!!$ integer, intent(in) :: ialg +!!$ integer, intent(out) :: info +!!$ type(psb_s_sparse_mat),intent(in) :: a +!!$ type(psb_s_sparse_mat),intent(inout) :: l,u +!!$ type(psb_s_sparse_mat),intent(in), optional, target :: blck +!!$ character, intent(in), optional :: upd +!!$ real(psb_spk_), intent(inout) :: d(:) +!!$ end subroutine mld_silu0_fact +!!$ subroutine mld_dilu0_fact(ialg,a,l,u,d,info,blck,upd) +!!$ use psb_sparse_mod, only : psb_d_sparse_mat, psb_desc_type, psb_dpk_ +!!$ integer, intent(in) :: ialg +!!$ integer, intent(out) :: info +!!$ type(psb_d_sparse_mat),intent(in) :: a +!!$ type(psb_d_sparse_mat),intent(inout) :: l,u +!!$ type(psb_d_sparse_mat),intent(in), optional, target :: blck +!!$ character, intent(in), optional :: upd +!!$ real(psb_dpk_), intent(inout) :: d(:) +!!$ end subroutine mld_dilu0_fact +!!$ subroutine mld_cilu0_fact(ialg,a,l,u,d,info,blck,upd) +!!$ use psb_sparse_mod, only : psb_c_sparse_mat, psb_desc_type, psb_spk_ +!!$ integer, intent(in) :: ialg +!!$ integer, intent(out) :: info +!!$ type(psb_c_sparse_mat),intent(in) :: a +!!$ type(psb_c_sparse_mat),intent(inout) :: l,u +!!$ type(psb_c_sparse_mat),intent(in), optional, target :: blck +!!$ character, intent(in), optional :: upd +!!$ complex(psb_spk_), intent(inout) :: d(:) +!!$ end subroutine mld_cilu0_fact +!!$ subroutine mld_zilu0_fact(ialg,a,l,u,d,info,blck,upd) +!!$ use psb_sparse_mod, only : psb_z_sparse_mat, psb_desc_type, psb_dpk_ +!!$ integer, intent(in) :: ialg +!!$ integer, intent(out) :: info +!!$ type(psb_z_sparse_mat),intent(in) :: a +!!$ type(psb_z_sparse_mat),intent(inout) :: l,u +!!$ type(psb_z_sparse_mat),intent(in), optional, target :: blck +!!$ character, intent(in), optional :: upd +!!$ complex(psb_dpk_), intent(inout) :: d(:) +!!$ end subroutine mld_zilu0_fact +!!$ end interface +!!$ +!!$ interface mld_iluk_fact +!!$ subroutine mld_siluk_fact(fill_in,ialg,a,l,u,d,info,blck) +!!$ use psb_sparse_mod, only : psb_s_sparse_mat, psb_desc_type, psb_spk_ +!!$ integer, intent(in) :: fill_in,ialg +!!$ integer, intent(out) :: info +!!$ type(psb_s_sparse_mat),intent(in) :: a +!!$ type(psb_s_sparse_mat),intent(inout) :: l,u +!!$ type(psb_s_sparse_mat),intent(in), optional, target :: blck +!!$ real(psb_spk_), intent(inout) :: d(:) +!!$ end subroutine mld_siluk_fact +!!$ subroutine mld_diluk_fact(fill_in,ialg,a,l,u,d,info,blck) +!!$ use psb_sparse_mod, only : psb_d_sparse_mat, psb_desc_type, psb_dpk_ +!!$ integer, intent(in) :: fill_in,ialg +!!$ integer, intent(out) :: info +!!$ type(psb_d_sparse_mat),intent(in) :: a +!!$ type(psb_d_sparse_mat),intent(inout) :: l,u +!!$ type(psb_d_sparse_mat),intent(in), optional, target :: blck +!!$ real(psb_dpk_), intent(inout) :: d(:) +!!$ end subroutine mld_diluk_fact +!!$ subroutine mld_ciluk_fact(fill_in,ialg,a,l,u,d,info,blck) +!!$ use psb_sparse_mod, only : psb_c_sparse_mat, psb_desc_type, psb_spk_ +!!$ integer, intent(in) :: fill_in,ialg +!!$ integer, intent(out) :: info +!!$ type(psb_c_sparse_mat),intent(in) :: a +!!$ type(psb_c_sparse_mat),intent(inout) :: l,u +!!$ type(psb_c_sparse_mat),intent(in), optional, target :: blck +!!$ complex(psb_spk_), intent(inout) :: d(:) +!!$ end subroutine mld_ciluk_fact +!!$ subroutine mld_ziluk_fact(fill_in,ialg,a,l,u,d,info,blck) +!!$ use psb_sparse_mod, only : psb_z_sparse_mat, psb_desc_type, psb_dpk_ +!!$ integer, intent(in) :: fill_in,ialg +!!$ integer, intent(out) :: info +!!$ type(psb_z_sparse_mat),intent(in) :: a +!!$ type(psb_z_sparse_mat),intent(inout) :: l,u +!!$ type(psb_z_sparse_mat),intent(in), optional, target :: blck +!!$ complex(psb_dpk_), intent(inout) :: d(:) +!!$ end subroutine mld_ziluk_fact +!!$ end interface +!!$ +!!$ interface mld_ilut_fact +!!$ subroutine mld_silut_fact(fill_in,thres,a,l,u,d,info,blck) +!!$ use psb_sparse_mod, only : psb_s_sparse_mat, psb_desc_type, psb_spk_ +!!$ integer, intent(in) :: fill_in +!!$ real(psb_spk_), intent(in) :: thres +!!$ integer, intent(out) :: info +!!$ type(psb_s_sparse_mat),intent(in) :: a +!!$ type(psb_s_sparse_mat),intent(inout) :: l,u +!!$ type(psb_s_sparse_mat),intent(in), optional, target :: blck +!!$ real(psb_spk_), intent(inout) :: d(:) +!!$ end subroutine mld_silut_fact +!!$ subroutine mld_dilut_fact(fill_in,thres,a,l,u,d,info,blck) +!!$ use psb_sparse_mod, only : psb_d_sparse_mat, psb_desc_type, psb_dpk_ +!!$ integer, intent(in) :: fill_in +!!$ real(psb_dpk_), intent(in) :: thres +!!$ integer, intent(out) :: info +!!$ type(psb_d_sparse_mat),intent(in) :: a +!!$ type(psb_d_sparse_mat),intent(inout) :: l,u +!!$ type(psb_d_sparse_mat),intent(in), optional, target :: blck +!!$ real(psb_dpk_), intent(inout) :: d(:) +!!$ end subroutine mld_dilut_fact +!!$ subroutine mld_cilut_fact(fill_in,thres,a,l,u,d,info,blck) +!!$ use psb_sparse_mod, only : psb_c_sparse_mat, psb_desc_type, psb_spk_ +!!$ integer, intent(in) :: fill_in +!!$ real(psb_spk_), intent(in) :: thres +!!$ integer, intent(out) :: info +!!$ type(psb_c_sparse_mat),intent(in) :: a +!!$ type(psb_c_sparse_mat),intent(inout) :: l,u +!!$ type(psb_c_sparse_mat),intent(in), optional, target :: blck +!!$ complex(psb_spk_), intent(inout) :: d(:) +!!$ end subroutine mld_cilut_fact +!!$ subroutine mld_zilut_fact(fill_in,thres,a,l,u,d,info,blck) +!!$ use psb_sparse_mod, only : psb_z_sparse_mat, psb_desc_type, psb_dpk_ +!!$ integer, intent(in) :: fill_in +!!$ real(psb_dpk_), intent(in) :: thres +!!$ integer, intent(out) :: info +!!$ type(psb_z_sparse_mat),intent(in) :: a +!!$ type(psb_z_sparse_mat),intent(inout) :: l,u +!!$ type(psb_z_sparse_mat),intent(in), optional, target :: blck +!!$ complex(psb_dpk_), intent(inout) :: d(:) +!!$ end subroutine mld_zilut_fact +!!$ end interface end module mld_inner_mod