diff --git a/Make.inc.in b/Make.inc.in index 9ac10ee7..ce7724b2 100644 --- a/Make.inc.in +++ b/Make.inc.in @@ -70,8 +70,8 @@ EXTRALIBS=@EXTRA_LIBS@ # -AMGCDEFINES=$(MUMPSFLAGS) $(SLUFLAGS) $(UMFFLAGS) $(SLUDISTFLAGS) $(PSBCDEFINES) -CDEFINES=$(AMGCDEFINES) +#AMGCDEFINES=$(MUMPSFLAGS) $(SLUFLAGS) $(UMFFLAGS) $(SLUDISTFLAGS) $(PSBCDEFINES) +#CDEFINES=$(AMGCDEFINES) AMGFDEFINES=@AMGFDEFINES@ $(PSBFDEFINES) FDEFINES=$(AMGFDEFINES) diff --git a/amgprec/Makefile b/amgprec/Makefile index fe38d8e8..a5b2e48b 100644 --- a/amgprec/Makefile +++ b/amgprec/Makefile @@ -64,7 +64,7 @@ LIBNAME=libamg_prec.a all: mods objs impld mods: $(MODOBJS) - /bin/cp -p amg_const.h amg_config.h $(INCDIR) + /bin/cp -p amg_config.h $(INCDIR) /bin/cp -p *$(.mod) $(MODDIR) objs: mods impld impld: mods @@ -79,7 +79,7 @@ lib: mods impld $(MODOBJS): $(PSBLAS_MODDIR)/$(PSBBASEMODNAME)$(.mod) -amg_base_prec_type.o: amg_const.h +#amg_base_prec_type.o: amg_const.h amg_s_prec_type.o amg_d_prec_type.o amg_c_prec_type.o amg_z_prec_type.o : amg_base_prec_type.o amg_prec_type.o: amg_s_prec_type.o amg_d_prec_type.o amg_c_prec_type.o amg_z_prec_type.o amg_prec_mod.o: amg_prec_type.o amg_s_prec_mod.o amg_d_prec_mod.o amg_c_prec_mod.o amg_z_prec_mod.o diff --git a/amgprec/amg2amh.sh b/amgprec/amg2amh.sh deleted file mode 100755 index 93cfb782..00000000 --- a/amgprec/amg2amh.sh +++ /dev/null @@ -1,16 +0,0 @@ -#!/bin/bash -hn=amg_const.h -fn=amg_base_prec_type.F90 -echo "/* This file was generated by a script using the $fn file as a basis. */" > $hn -echo '#ifndef AMG_CONST_H_' >> $hn -echo '#define AMG_CONST_H_' >> $hn -echo '#ifdef __cplusplus' >> $hn -echo 'extern "C" { ' >> $hn -echo '#endif' >> $hn -cat $fn | sed 's/=/= (/g;s/$/ )/g' | grep '\(^ *!\)\|parameter' | grep '_\>' | sed 's/^\s*//g;s/^.*:://g;s/\s*=\s*/ /g' | sed 's/,/\n/g;s/^ //g' | tr '[:lower:]' '[:upper:]' | grep ^AMG | sed 's/^/#define /g' >> $hn -echo '#ifdef __cplusplus' >> $hn -echo '}' >> $hn -echo '#endif' >> $hn -echo '#endif' >> $hn -exit - diff --git a/amgprec/amg_config.h.in b/amgprec/amg_config.h.in index f197a5f2..d116b453 100644 --- a/amgprec/amg_config.h.in +++ b/amgprec/amg_config.h.in @@ -3,6 +3,12 @@ #include "psb_config.h" +#define AMG_VERSION_MAJOR @AMGMAJOR@ +#define AMG_VERSION_MINOR @AMGMINOR@ +#define AMG_VERSION_PATCHLEVEL @AMGPATCH@ +#define AMG_VERSION_STRING @AMGSTRING@ + + @CHAVEUMF@ @CHAVESLU@ @CSLUVERSION@ diff --git a/amgprec/amg_const.h b/amgprec/amg_const.h deleted file mode 100644 index 1195fefc..00000000 --- a/amgprec/amg_const.h +++ /dev/null @@ -1,107 +0,0 @@ -/* This file was generated by a script using the mld_base_prec_type.F90 file as a basis. */ -#ifndef MLD_CONST_H_ -#define MLD_CONST_H_ -#ifdef __cplusplus -extern "C" { -#endif -#define MLD_VERSION_STRING_ ( "2.0.0" ) -#define MLD_VERSION_MAJOR_ ( 2 ) -#define MLD_VERSION_MINOR_ ( 0 ) -#define MLD_PATCHLEVEL_ ( 0 ) -#define MLD_SMOOTHER_TYPE_ ( 1 ) -#define MLD_SUB_SOLVE_ ( 2 ) -#define MLD_SUB_RESTR_ ( 3 ) -#define MLD_SUB_PROL_ ( 4 ) -#define MLD_SUB_REN_ ( 5 ) -#define MLD_SUB_OVR_ ( 6 ) -#define MLD_SUB_FILLIN_ ( 8 ) -#define MLD_SLU_PTR_ ( 10 ) -#define MLD_UMF_SYMPTR_ ( 12 ) -#define MLD_UMF_NUMPTR_ ( 14 ) -#define MLD_SLUD_PTR_ ( 16 ) -#define MLD_PREC_STATUS_ ( 18 ) -#define MLD_ML_TYPE_ ( 20 ) -#define MLD_SMOOTHER_SWEEPS_PRE_ ( 21 ) -#define MLD_SMOOTHER_SWEEPS_POST_ ( 22 ) -#define MLD_SMOOTHER_POS_ ( 23 ) -#define MLD_AGGR_KIND_ ( 24 ) -#define MLD_AGGR_ALG_ ( 25 ) -#define MLD_AGGR_OMEGA_ALG_ ( 26 ) -#define MLD_AGGR_EIG_ ( 27 ) -#define MLD_AGGR_FILTER_ ( 28 ) -#define MLD_COARSE_MAT_ ( 29 ) -#define MLD_COARSE_SOLVE_ ( 30 ) -#define MLD_COARSE_SWEEPS_ ( 31 ) -#define MLD_COARSE_FILLIN_ ( 32 ) -#define MLD_COARSE_SUBSOLVE_ ( 33 ) -#define MLD_SMOOTHER_SWEEPS_ ( 34 ) -#define MLD_IFPSZ_ ( 36 ) -#define MLD_MIN_PREC_ ( 0 ) -#define MLD_NOPREC_ ( 0 ) -#define MLD_JAC_ ( 1 ) -#define MLD_BJAC_ ( 2 ) -#define MLD_AS_ ( 3 ) -#define MLD_MAX_PREC_ ( 3 ) -#define MLD_SLV_DELTA_ ( MLD_MAX_PREC_+1 ) -#define MLD_F_NONE_ ( MLD_SLV_DELTA_+0 ) -#define MLD_DIAG_SCALE_ ( MLD_SLV_DELTA_+1 ) -#define MLD_ILU_N_ ( MLD_SLV_DELTA_+2 ) -#define MLD_MILU_N_ ( MLD_SLV_DELTA_+3 ) -#define MLD_ILU_T_ ( MLD_SLV_DELTA_+4 ) -#define MLD_SLU_ ( MLD_SLV_DELTA_+5 ) -#define MLD_UMF_ ( MLD_SLV_DELTA_+6 ) -#define MLD_SLUDIST_ ( MLD_SLV_DELTA_+7 ) -#define MLD_MAX_SUB_SOLVE_ ( MLD_SLV_DELTA_+7 ) -#define MLD_MIN_SUB_SOLVE_ ( MLD_DIAG_SCALE_ ) -#define MLD_RENUM_NONE_ (0 ) -#define MLD_RENUM_GLB_ (1 ) -#define MLD_RENUM_GPS_ (2 ) -#define MLD_MAX_RENUM_ (1 ) -#define MLD_NO_ML_ ( 0 ) -#define MLD_ADD_ML_ ( 1 ) -#define MLD_MULT_ML_ ( 2 ) -#define MLD_NEW_ML_PREC_ ( 3 ) -#define MLD_MAX_ML_TYPE_ ( MLD_MULT_ML_ ) -#define MLD_PRE_SMOOTH_ (1 ) -#define MLD_POST_SMOOTH_ (2 ) -#define MLD_TWOSIDE_SMOOTH_ (3 ) -#define MLD_MAX_SMOOTH_ (MLD_TWOSIDE_SMOOTH_ ) -#define MLD_NO_SMOOTH_ ( 0 ) -#define MLD_SMOOTH_PROL_ ( 1 ) -#define MLD_MIN_ENERGY_ ( 2 ) -#define MLD_BIZ_PROL_ ( 3 ) -#define MLD_MAX_AGGR_KIND_ (MLD_MIN_ENERGY_ ) -#define MLD_NO_FILTER_MAT_ (0 ) -#define MLD_FILTER_MAT_ (1 ) -#define MLD_MAX_FILTER_MAT_ (MLD_NO_FILTER_MAT_ ) -#define MLD_DEC_AGGR_ (0 ) -#define MLD_SYM_DEC_AGGR_ (1 ) -#define MLD_GLB_AGGR_ (2 ) -#define MLD_NEW_DEC_AGGR_ (3 ) -#define MLD_NEW_GLB_AGGR_ (4 ) -#define MLD_MAX_AGGR_ALG_ (MLD_DEC_AGGR_ ) -#define MLD_EIG_EST_ (0 ) -#define MLD_USER_CHOICE_ (999 ) -#define MLD_MAX_NORM_ (0 ) -#define MLD_DISTR_MAT_ (0 ) -#define MLD_REPL_MAT_ (1 ) -#define MLD_MAX_COARSE_MAT_ (MLD_REPL_MAT_ ) -#define MLD_PREC_BUILT_ (98765 ) -#define MLD_SUB_ILUTHRS_ ( 1 ) -#define MLD_AGGR_OMEGA_VAL_ ( 2 ) -#define MLD_AGGR_THRESH_ ( 3 ) -#define MLD_COARSE_ILUTHRS_ ( 4 ) -#define MLD_RFPSZ_ ( 8 ) -#define MLD_L_PR_ (1 ) -#define MLD_U_PR_ (2 ) -#define MLD_BP_ILU_AVSZ_ (2 ) -#define MLD_AP_ND_ (3 ) -#define MLD_AC_ (4 ) -#define MLD_SM_PR_T_ (5 ) -#define MLD_SM_PR_ (6 ) -#define MLD_SMTH_AVSZ_ (6 ) -#define MLD_MAX_AVSZ_ (MLD_SMTH_AVSZ_ ) -#ifdef __cplusplus -} -#endif -#endif diff --git a/cbind/amgprec/Makefile b/cbind/amgprec/Makefile index 1be73280..5369b4fb 100644 --- a/cbind/amgprec/Makefile +++ b/cbind/amgprec/Makefile @@ -11,7 +11,7 @@ FINCLUDES=$(FMFLAG)$(HERE) $(FMFLAG)$(INCDIR) $(FMFLAG)$(MODDIR) $(PSBLAS_INCLUD OBJS=amg_prec_cbind_mod.o amg_dprec_cbind_mod.o amg_c_dprec.o amg_zprec_cbind_mod.o amg_c_zprec.o -CMOD=amg_cbind.h amg_c_dprec.h amg_c_zprec.h amg_const.h +CMOD=amg_cbind.h amg_c_dprec.h amg_c_zprec.h LIBMOD=amg_prec_cbind_mod$(.mod) amg_dprec_cbind_mod$(.mod) amg_zprec_cbind_mod$(.mod) diff --git a/cbind/amgprec/amg_c_dprec.h b/cbind/amgprec/amg_c_dprec.h index 577add44..282859f2 100644 --- a/cbind/amgprec/amg_c_dprec.h +++ b/cbind/amgprec/amg_c_dprec.h @@ -1,7 +1,7 @@ #ifndef AMG_C_DPREC_ #define AMG_C_DPREC_ -#include "amg_const.h" +#include "amg_config.h" #include "psb_base_cbind.h" #include "psb_prec_cbind.h" #include "psb_linsolve_cbind.h" diff --git a/cbind/amgprec/amg_c_zprec.h b/cbind/amgprec/amg_c_zprec.h index b9916c31..cb624540 100644 --- a/cbind/amgprec/amg_c_zprec.h +++ b/cbind/amgprec/amg_c_zprec.h @@ -1,7 +1,7 @@ #ifndef AMG_C_ZPREC_ #define AMG_C_ZPREC_ -#include "amg_const.h" +#include "amg_config.h" #include "psb_base_cbind.h" #include "psb_prec_cbind.h" #include "psb_linsolve_cbind.h" diff --git a/cbind/amgprec/amg_cbind.h b/cbind/amgprec/amg_cbind.h index 4fd0e90c..ec458934 100644 --- a/cbind/amgprec/amg_cbind.h +++ b/cbind/amgprec/amg_cbind.h @@ -4,9 +4,9 @@ #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_config.h" #include "amg_c_dprec.h" +#include "amg_c_zprec.h" #endif diff --git a/cbind/amgprec/amg_const.h b/cbind/amgprec/amg_const.h deleted file mode 100644 index b632faff..00000000 --- a/cbind/amgprec/amg_const.h +++ /dev/null @@ -1,14 +0,0 @@ -/* This file was generated by a script using the amg_base_prec_type.F90 file as a basis. */ -#ifndef AMG_CONST_H_ -#define AMG_CONST_H_ -#ifdef __cplusplus -extern "C" { -#endif -#define AMG_VERSION_STRING_ ( "1.0.0" ) -#define AMG_VERSION_MAJOR_ ( 1 ) -#define AMG_VERSION_MINOR_ ( 0 ) -#define AMG_PATCHLEVEL_ ( 0 ) -#ifdef __cplusplus -} -#endif -#endif diff --git a/config/pac.m4 b/config/pac.m4 index 9ecbbd72..11b509fe 100644 --- a/config/pac.m4 +++ b/config/pac.m4 @@ -1870,6 +1870,57 @@ AC_LANG_POP([Fortran]) ]) +dnl @synopsis PAC_FORTRAN_TEST_SUBMODULES( [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]) +dnl +dnl Will try to compile a program checking the SUBMODULES Fortran support. +dnl +dnl Will use MPIFC, otherwise '$FC'. +dnl +dnl If the test passes, will execute ACTION-IF-FOUND. Otherwise, ACTION-IF-NOT-FOUND. +dnl Note : This file will be likely to induce the compiler to create a module file +dnl (for a module called conftest). +dnl Depending on the compiler flags, this could cause a conftest.mod file to appear +dnl in the present directory, or in another, or with another name. So be warned! +dnl +dnl @author Salvatore Filippone +AC_DEFUN(PAC_FORTRAN_TEST_SUBMODULES, +dnl Warning : square brackets are EVIL! +[AC_MSG_CHECKING([support for Fortran SUBMODULES]) +AC_LANG_PUSH([Fortran]) + ac_exeext='' + ac_ext='F90' + dnl ac_link='${MPIFC-$FC} -o conftest${ac_exeext} $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' + ac_fc=${MPIFC-$FC}; + AC_COMPILE_IFELSE([ +module conftest + + interface + module subroutine foo(v) + integer, intent(inout) :: v(:) + end subroutine foo + end interface +end module conftest +submodule (conftest) conftest_impl + +contains + module subroutine foo(v) + integer, intent(inout) :: v(:) + integer :: i + do i=1,size(v) + v(i)=i + end do + end subroutine foo +end submodule ], + [ AC_MSG_RESULT([yes]) + ifelse([$1], , :, [ $1])], + [ AC_MSG_RESULT([no]) + echo "configure: failed program was:" >&AS_MESSAGE_LOG_FD + cat conftest.$ac_ext >&AS_MESSAGE_LOG_FD + ifelse([$2], , , [ $2])]) +AC_LANG_POP([Fortran]) +]) + + dnl @synopsis PAC_BLAS([ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]]) dnl modified from ACX_BLAS([ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]]) dnl diff --git a/configure b/configure index 85b1c53e..dd3d0a95 100755 --- a/configure +++ b/configure @@ -669,6 +669,10 @@ CHAVESLUDIST CSLUVERSION CHAVESLU CHAVEUMF +AMGSTRING +AMGPATCH +AMGMINOR +AMGMAJOR INSTALL_SAMPLESDIR INSTALL_DOCSDIR INSTALL_MODULESDIR @@ -3445,7 +3449,7 @@ fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Loaded $pac_cv_status_file $FC $MPIFC $BLACS_LIBS" >&5 printf "%s\n" "$as_me: Loaded $pac_cv_status_file $FC $MPIFC $BLACS_LIBS" >&6;} -am__api_version='1.17' +am__api_version='1.18' @@ -3715,10 +3719,14 @@ am_lf=' ' case `pwd` in *[\\\"\#\$\&\'\`$am_lf]*) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;; esac case $srcdir in *[\\\"\#\$\&\'\`$am_lf\ \ ]*) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } as_fn_error $? "unsafe srcdir value: '$srcdir'" "$LINENO" 5;; esac @@ -4183,9 +4191,133 @@ AMTAR='$${TAR-tar}' # We'll loop over all known methods to create a tar archive until one works. -_am_tools='gnutar pax cpio none' +_am_tools='gnutar plaintar pax cpio none' + +# The POSIX 1988 'ustar' format is defined with fixed-size fields. + # There is notably a 21 bits limit for the UID and the GID. In fact, + # the 'pax' utility can hang on bigger UID/GID (see automake bug#8343 + # and bug#13588). + am_max_uid=2097151 # 2^21 - 1 + am_max_gid=$am_max_uid + # The $UID and $GID variables are not portable, so we need to resort + # to the POSIX-mandated id(1) utility. Errors in the 'id' calls + # below are definitely unexpected, so allow the users to see them + # (that is, avoid stderr redirection). + am_uid=`id -u || echo unknown` + am_gid=`id -g || echo unknown` + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether UID '$am_uid' is supported by ustar format" >&5 +printf %s "checking whether UID '$am_uid' is supported by ustar format... " >&6; } + if test x$am_uid = xunknown; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: ancient id detected; assuming current UID is ok, but dist-ustar might not work" >&5 +printf "%s\n" "$as_me: WARNING: ancient id detected; assuming current UID is ok, but dist-ustar might not work" >&2;} + elif test $am_uid -le $am_max_uid; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + _am_tools=none + fi + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether GID '$am_gid' is supported by ustar format" >&5 +printf %s "checking whether GID '$am_gid' is supported by ustar format... " >&6; } + if test x$gm_gid = xunknown; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: ancient id detected; assuming current GID is ok, but dist-ustar might not work" >&5 +printf "%s\n" "$as_me: WARNING: ancient id detected; assuming current GID is ok, but dist-ustar might not work" >&2;} + elif test $am_gid -le $am_max_gid; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + _am_tools=none + fi -am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -' + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to create a ustar tar archive" >&5 +printf %s "checking how to create a ustar tar archive... " >&6; } + + # Go ahead even if we have the value already cached. We do so because we + # need to set the values for the 'am__tar' and 'am__untar' variables. + _am_tools=${am_cv_prog_tar_ustar-$_am_tools} + + for _am_tool in $_am_tools; do + case $_am_tool in + gnutar) + for _am_tar in tar gnutar gtar; do + { echo "$as_me:$LINENO: $_am_tar --version" >&5 + ($_am_tar --version) >&5 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && break + done + am__tar="$_am_tar --format=ustar -chf - "'"$$tardir"' + am__tar_="$_am_tar --format=ustar -chf - "'"$tardir"' + am__untar="$_am_tar -xf -" + ;; + plaintar) + # Must skip GNU tar: if it does not support --format= it doesn't create + # ustar tarball either. + (tar --version) >/dev/null 2>&1 && continue + am__tar='tar chf - "$$tardir"' + am__tar_='tar chf - "$tardir"' + am__untar='tar xf -' + ;; + pax) + am__tar='pax -L -x ustar -w "$$tardir"' + am__tar_='pax -L -x ustar -w "$tardir"' + am__untar='pax -r' + ;; + cpio) + am__tar='find "$$tardir" -print | cpio -o -H ustar -L' + am__tar_='find "$tardir" -print | cpio -o -H ustar -L' + am__untar='cpio -i -H ustar -d' + ;; + none) + am__tar=false + am__tar_=false + am__untar=false + ;; + esac + + # If the value was cached, stop now. We just wanted to have am__tar + # and am__untar set. + test -n "${am_cv_prog_tar_ustar}" && break + + # tar/untar a dummy directory, and stop if the command works. + rm -rf conftest.dir + mkdir conftest.dir + echo GrepMe > conftest.dir/file + { echo "$as_me:$LINENO: tardir=conftest.dir && eval $am__tar_ >conftest.tar" >&5 + (tardir=conftest.dir && eval $am__tar_ >conftest.tar) >&5 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } + rm -rf conftest.dir + if test -s conftest.tar; then + { echo "$as_me:$LINENO: $am__untar &5 + ($am__untar &5 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } + { echo "$as_me:$LINENO: cat conftest.dir/file" >&5 + (cat conftest.dir/file) >&5 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } + grep GrepMe conftest.dir/file >/dev/null 2>&1 && break + fi + done + rm -rf conftest.dir + + if test ${am_cv_prog_tar_ustar+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) am_cv_prog_tar_ustar=$_am_tool ;; +esac +fi + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_tar_ustar" >&5 +printf "%s\n" "$am_cv_prog_tar_ustar" >&6; } @@ -5204,7 +5336,10 @@ _ACEOF break fi done - rm -f core conftest* + # aligned with autoconf, so not including core; see bug#72225. + rm -f -r a.out a.exe b.out conftest.$ac_ext conftest.$ac_objext \ + conftest.dSYM conftest1.$ac_ext conftest1.$ac_objext conftest1.dSYM \ + conftest2.$ac_ext conftest2.$ac_objext conftest2.dSYM unset am_i ;; esac fi @@ -8278,7 +8413,7 @@ 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. - Please get a Fortran compiler that supports it, e.g. GNU Fortran 4.8." "$LINENO" 5 + Please get a Fortran compiler that supports it, e.g. GNU Fortran 6.0." "$LINENO" 5 ;; esac fi @@ -8343,7 +8478,7 @@ 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 CLASS and type bound procedures. - Please get a Fortran compiler that supports them, e.g. GNU Fortran 4.8." "$LINENO" 5 + Please get a Fortran compiler that supports them, e.g. GNU Fortran 6.0." "$LINENO" 5 ;; esac fi @@ -8394,7 +8529,7 @@ 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 SOURCE= allocation. - Please get a Fortran compiler that supports it, e.g. GNU Fortran 4.8." "$LINENO" 5 + Please get a Fortran compiler that supports it, e.g. GNU Fortran 6.0." "$LINENO" 5 ;; esac fi @@ -8435,7 +8570,7 @@ 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 MOVE_ALLOC. - Please get a Fortran compiler that supports it, e.g. GNU Fortran 4.8." "$LINENO" 5 + Please get a Fortran compiler that supports it, e.g. GNU Fortran 6.0." "$LINENO" 5 ;; esac fi @@ -8475,7 +8610,7 @@ 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 ISO_C_BINDING. - Please get a Fortran compiler that supports it, e.g. GNU Fortran 4.8." "$LINENO" 5 + Please get a Fortran compiler that supports it, e.g. GNU Fortran 6.0." "$LINENO" 5 ;; esac fi @@ -8515,7 +8650,7 @@ 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 ISO_FORTRAN_ENV. - Please get a Fortran compiler that supports it, e.g. GNU Fortran 4.8." "$LINENO" 5 + Please get a Fortran compiler that supports it, e.g. GNU Fortran 6.0." "$LINENO" 5 ;; esac fi @@ -8528,6 +8663,61 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking support for Fortran SUBMODULES" >&5 +printf %s "checking support for Fortran SUBMODULES... " >&6; } +ac_ext=${ac_fc_srcext-f} +ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' +ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_fc_compiler_gnu + + ac_exeext='' + ac_ext='F90' + ac_fc=${MPIFC-$FC}; + cat > conftest.$ac_ext <<_ACEOF + +module conftest + + interface + module subroutine foo(v) + integer, intent(inout) :: v(:) + end subroutine foo + end interface +end module conftest +submodule (conftest) conftest_impl + +contains + module subroutine foo(v) + integer, intent(inout) :: v(:) + integer :: i + do i=1,size(v) + v(i)=i + end do + end subroutine foo +end submodule +_ACEOF +if ac_fn_fc_try_compile "$LINENO" +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + : +else case e in #( + e) { 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 without support for SUBMODULES. + Please get a Fortran compiler that supports it, e.g. GNU Fortran 6.0." "$LINENO" 5 ;; +esac +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking support for Fortran VOLATILE" >&5 printf %s "checking support for Fortran VOLATILE... " >&6; } ac_ext=${ac_fc_srcext-f} @@ -8757,7 +8947,7 @@ 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 + Please get a Fortran compiler that supports it, e.g. GNU Fortran 6.0." "$LINENO" 5 ;; esac fi @@ -8806,7 +8996,7 @@ 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 + Please get a Fortran compiler that supports it, e.g. GNU Fortran 6.0." "$LINENO" 5 ;; esac fi @@ -8857,7 +9047,7 @@ 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 + Please get a Fortran compiler that supports it, e.g. GNU Fortran 6.0." "$LINENO" 5 ;; esac fi @@ -8869,6 +9059,17 @@ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $ ac_compiler_gnu=$ac_cv_c_compiler_gnu +###################### +# Extract version data +###################### +#PAC_EXTRACT_AMG_VERSION +CFILE="amgprec/amg_base_prec_type.F90"; +AMGMAJOR=`cat $CFILE| grep version_major | $AWK '{print $6;}'`; +AMGMINOR=`cat $CFILE| grep version_minor| $AWK '{print $6;}'`; +AMGPATCH=`cat $CFILE| grep patchlevel| $AWK '{print $6;}'`; +AMGSTRING=`cat $CFILE | grep version_string | $AWK '{print $6;}'`; +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: AMG version $AMGSTRING" >&5 +printf "%s\n" " AMG version $AMGSTRING" >&6; } ############################################################################### # BLAS library presence checks @@ -11442,6 +11643,11 @@ AMGCXXDEFINES="$CXXDEFINES" + + + + + diff --git a/configure.ac b/configure.ac index b2a32693..2f476325 100755 --- a/configure.ac +++ b/configure.ac @@ -641,37 +641,43 @@ fi PAC_FORTRAN_TEST_EXTENDS( [], [AC_MSG_ERROR([Sorry, cannot build PSBLAS without support for EXTENDS. - Please get a Fortran compiler that supports it, e.g. GNU Fortran 4.8.])] + Please get a Fortran compiler that supports it, e.g. GNU Fortran 6.0.])] ) PAC_FORTRAN_TEST_CLASS_TBP( [], [AC_MSG_ERROR([Sorry, cannot build PSBLAS without support for CLASS and type bound procedures. - Please get a Fortran compiler that supports them, e.g. GNU Fortran 4.8.])] + Please get a Fortran compiler that supports them, e.g. GNU Fortran 6.0.])] ) PAC_FORTRAN_TEST_SOURCE( [], [AC_MSG_ERROR([Sorry, cannot build PSBLAS without support for SOURCE= allocation. - Please get a Fortran compiler that supports it, e.g. GNU Fortran 4.8.])] + Please get a Fortran compiler that supports it, e.g. GNU Fortran 6.0.])] ) PAC_FORTRAN_HAVE_MOVE_ALLOC( [], [AC_MSG_ERROR([Sorry, cannot build PSBLAS without support for MOVE_ALLOC. - Please get a Fortran compiler that supports it, e.g. GNU Fortran 4.8.])] + Please get a Fortran compiler that supports it, e.g. GNU Fortran 6.0.])] ) PAC_FORTRAN_TEST_ISO_C_BIND( [], [AC_MSG_ERROR([Sorry, cannot build PSBLAS without support for ISO_C_BINDING. - Please get a Fortran compiler that supports it, e.g. GNU Fortran 4.8.])] + Please get a Fortran compiler that supports it, e.g. GNU Fortran 6.0.])] ) PAC_FORTRAN_TEST_ISO_FORTRAN_ENV( [], [AC_MSG_ERROR([Sorry, cannot build PSBLAS without support for ISO_FORTRAN_ENV. - Please get a Fortran compiler that supports it, e.g. GNU Fortran 4.8.])] + Please get a Fortran compiler that supports it, e.g. GNU Fortran 6.0.])] +) + +PAC_FORTRAN_TEST_SUBMODULES( + [], + [AC_MSG_ERROR([Sorry, cannot build without support for SUBMODULES. + Please get a Fortran compiler that supports it, e.g. GNU Fortran 6.0.])], ) PAC_FORTRAN_TEST_VOLATILE( @@ -703,20 +709,30 @@ PAC_FORTRAN_TEST_FLUSH( PAC_FORTRAN_TEST_SAME_TYPE( [], [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.])] + Please get a Fortran compiler that supports it, e.g. GNU Fortran 6.0.])] ) PAC_FORTRAN_TEST_EXTENDS_TYPE( [], [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.])] + Please get a Fortran compiler that supports it, e.g. GNU Fortran 6.0.])] ) PAC_FORTRAN_TEST_MOLD( [], [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.])] + Please get a Fortran compiler that supports it, e.g. GNU Fortran 6.0.])] ) +###################### +# Extract version data +###################### +#PAC_EXTRACT_AMG_VERSION +CFILE="amgprec/amg_base_prec_type.F90"; +AMGMAJOR=`cat $CFILE| grep version_major | $AWK '{print $6;}'`; +AMGMINOR=`cat $CFILE| grep version_minor| $AWK '{print $6;}'`; +AMGPATCH=`cat $CFILE| grep patchlevel| $AWK '{print $6;}'`; +AMGSTRING=`cat $CFILE | grep version_string | $AWK '{print $6;}'`; +AC_MSG_RESULT([ AMG version $AMGSTRING]) ############################################################################### # BLAS library presence checks @@ -845,6 +861,11 @@ AC_SUBST(INSTALL_MODULESDIR) AC_SUBST(INSTALL_DOCSDIR) AC_SUBST(INSTALL_SAMPLESDIR) +AC_SUBST(AMGMAJOR) +AC_SUBST(AMGMINOR) +AC_SUBST(AMGPATCH) +AC_SUBST(AMGSTRING) + AC_SUBST(CHAVEUMF) AC_SUBST(CHAVESLU) AC_SUBST(CSLUVERSION)