diff options
Diffstat (limited to 'sci-chemistry/ambertools/files/ambertools-15-gentoo.patch')
-rw-r--r-- | sci-chemistry/ambertools/files/ambertools-15-gentoo.patch | 1441 |
1 files changed, 1441 insertions, 0 deletions
diff --git a/sci-chemistry/ambertools/files/ambertools-15-gentoo.patch b/sci-chemistry/ambertools/files/ambertools-15-gentoo.patch new file mode 100644 index 000000000..f949a4945 --- /dev/null +++ b/sci-chemistry/ambertools/files/ambertools-15-gentoo.patch @@ -0,0 +1,1441 @@ +diff --git a/AmberTools/src/Makefile b/AmberTools/src/Makefile +index 3d69773..c2a5045 100644 +--- a/AmberTools/src/Makefile ++++ b/AmberTools/src/Makefile +@@ -15,12 +15,6 @@ install: $(INSTALLTYPE) + serial: configured_serial THIRDPARTY $(MTKPP) + @echo "Starting installation of ${AMBERTOOLS} serial at `date`". + # utility routines and libraries: +- (cd ucpp-1.3 && $(MAKE) $(UCPP) ) +- (cd byacc && $(MAKE) install ) +- (cd arpack && $(MAKE) install ); +- (cd lapack && $(MAKE) $(LAPACK) ) +- (cd blas && $(MAKE) $(BLAS) ) +- (cd c9x-complex && $(MAKE) $(C9XCOMPLEX) ) + (cd pbsa && $(MAKE) install ) + (cd gbnsr6 && $(MAKE) install ) + (cd cifparse && $(MAKE) install ) +@@ -33,7 +27,6 @@ serial: configured_serial THIRDPARTY $(MTKPP) + $(MAKE) cpptraj + + # miscellaneous: +- (cd reduce && $(MAKE) install ) + + # leap + (cd leap && $(MAKE) install ) +@@ -103,12 +96,6 @@ serial: configured_serial THIRDPARTY $(MTKPP) + + nabonly: configured_serial $(XBLAS) + # utility routines and libraries: +- (cd ucpp-1.3 && $(MAKE) $(UCPP) ) +- (cd byacc && $(MAKE) install ) +- (cd arpack && $(MAKE) install ); +- (cd lapack && $(MAKE) $(LAPACK) ) +- (cd blas && $(MAKE) $(BLAS) ) +- (cd c9x-complex && $(MAKE) $(C9XCOMPLEX) ) + (cd pbsa && $(MAKE) libinstall ) + (cd rism && $(MAKE) $(RISM) ) + (cd cifparse && $(MAKE) install ) +@@ -144,12 +131,6 @@ parallel: configured_parallel THIRDPARTY + # (cd pbsa && $(MAKE) clean && $(MAKE) install.parallel ) + (cd pbsa && $(MAKE) libinstall ) + $(MAKE) cpptraj +- (cd byacc && $(MAKE) install ) +- (cd ucpp-1.3 && $(MAKE) $(UCPP) ) +- (cd cifparse && $(MAKE) install ) +- (cd arpack && $(MAKE) install ); +- (cd lapack && $(MAKE) $(LAPACK) ) +- (cd blas && $(MAKE) $(BLAS) ) + (cd mdgx && $(MAKE) $(MDGX) ) + (if [ "$(RISM)" = "yes" ]; then \ + cd rism && $(MAKE) install_mpi ; \ +@@ -215,18 +196,11 @@ netcdf_uninstall: + -/bin/rm -f netcdf_config.log ../lib/libnetcdf* ../include/netcdf.* + + clean:: +- -(cd ucpp-1.3 && $(MAKE) clean ) +- -(cd byacc && $(MAKE) clean ) +- -(cd cifparse && $(MAKE) clean ) + -(cd nab && $(MAKE) clean ) + -(cd sff && $(MAKE) clean ) + -(cd nss && $(MAKE) clean ) + -(cd leap && $(MAKE) clean ) +- -(cd arpack && $(MAKE) clean ) +- -(cd blas && $(MAKE) clean ) + -(cd xblas && $(MAKE) clean ) +- -(cd lapack && $(MAKE) clean ) +- -(cd c9x-complex && $(MAKE) clean ) + -(cd etc && $(MAKE) clean ) + -(cd chamber && $(MAKE) clean ) + -(cd pbsa && $(MAKE) clean ) +@@ -236,15 +210,12 @@ clean:: + -(cd lib && $(MAKE) clean ) + -(cd ptraj && $(MAKE) clean ) + -(cd cpptraj && $(MAKE) clean) +- -(cd reduce && $(MAKE) clean ) + -(cd mtkpp && $(MAKE) clean ) + -(cd mdgx && $(MAKE) clean ) + -(cd xtalutil/CPrograms && $(MAKE) clean ) + -(cd saxs && $(MAKE) clean ) + -(cd paramfit && $(MAKE) clean ) + -(cd rism && $(MAKE) clean ) +- -(cd fftw-3.3 && $(MAKE) clean ) +- -($(RM) -f fftw-3.3/mpi/fftw3-mpi.f03 ) + -(cd mmpbsa_py && /bin/rm -fr MMPBSA.py.MPI build/ mpi4py-1.2.2/) + -(cd mm_pbsa && $(MAKE) clean ) + -(cd FEW && $(MAKE) clean ) +@@ -315,7 +286,7 @@ $(LIBDIR)/libxblas-amb.a: + $(LIBDIR)/libfftw3.a $(LIBDIR)/libfftw3_mpi.a: + cd fftw-3.3 && $(MAKE) && $(MAKE) -j 1 install; + +-THIRDPARTY: $(XBLAS) $(FFTW3) ++THIRDPARTY: $(XBLAS) + + cuda: + @echo "$(AMBERTOOLS) has no CUDA-enabled components" +diff --git a/AmberTools/src/configure2 b/AmberTools/src/configure2 +index f1a3cff..4b07fa5 100755 +--- a/AmberTools/src/configure2 ++++ b/AmberTools/src/configure2 +@@ -318,7 +318,7 @@ fi + #------------------------------------------------------------------------------ + # Define variables that are currently constants: + #------------------------------------------------------------------------------ +-bintraj='yes' ++bintraj='no' + ldout=' -o ' + localcp='cp' + localmv='mv' +@@ -358,7 +358,7 @@ cygwin='no' + debug='no' + dragonegg='' + fpp="cpp -traditional -P" +-fppflags='' ++fppflags='-DBINTRAJ' + freeformat_flag='' + fwarnflag='' + g95='no' +@@ -370,7 +370,7 @@ installtype='serial' + intel_compiler_flag_mkl='no' + intelmpi='no' + is_mac='no' +-ldflags='' ++ldflags='GENTOO_LDFLAGS' + ld='ld ' + lfs='yes' + lm='-lm' +@@ -599,11 +599,11 @@ omp_flag= + mpi_flag= + lex=flex + flibs_mkl= +-lapack=install +-blas=install ++lapack=skip ++blas=skip + f2c=skip +-ucpp=install +-cpp="ucpp -l" ++ucpp=skip ++cpp="\$(EPREFIX)/usr/bin/ucpp -l" + + #----------------------------------- + # skip building of xleap? +@@ -907,7 +907,7 @@ gnu) + flibs_arch="-lgfortran -w" + flibsf_arch= + cc=gcc +- cflags="-fPIC" ++ cflags="-fPIC -DBINTRAJ" + ambercflags="" + cplusplus=g++ + cxxflags="-fPIC" +@@ -937,11 +937,11 @@ gnu) + foptflags="" + else + cnooptflags= +- coptflags="-O3" ++ coptflags="GENTOO_CFLAGS" + cxxnooptflags= +- cxxoptflags="-fPIC -O3" ++ cxxoptflags="-fPIC GENTOO_CXXFLAGS" + fnooptflags="-O0" +- foptflags="-O3" ++ foptflags="GENTOO_FFLAGS" + fi + + # Debugging options +@@ -957,11 +957,11 @@ gnu) + if [ $sse = 'yes' ]; then + if [ $x86_64 = 'yes' ]; then + #-mfpmath=sse is default for x86_64, no need to specific it +- coptflags="$coptflags -mtune=native" +- foptflags="$foptflags -mtune=native" ++ coptflags="$coptflags" ++ foptflags="$foptflags" + else # i386 needs to be told to use sse prior to using -mfpmath=sse +- coptflags="$coptflags -mtune=native -msse -mfpmath=sse" +- foptflags="$foptflags -mtune=native -msse -mfpmath=sse" ++ coptflags="$coptflags" ++ foptflags="$foptflags" + fi + fi + fcreal8="-fdefault-real-8" +@@ -1032,7 +1032,7 @@ gnu) + # pmemd_fpp_flags='-DFFTW_FFT' + # fi + pmemd_foptflags="$foptflags" +- pmemd_coptflags="$coptflags" ++ pmemd_coptflags="$coptflags -DBINTRAJ" + if [ ! -z $dragonegg ]; then + pmemd_foptflags="-fplugin=$dragonegg $fflags $pmemd_foptflags" + pmemd_coptflags="-fplugin=$dragonegg $pmemd_coptflags" +@@ -1062,7 +1062,7 @@ gnu) + fi + pmemd_cu_includes="$pmemd_cu_includes $mpi_inc" + pmemd_cu_defines="$pmemd_cu_defines -DMPI -DMPICH_IGNORE_CXX_SEEK" +- pmemd_coptflags="$coptflags -DMPICH_IGNORE_CXX_SEEK" ++ pmemd_coptflags="$coptflags -DMPICH_IGNORE_CXX_SEEK -DBINTRAJ" + fi + fi + if [ "$cuda_SPFP" = 'yes' ]; then +@@ -2649,40 +2649,40 @@ if [ "$has_fftw3" = 'yes' ]; then + if [ "$sse" = "yes" ]; then + enable_sse="--enable-sse2=yes" # --enable-avx=yes" + fi +- if [ "$mic" = 'yes' ]; then +- echo " --configuring for mic (native mode)..." +- echo +- cd fftw-3.3 && \ +- ./configure --prefix=$AMBERHOME --libdir=$AMBERHOME/lib \ +- --enable-static --enable-shared --host=x86_64-k1om-linux \ +- --build=x86_64-unknown-linux \ +- $enable_mpi $mpicc $enable_debug \ +- CC="$cc -mmic" CFLAGS="$cflags $coptflags " \ +- F77="$fc -mmic" FFLAGS="$fflags $foptflags " \ +- FLIBS="$flibs_arch" \ +- > ../fftw3_config.log 2>&1 +- ncerror=$? +- else +- cd fftw-3.3 && \ +- ./configure --prefix=$AMBERHOME --libdir=$AMBERHOME/lib \ +- --enable-static --enable-shared \ +- $enable_mpi $mpicc $enable_debug $enable_sse\ +- CC="$cc" CFLAGS="$cflags $coptflags" \ +- F77="$fc" FFLAGS="$fflags $foptflags" \ +- FLIBS="$flibs_arch" \ +- > ../fftw3_config.log 2>&1 +- ncerror=$? +- fi +- if [ $ncerror -gt 0 ]; then +- echo "Error: FFTW configure returned $ncerror" +- echo " FFTW configure failed! Check the fftw3_config.log file" +- echo " in the $AMBERHOME/AmberTools/src directory." +- exit 1 +- else +- echo " fftw-3.3 configure succeeded." +- fi +- cd .. +- flibs_fftw3="-lfftw3" ++# if [ "$mic" = 'yes' ]; then ++# echo " --configuring for mic (native mode)..." ++# echo ++# cd fftw-3.3 && \ ++# ./configure --prefix=$AMBERHOME --libdir=$AMBERHOME/lib \ ++# --enable-static --enable-shared --host=x86_64-k1om-linux \ ++# --build=x86_64-unknown-linux \ ++# $enable_mpi $mpicc $enable_debug \ ++# CC="$cc -mmic" CFLAGS="$cflags $coptflags " \ ++# F77="$fc -mmic" FFLAGS="$fflags $foptflags " \ ++# FLIBS="$flibs_arch" \ ++# > ../fftw3_config.log 2>&1 ++# ncerror=$? ++# else ++# cd fftw-3.3 && \ ++# ./configure --prefix=$AMBERHOME --libdir=$AMBERHOME/lib \ ++# --enable-static --enable-shared \ ++# $enable_mpi $mpicc $enable_debug $enable_sse\ ++# CC="$cc" CFLAGS="$cflags $coptflags" \ ++# F77="$fc" FFLAGS="$fflags $foptflags" \ ++# FLIBS="$flibs_arch" \ ++# > ../fftw3_config.log 2>&1 ++# ncerror=$? ++# fi ++# if [ $ncerror -gt 0 ]; then ++# echo "Error: FFTW configure returned $ncerror" ++# echo " FFTW configure failed! Check the fftw3_config.log file" ++# echo " in the $AMBERHOME/AmberTools/src directory." ++# exit 1 ++# else ++# echo " fftw-3.3 configure succeeded." ++# fi ++# cd .. ++ flibs_fftw3="GENTOO_FFTW3_LIBS" + fftw3="\$(LIBDIR)/libfftw3.a" + if [ "$mpi" = 'yes' -a "$intelmpi" = 'no' ]; then + flibs_fftw3="-lfftw3_mpi $flibs_fftw3" +@@ -2701,23 +2701,23 @@ elif [ "$mdgx" = 'yes' ]; then + if [ "$sse" = "yes" ]; then + enable_sse="--enable-sse2=yes" # --enable-avx=yes" + fi +- cd fftw-3.3 && \ +- ./configure --prefix=$AMBERHOME --libdir=$AMBERHOME/lib \ +- --enable-static --enable-shared --disable-fortran \ +- $enable_debug $enable_sse\ +- CC="$cc" CFLAGS="$cflags $coptflags" \ +- > ../fftw3_config.log 2>&1 +- ncerror=$? +- if [ $ncerror -gt 0 ]; then +- echo "Error: FFTW configure returned $ncerror" +- echo " FFTW configure failed! Check the fftw3_config.log file" +- echo " in the $AMBERHOME/AmberTools/src directory." +- exit 1 +- else +- echo " fftw-3.3 configure succeeded." +- fi +- cd .. +- flibs_fftw3="-lfftw3" ++# cd fftw-3.3 && \ ++# ./configure --prefix=$AMBERHOME --libdir=$AMBERHOME/lib \ ++# --enable-static --enable-shared --disable-fortran \ ++# $enable_debug $enable_sse\ ++# CC="$cc" CFLAGS="$cflags $coptflags" \ ++# > ../fftw3_config.log 2>&1 ++# ncerror=$? ++# if [ $ncerror -gt 0 ]; then ++# echo "Error: FFTW configure returned $ncerror" ++# echo " FFTW configure failed! Check the fftw3_config.log file" ++# echo " in the $AMBERHOME/AmberTools/src directory." ++# exit 1 ++# else ++# echo " fftw-3.3 configure succeeded." ++# fi ++# cd .. ++ flibs_fftw3="GENTOO_FFTW3_LIBS" + fftw3="\$(LIBDIR)/libfftw3.a" + else + echo "" +@@ -3162,7 +3162,7 @@ LDFLAGS=$ldflags \$(CUSTOMBUILDFLAGS) \$(AMBERBUILDFLAGS) + AMBERLDFLAGS=\$(AMBERBUILDFLAGS) + + LEX= $lex +-YACC= \$(BINDIR)/yacc ++YACC= byacc + AR= ar rv + M4= $m4 + RANLIB=$ranlib +@@ -3198,7 +3198,7 @@ CP=$localcp + # Information about Fortran compilation: + + FC=$fc +-FFLAGS= $fflags \$(LOCALFLAGS) \$(CUSTOMBUILDFLAGS) -I\$(INCDIR) \$(NETCDFINC) $mklinc \$(AMBERBUILDFLAGS) ++FFLAGS= $fflags \$(LOCALFLAGS) \$(CUSTOMBUILDFLAGS) -IGENTOO_INCLUDE \$(NETCDFINC) $mklinc \$(AMBERBUILDFLAGS) + FNOOPTFLAGS= $fnooptflags + FOPTFLAGS= $foptflags + AMBERFFLAGS=\$(AMBERBUILDFLAGS) +diff --git a/AmberTools/src/cpptraj/src/Makefile_at b/AmberTools/src/cpptraj/src/Makefile_at +index 977439f..4bf25c8 100644 +--- a/AmberTools/src/cpptraj/src/Makefile_at ++++ b/AmberTools/src/cpptraj/src/Makefile_at +@@ -10,7 +10,7 @@ CPPTRAJ_FLAGS= -I$(INCDIR) $(COPTFLAGS) $(CFLAGS) $(NETCDFINC) + # NOTE: Since -nobintraj is possible and the dependency for netcdf is not + # set correctly by configure there is no way this can work for netcdf + READLINE_HOME=readline +-READLINE=$(READLINE_HOME)/libreadline.a ++READLINE=-lreadline + EXTERNAL_LIBS=$(LIBDIR)/libarpack.a $(LIBDIR)/liblapack.a $(LIBDIR)/libblas.a $(READLINE) + + include cpptrajfiles +@@ -45,7 +45,7 @@ depend: findDepend + dependclean: + /bin/rm -f FindDepend.o findDepend + +-cpptraj$(SFX): $(OBJECTS) pub_fft.o $(EXTERNAL_LIBS) ++cpptraj$(SFX): $(OBJECTS) pub_fft.o + $(CXX) $(WARNFLAGS) $(LDFLAGS) -o cpptraj$(SFX) $(OBJECTS) pub_fft.o \ + -L$(LIBDIR) $(NETCDFLIB) $(ZLIB) $(BZLIB) $(FLIBS_PTRAJ) $(READLINE) + +@@ -53,12 +53,12 @@ ambpdb$(SFX): $(AMBPDB_OBJECTS) + $(CXX) $(WARNFLAGS) $(LDFLAGS) -o ambpdb$(SFX) $(AMBPDB_OBJECTS) \ + -L$(LIBDIR) $(NETCDFLIB) $(ZLIB) $(BZLIB) + +-cpptraj.sander$(SFX): $(OBJECTS) pub_fft.o $(EXTERNAL_LIBS) $(LIBDIR)/libsander.so ++cpptraj.sander$(SFX): $(OBJECTS) pub_fft.o $(LIBDIR)/libsander.so + $(CXX) $(WARNFLAGS) $(LDFLAGS) -o cpptraj.sander$(SFX) $(OBJECTS) pub_fft.o \ + -L$(LIBDIR) $(NETCDFLIB) $(ZLIB) $(BZLIB) $(FLIBS_PTRAJ) $(READLINE) \ + -lsander + +-libcpptraj$(SHARED_SUFFIX): $(OBJECTS) pub_fft.o $(EXTERNAL_LIBS) ++libcpptraj$(SHARED_SUFFIX): $(OBJECTS) pub_fft.o + $(CXX) $(MAKE_SHARED) $(WARNFLAGS) $(LDFLAGS) -o $@ $(OBJECTS) pub_fft.o \ + -L$(LIBDIR) $(NETCDFLIB) $(ZLIB) $(BZLIB) $(FLIBS_PTRAJ) $(READLINE) + +diff --git a/AmberTools/src/gbnsr6/Makefile b/AmberTools/src/gbnsr6/Makefile +index 0d704cb..85042d4 100644 +--- a/AmberTools/src/gbnsr6/Makefile ++++ b/AmberTools/src/gbnsr6/Makefile +@@ -66,7 +66,7 @@ configured_serial: configured + ) + + #--------------------------------------------------------------------------- +-gbnsr6$(SFX): $(OBJ) syslib netlib c9x-complex configured_serial ++gbnsr6$(SFX): $(OBJ) syslib configured_serial + $(FC) $(PBSAFLAG) $(FPPFLAGS) $(FFLAGS) $(AMBERFFLAGS) -o gbnsr6$(SFX) $(OBJ) \ + ../lib/nxtsec.o ../lib/random.o \ + -L$(LIBDIR) $(FLIBSF) $(LDFLAGS) $(AMBERLDFLAGS) +diff --git a/AmberTools/src/mdgx/Makefile b/AmberTools/src/mdgx/Makefile +index 5751142..04e8e1c 100644 +--- a/AmberTools/src/mdgx/Makefile ++++ b/AmberTools/src/mdgx/Makefile +@@ -151,7 +151,7 @@ MDGX_HEADERS = \ + ptrajmask.h \ + AmberNetcdf.h + +-$(BINDIR)/mdgx$(SFX) : $(FFTW3) $(MDGX_OBJS) ++$(BINDIR)/mdgx$(SFX) : $(MDGX_OBJS) + $(CC) $(COPTFLAGS) $(CFLAGS) $(AMBERCFLAGS) $(LDFLAGS) \ + -o $@ $(MDGX_OBJS) -L$(LIBDIR) $(FLIBS_FFTW3) $(NETCDFLIB) $(LM) + +@@ -159,7 +159,7 @@ $(BINDIR)/mdgx.MPI$(SFX) : $(MDGX_OBJS) + $(CC) $(COPTFLAGS) $(CFLAGS) $(AMBERCFLAGS) $(LDFLAGS) \ + -o $@ $(MDGX_OBJS) -L$(LIBDIR) $(FLIBSF) $(FLIBS_FFTW3) $(NETCDFLIB) $(LM) + +-$(LIBDIR)/libmdgx$(SHARED_SUFFIX): $(MDGX_OBJS) $(MDGXWRAP_OBJS) $(BINDIR)/ucpp ++$(LIBDIR)/libmdgx$(SHARED_SUFFIX): $(MDGX_OBJS) $(MDGXWRAP_OBJS) + $(CC) $(MAKE_SHARED) -o $@ $(CFLAGS) $(COPTFLAGS) -L$(LIBDIR) $(FLIBSF) \ + $(FLIBS_FFTW3) $(NETCDFLIB) $(LM) $(MDGX_OBJS) $(MDGXWRAP_OBJS) + cp -p mdgxapi.h $(INCDIR)/mdgx.h +diff --git a/AmberTools/src/nab/nab.c b/AmberTools/src/nab/nab.c +index 2e90068..cf83aaa 100644 +--- a/AmberTools/src/nab/nab.c ++++ b/AmberTools/src/nab/nab.c +@@ -161,8 +161,8 @@ char *cppstring; + fprintf( stderr, "AMBERHOME is not set!\n" ); + exit(1); + } +- sprintf( cmd, "%s/bin/%s %s -I%s/include %s ", +- amberhome, CPP, cppstring, amberhome, ++ sprintf( cmd, "%s %s -I%s/include %s ", ++ CPP, cppstring, amberhome, + argv[ ac ] ? argv[ ac ] : "" ); + if( cgdopt ) fprintf( stderr, "cpp cmd: %s\n", cmd ); + nfields = split( cmd, fields, " " ); +diff --git a/AmberTools/src/nmode/Makefile b/AmberTools/src/nmode/Makefile +index 12acf35..4f26593 100644 +--- a/AmberTools/src/nmode/Makefile ++++ b/AmberTools/src/nmode/Makefile +@@ -87,12 +87,12 @@ LIBOBJ= ../lib/rfree.o ../lib/matinv.o ../lib/nxtsec.o \ + LIBOBJNOPATH= rfree.o matinv.o nxtsec.o \ + amopen.o rgroup.o + +-$(BINDIR)/nmode$(SFX): $(OBJ) libobj syslib netlib ++$(BINDIR)/nmode$(SFX): $(OBJ) libobj syslib + $(FC) $(FPPFLAGS) $(FFLAGS) $(AMBERFFLAGS) -o $(BINDIR)/nmode$(SFX) \ + $(OBJ) $(LIBOBJ) \ + ../lib/sys.a -L$(LIBDIR) $(FLIBSF) $(LDFLAGS) $(AMBERLDFLAGS) + +-nmanal$(SFX): $(OBJ1) libobj netlib binpos.o ++nmanal$(SFX): $(OBJ1) libobj binpos.o + $(FC) $(FPPFLAGS) $(FFLAGS) $(AMBERFFLAGS) -o nmanal$(SFX) \ + $(OBJ1) $(LIBOBJ) binpos.o \ + -L$(LIBDIR) $(FLIBSF) $(LDFLAGS) $(AMBERLDFLAGS) +@@ -103,7 +103,7 @@ lmanal$(SFX): $(OBJ2) libobj binpos.o + -L$(LIBDIR) $(FLIBSF) $(LDFLAGS) $(AMBERLDFLAGS) + + quasih$(SFX): quasih.o fileio.o thermo.o mexit.o \ +- syslib netlib libobj binpos.o ++ syslib libobj binpos.o + $(FC) $(FPPFLAGS) $(FFLAGS) $(AMBERFFLAGS) -o quasih$(SFX) \ + quasih.o fileio.o thermo.o mexit.o \ + $(LIBOBJ) binpos.o ../lib/sys.a -L$(LIBDIR) $(FLIBSF) \ +diff --git a/AmberTools/src/parmed/chemistry/unit/unit.py b/AmberTools/src/parmed/chemistry/unit/unit.py +index 7767f39..a8d8a47 100644 +--- a/AmberTools/src/parmed/chemistry/unit/unit.py ++++ b/AmberTools/src/parmed/chemistry/unit/unit.py +@@ -612,7 +612,7 @@ class UnitSystem(object): + to_base_units[m][n] = power + try: + self.from_base_units = ~to_base_units +- except ArithmeticError, e: ++ except ArithmeticError as e: + raise ArithmeticError("UnitSystem is not a valid basis set. " + str(e)) + + def __iter__(self): +diff --git a/AmberTools/src/pbsa/Makefile b/AmberTools/src/pbsa/Makefile +index 1b2c09a..6dc65a6 100644 +--- a/AmberTools/src/pbsa/Makefile ++++ b/AmberTools/src/pbsa/Makefile +@@ -148,23 +148,23 @@ configured_parallel: configured + ) + + #--------------------------------------------------------------------------- +-pbsa$(SFX): FFTW3 $(OBJ) syslib netlib c9x-complex configured_serial ++pbsa$(SFX): $(OBJ) syslib configured_serial + $(FC) $(PBSAFLAG) $(FPPFLAGS) $(FFLAGS) $(AMBERFFLAGS) -o pbsa$(SFX) $(OBJ) \ + ../lib/nxtsec.o ../lib/random.o $(FLIBS_FFTW3) \ + -L$(LIBDIR) $(FLIBSF) $(LDFLAGS) $(AMBERLDFLAGS) + +-pbsa.MPI$(SFX): FFTW3.MPI $(OBJ) syslib netlib c9x-complex configured_parallel ++pbsa.MPI$(SFX): $(OBJ) syslib configured_parallel + $(FC) $(PBSAFLAG) $(FPPFLAGS) $(FFLAGS) $(AMBERFFLAGS) -o pbsa.MPI$(SFX) $(OBJ) \ + ../lib/nxtsec.o ../lib/random.o $(FLIBS_FFTW3) \ + -L$(LIBDIR) $(FLIBSF) $(LDFLAGS) $(AMBERLDFLAGS) + +-simplepbsa$(SFX): simplepbsa.o gopt.o libpbsa.a sfflib syslib netlib c9x-complex ++simplepbsa$(SFX): simplepbsa.o gopt.o libpbsa.a sfflib syslib + $(FC) $(PBSAFLAG) $(FPPFLAGS) $(FFLAGS) $(AMBERFFLAGS) -o simplepbsa$(SFX) simplepbsa.o gopt.o \ + libpbsa.a $(LIBDIR)/libsff.a ../lib/nxtsec.o -L$(LIBDIR) $(FLIBSF) \ + $(LDFLAGS) $(AMBERLDFLAGS) + /bin/mv simplepbsa$(SFX) $(BINDIR) + +-libpbsa.a: FFTW3 $(LIBPBSAOBJS) syslib ++libpbsa.a: $(LIBPBSAOBJS) syslib + -rm -f libpbsa.a + $(AR) libpbsa.a $(LIBPBSAOBJS) ../lib/random.o + $(RANLIB) libpbsa.a +diff --git a/AmberTools/src/ptraj/Makefile b/AmberTools/src/ptraj/Makefile +index df789e8..48227d5 100644 +--- a/AmberTools/src/ptraj/Makefile ++++ b/AmberTools/src/ptraj/Makefile +@@ -61,17 +61,16 @@ rdparm$(SFX): libs $(OBJECTS) + $(CC) $(CFLAGS) $(AMBERCFLAGS) $(LDFLAGS) $(AMBERLDFLAGS) \ + -o rdparm$(SFX) $(OBJECTS) $(LIBS) $(NETCDFLIB) $(LM) + +-ptraj$(SFX): libs netlib $(OBJECTS) ++ptraj$(SFX): libs $(OBJECTS) + $(CC) $(CFLAGS) $(AMBERCFLAGS) $(LDFLAGS) $(AMBERLDFLAGS) \ + -o ptraj$(SFX) $(OBJECTS) $(LIBS) $(NETCDFLIB) $(LM) + +-ptraj.MPI$(SFX): libs netlib $(OBJECTS) ++ptraj.MPI$(SFX): libs $(OBJECTS) + $(CC) $(CFLAGS) $(AMBERCFLAGS) $(LDFLAGS) $(AMBERLDFLAGS) \ + -o ptraj.MPI$(SFX) $(OBJECTS) $(LIBS) $(PNETCDFLIB) $(LM) + + libs: + cd pdb && $(MAKE) +- cd ../arpack && $(MAKE) + + netlib: + cd ../lapack && $(MAKE) $(LAPACK) +diff --git a/AmberTools/src/sander/Makefile b/AmberTools/src/sander/Makefile +index 9b9488c..67fe45a 100644 +--- a/AmberTools/src/sander/Makefile ++++ b/AmberTools/src/sander/Makefile +@@ -90,7 +90,7 @@ APBSOBJ= \ + file_io_dat.APBS.o apbs_vars.APBS.o apbs.APBS.o \ + constants.o state.o memory_module.o stack.o \ + nose_hoover.o nose_hoover_init.o \ +- trace.o rmsgrd.o lmod.o rand2.o lmodC.o xminC.o decomp.o \ ++ trace.o rmsgrd.o lmod.o rand2.o dsarpack.o lmodC.o xminC.o decomp.o \ + icosasurf.o egb.o remd.o findmask.o \ + relax_mat.o nmr.o multitmd.o \ + multisander.o sander.APBS.o trajene.o cshf.o nmrcal.o mtmdcall.o pearsn.o \ +@@ -138,7 +138,7 @@ SEBOMDLIB = ../sebomd/sebomd.a + + MMOBJ= file_io_dat.o constants.o state.o memory_module.o stack.o \ + nose_hoover.o nose_hoover_init.o \ +- trace.o rmsgrd.o lmod.o rand2.o lmodC.o xminC.o decomp.o \ ++ trace.o rmsgrd.o lmod.o rand2.o dsarpack.o lmodC.o xminC.o decomp.o \ + icosasurf.o egb.o remd.o findmask.o \ + relax_mat.o nmr.o multitmd.o \ + multisander.o sander.o trajene.o cshf.o nmrcal.o mtmdcall.o pearsn.o \ +@@ -159,7 +159,7 @@ MMOBJ= file_io_dat.o constants.o state.o memory_module.o stack.o \ + + APIOBJ= file_io_dat.o constants.o state.o memory_module.o stack.o \ + nose_hoover.o nose_hoover_init.o \ +- trace.o rmsgrd.o lmod.o rand2.o lmodC.o xminC.o decomp.o \ ++ trace.o rmsgrd.o lmod.o rand2.o dsarpack.o lmodC.o xminC.o decomp.o \ + icosasurf.o egb.o remd.o findmask.o \ + relax_mat.o nmr.o multitmd.o \ + trajene.o cshf.o nmrcal.o mtmdcall.o pearsn.o \ +@@ -180,7 +180,7 @@ APIOBJ= file_io_dat.o constants.o state.o memory_module.o stack.o \ + + LESAPIOBJ= memory_module.o stack.o file_io_dat.o les.o \ + constants.o state.o nose_hoover.o nose_hoover_init_LES.o \ +- trace.o rmsgrd.o rand2.o lmodC.o xminC.o decomp.o icosasurf.o \ ++ trace.o rmsgrd.o rand2.o dsarpack.o lmodC.o xminC.o decomp.o icosasurf.o \ + egb.LES.o remd.LES.o findmask.o relax_mat.o nmr.LES.o multitmd.o \ + cshf.o nmrcal.o mtmdcall.o pearsn.o cpparm.LES.o \ + printe.o runmin.o nonbond_list.LESAPI.o force.LES.o rdparm.LESAPI.o \ +@@ -209,7 +209,7 @@ PARTPIMDOBJ = pimd_vars.o pimd_force.LES.o pimd_init.LES.o cmd_vars.o cmd_matrix + + PUPILOBJ= file_io_dat.o constants.o state.o memory_module.o stack.o \ + nose_hoover.o nose_hoover_init.o \ +- trace.o rmsgrd.o lmod.o rand2.o lmodC.o xminC.o decomp.o \ ++ trace.o rmsgrd.o lmod.o rand2.o dsarpack.o lmodC.o xminC.o decomp.o \ + pupildata.o icosasurf.o egb.o findmask.o \ + relax_mat.o nmr.o multitmd.o \ + multisander.o sander.PUPIL.o trajene.o cshf.o nmrcal.o mtmdcall.o pearsn.o \ +@@ -233,7 +233,7 @@ LSCIVROBJ = lscivr_vars.o lsc_init.o lsc_xp.o + + LESOBJ= memory_module.o stack.o file_io_dat.o \ + constants.o state.o nose_hoover.o nose_hoover_init_LES.o \ +- trace.o rmsgrd.o rand2.o lmodC.o xminC.o decomp.o icosasurf.o \ ++ trace.o rmsgrd.o rand2.o dsarpack.o lmodC.o xminC.o decomp.o icosasurf.o \ + egb.LES.o remd.LES.o findmask.o \ + relax_mat.o nmr.LES.o multitmd.o \ + multisander.LES.o sander.LES.o cshf.o nmrcal.o mtmdcall.o pearsn.o \ +@@ -293,7 +293,7 @@ all_serial_programs: $(SERIALPROGS) + $(BINDIR)/sander$(SFX): libsqm $(MMOBJ) $(QMOBJ) $(FULLPIMDOBJ) $(EMIL) \ + $(SEBOMDOBJ) sebomd \ + $(LSCIVROBJ) force.o syslib \ +- ../lib/nxtsec.o netlib configured_serial \ ++ ../lib/nxtsec.o configured_serial \ + $(NCSU_OBJECTS) $(XRAY_OBJS) libpbsa librism $(PLUMED_DEPENDENCIES) + $(FC) $(FPPFLAGS) $(FFLAGS) $(AMBERFFLAGS) -o $@ $(MMOBJ) $(QMOBJ) $(SEBOMDOBJ) \ + $(FULLPIMDOBJ) $(LSCIVROBJ) force.o -L$(LIBDIR) -lsqm \ +@@ -308,7 +308,7 @@ $(BINDIR)/sander$(SFX): libsqm $(MMOBJ) $(QMOBJ) $(FULLPIMDOBJ) $(EMIL) \ + $(BINDIR)/sander.MPI$(SFX): libsqm $(MMOBJ) $(QMOBJ) $(FULLPIMDOBJ) $(EMIL) \ + $(LSCIVROBJ) $(EVBOBJ) force.o \ + $(SEBOMDOBJ) sebomd $(XRAY_OBJS) \ +- syslib ../lib/nxtsec.o netlib libpbsa librism_mpi configured_parallel $(NCSU_OBJECTS) \ ++ syslib ../lib/nxtsec.o libpbsa librism_mpi configured_parallel $(NCSU_OBJECTS) \ + $(PLUMED_DEPENDENCIES) + $(FC) $(FPPFLAGS) $(FFLAGS) $(AMBERFFLAGS) -o $@ $(MMOBJ) $(QMOBJ) $(SEBOMDOBJ) \ + $(FULLPIMDOBJ) $(LSCIVROBJ) $(EVBOBJ) force.o \ +@@ -323,7 +323,7 @@ $(BINDIR)/sander.MPI$(SFX): libsqm $(MMOBJ) $(QMOBJ) $(FULLPIMDOBJ) $(EMIL) \ + $(BINDIR)/sander.PUPIL$(SFX): libsqm $(PUPILOBJ) $(QMOBJ) $(FULLPIMDOBJ) $(EMIL) \ + $(LSCIVROBJ) syslib $(XRAY_OBJS) \ + $(SEBOMDOBJ) sebomd \ +- ../lib/nxtsec.o netlib libpbsa librism configured_serial $(NCSU_OBJECTS) \ ++ ../lib/nxtsec.o libpbsa librism configured_serial $(NCSU_OBJECTS) \ + $(PLUMED_DEPENDENCIES) + $(FC) $(FPPFLAGS) $(FFLAGS) $(AMBERFFLAGS) -o $@ $(PUPILOBJ) $(QMOBJ) $(SEBOMDOBJ) $(FULLPIMDOBJ) \ + $(LSCIVROBJ) -L$(LIBDIR) -lsqm -lFpbsa \ +@@ -335,7 +335,7 @@ $(BINDIR)/sander.PUPIL$(SFX): libsqm $(PUPILOBJ) $(QMOBJ) $(FULLPIMDOBJ) $(EMIL) + + #--------------------------------------------------------------------------- + $(BINDIR)/sander.LES$(SFX): libsqm $(LESOBJ) $(PARTPIMDOBJ) syslib \ +- ../lib/nxtsec.o netlib \ ++ ../lib/nxtsec.o \ + $(LSCIVROBJ) $(NCSU_OBJECTS) $(XRAY_OBJS) configured_serial \ + libpbsa librism $(EMIL) sebomd $(PLUMED_DEPENDENCIES) + $(FC) $(FPPFLAGS) $(FFLAGS) $(AMBERFFLAGS) -o $@ $(LESOBJ) $(PARTPIMDOBJ) $(LSCIVROBJ) \ +@@ -348,7 +348,7 @@ $(BINDIR)/sander.LES$(SFX): libsqm $(LESOBJ) $(PARTPIMDOBJ) syslib \ + #--------------------------------------------------------------------------- + $(BINDIR)/sander.LES.MPI$(SFX): libsqm $(LESOBJ) $(EVBPIMD) \ + $(PARTPIMDOBJ) syslib ../lib/nxtsec.o \ +- netlib libpbsa librism_mpi $(EMIL) $(XRAY_OBJS) \ ++ libpbsa librism_mpi $(EMIL) $(XRAY_OBJS) \ + $(LSCIVROBJ) $(NCSU_OBJECTS) sebomd configured_parallel $(PLUMED_DEPENDENCIES) + $(FC) $(FPPFLAGS) $(FFLAGS) $(AMBERFFLAGS) -o $@ $(LESOBJ) $(EVBPIMD) \ + $(PARTPIMDOBJ) $(LSCIVROBJ) $(XRAY_OBJS) \ +@@ -363,7 +363,7 @@ $(BINDIR)/sander.APBS$(SFX): libsqm $(APBSOBJ) $(QMOBJ) \ + $(LSCIVROBJ) $(FULLPIMDOBJ) $(NCSU_OBJECTS) \ + force.APBS.o syslib librism $(EMIL) \ + $(SEBOMDOBJ) sebomd $(XRAY_OBJS) \ +- ../lib/nxtsec.o netlib configured_serial $(PLUMED_DEPENDENCIES) ++ ../lib/nxtsec.o configured_serial $(PLUMED_DEPENDENCIES) + $(FC) $(FPPFLAGS) $(FFLAGS) $(AMBERFFLAGS) -o $@ $(APBSOBJ) $(QMOBJ) $(SEBOMDOBJ) \ + $(FULLPIMDOBJ) $(LSCIVROBJ) force.APBS.o \ + -L$(APBS_LIBDIR) $(APBS_LIBS) \ +@@ -386,7 +386,7 @@ $(BINDIR)/ambmask$(SFX): ambmask.o findmask.o amopen.o parms.o \ + $(LIBDIR)/libsander$(SHARED_SUFFIX): libsqm $(APIOBJ) $(QMAPIOBJ) $(FULLPIMDOBJ) $(EMIL) \ + $(SEBOMDOBJ) sebomd $(INCDIR)/sander_api.mod \ + $(LSCIVROBJ) force.o syslib $(PLUMED_DEPENDENCIES) \ +- ../lib/nxtsec.o netlib configured_serial \ ++ ../lib/nxtsec.o configured_serial \ + $(NCSU_OBJECTS) $(XRAY_OBJS) libpbsa librism + $(FC) $(MAKE_SHARED) $(FPPFLAGS) $(FFLAGS) $(AMBERFFLAGS) -o $@ $(APIOBJ) \ + $(QMAPIOBJ) $(SEBOMDOBJ) $(FULLPIMDOBJ) $(LSCIVROBJ) force.o \ +@@ -399,7 +399,7 @@ $(LIBDIR)/libsander$(SHARED_SUFFIX): libsqm $(APIOBJ) $(QMAPIOBJ) $(FULLPIMDOBJ) + $(LIOLIBS) $(PLUMED_LOAD) + + $(LIBDIR)/libsanderles$(SHARED_SUFFIX): libsqm $(LESAPIOBJ) $(PARTPIMDOBJ) $(QMAPIOBJ) syslib \ +- ../lib/nxtsec.o netlib $(INCDIR)/sanderles_api.mod \ ++ ../lib/nxtsec.o $(INCDIR)/sanderles_api.mod \ + $(LSCIVROBJ) $(NCSU_OBJECTS) $(XRAY_OBJS) configured_serial \ + libpbsa librism $(EMIL) sebomd $(PLUMED_DEPENDENCIES) + $(FC) $(MAKE_SHARED) $(FPPFLAGS) $(FFLAGS) $(AMBERFFLAGS) \ +@@ -452,6 +452,10 @@ rand2.o: ../sff/rand2.c + $(CC) -c $(CNOOPTFLAGS) $(CFLAGS) $(AMBERCFLAGS) \ + -o rand2.o ../sff/rand2.c + ++dsarpack.o: ../sff/dsarpack.f ++ $(CC) -c -DSQM $(CNOOPTFLAGS) $(CFLAGS) $(AMBERCFLAGS) \ ++ -o dsarpack.o ../sff/dsarpack.f ++ + lmodC.o: ../sff/lmodC.c + $(CC) -c -DSQM $(CNOOPTFLAGS) $(CFLAGS) $(AMBERCFLAGS) \ + -o lmodC.o ../sff/lmodC.c +diff --git a/AmberTools/src/sander/depend b/AmberTools/src/sander/depend +index 67cc33b..b8667d7 100644 +--- a/AmberTools/src/sander/depend ++++ b/AmberTools/src/sander/depend +@@ -5774,7 +5774,7 @@ yammpnb.o: \ + yammpnb.o: yammpnb.F90 + $(FC) $(FWARNFLAGS) $(FPPFLAGS) -c $(FOPTFLAGS) $(FFLAGS) $(AMBERFFLAGS) $(RISMSANDER) -o $@ yammpnb.F90 + +-netcdf.o: $(NETCDF) ++netcdf.o: + test -e $@ || touch netcdf.o + + AmberNetcdf.o: ../lib/AmberNetcdf.F90 +diff --git a/AmberTools/src/sander/makedepend b/AmberTools/src/sander/makedepend +index 05c04c4..a18d979 100755 +--- a/AmberTools/src/sander/makedepend ++++ b/AmberTools/src/sander/makedepend +@@ -232,7 +232,7 @@ foreach $file ( <*.F90> ){ + } + + # special "compilation rule" for netcdf.o +-printf "netcdf.o: \$(NETCDF)\n\ttest -e \$\@ || touch netcdf.o\n\n"; ++printf "netcdf.o:\n\ttest -e \$\@ || touch netcdf.o\n\n"; + + # special compilation rule for AmberNetcdf.o, random.o, and constants.o + printf "AmberNetcdf.o: ../lib/AmberNetcdf.F90\n"; +diff --git a/AmberTools/src/sander/sander.h b/AmberTools/src/sander/sander.h +index e4ca7e3..23cb216 100644 +--- a/AmberTools/src/sander/sander.h ++++ b/AmberTools/src/sander/sander.h +@@ -47,7 +47,7 @@ + // Workaround for strange behavior of clang compiler -- clang C doesn't seem to + // like the inline specifier on any of these functions, but clang++ handles it + // just fine. +-#if defined(__cplusplus) || !defined(__clang__) ++#if defined(__cplusplus) + # define INLINE inline + #else + # define INLINE +diff --git a/AmberTools/src/sff/Makefile b/AmberTools/src/sff/Makefile +index 228625a..88d5531 100644 +--- a/AmberTools/src/sff/Makefile ++++ b/AmberTools/src/sff/Makefile +@@ -3,7 +3,7 @@ include ../config.h + .c.o: + $(CC) -c -Dflex $(COPTFLAGS) $(CFLAGS) $(AMBERCFLAGS) $(RISMSFF) $(NETCDFINC) -o $@ $< + +-OBJS = binpos.o conjgrad.o lmodC.o memutil.o nblist.o newton.o nmode.o \ ++OBJS = binpos.o conjgrad.o dsarpack.o lmodC.o memutil.o nblist.o newton.o nmode.o \ + prm.o rand2.o sasad.o sff.o time.o xminC.o AmberNetcdf.o atomic_number.o $(SFF_RISM_INTERFACE) + + +@@ -65,7 +65,7 @@ xminC.o: sff.h + AmberNetcdf.o: AmberNetcdf.h + + hcp_getpdb: hcp_getpdb.c +- $(CC) -o $(BINDIR)/hcp_getpdb hcp_getpdb.c ++ $(CC) $(CFLAGS) $(LDFLAGS) -o $(BINDIR)/hcp_getpdb hcp_getpdb.c + + .PHONY: ../rism/amber_rism_interface.NAB.o + ../rism/amber_rism_interface.NAB.o: +diff --git a/AmberTools/src/sff/dsarpack.f b/AmberTools/src/sff/dsarpack.f +new file mode 100644 +index 0000000..5544df9 +--- /dev/null ++++ b/AmberTools/src/sff/dsarpack.f +@@ -0,0 +1,654 @@ ++ subroutine dsarpack(n_dim,n_eig_in,n_eig_out,ncv_in,itr_in, ++ & eigval_tol,eigvals,eigvecs,spectrum, ++ & need_eigvecs,ierr,debug_arpack, ++ & v,workl,workd,d,resid,ax,select, ++ & xyz,grad,return_flag,label) ++c ++ implicit none ++c ++c %-----------------% ++c | Dummy Arguments | ++c %-----------------% ++c ++ integer n_dim,n_eig_in,n_eig_out,ncv_in,itr_in,spectrum, ++ & need_eigvecs,ierr,debug_arpack,return_flag,label ++ Double precision eigval_tol ++ Double precision eigvals(n_eig_in),eigvecs(n_dim * n_eig_in) ++ Double precision v(n_dim,ncv_in), ++ & workl(ncv_in*(ncv_in+8)),workd(3*n_dim), ++ & d(ncv_in,2),resid(n_dim),ax(n_dim), ++ & xyz(n_dim),grad(n_dim) ++ logical select(ncv_in) ++c ++ save ++c ++c %---------------% ++c | Include Files | ++c %---------------% ++c ++c include 'debug.h' ++c ++c\SCCS Information: @(#) ++c FILE: debug.h SID: 2.3 DATE OF SID: 11/16/95 RELEASE: 2 ++c ++c %---------------------------------% ++c | See debug.doc for documentation | ++c %---------------------------------% ++ integer logfil, ndigit, mgetv0, ++ & msaupd, msaup2, msaitr, mseigt, msapps, msgets, mseupd, ++ & mnaupd, mnaup2, mnaitr, mneigh, mnapps, mngets, mneupd, ++ & mcaupd, mcaup2, mcaitr, mceigh, mcapps, mcgets, mceupd ++ common /debug/ ++ & logfil, ndigit, mgetv0, ++ & msaupd, msaup2, msaitr, mseigt, msapps, msgets, mseupd, ++ & mnaupd, mnaup2, mnaitr, mneigh, mnapps, mngets, mneupd, ++ & mcaupd, mcaup2, mcaitr, mceigh, mcapps, mcgets, mceupd ++c ++c This code shows how to use ARPACK to find a few eigenvalues ++c (lambda) and corresponding eigenvectors (x) for the standard ++c eigenvalue problem: ++c ++c A*x = lambda*x ++c ++c where A is an n by n real symmetric matrix. ++c ++c The main points illustrated here are ++c ++c 1) How to declare sufficient memory to find NEV ++c eigenvalues of largest magnitude. Other options ++c are available. ++c ++c 2) Illustration of the reverse communication interface ++c needed to utilize the top level ARPACK routine DSAUPD ++c that computes the quantities needed to construct ++c the desired eigenvalues and eigenvectors(if requested). ++c ++c 3) How to extract the desired eigenvalues and eigenvectors ++c using the ARPACK routine DSEUPD. ++c ++c The only thing that must be supplied in order to use this ++c routine on your problem is to change the array dimensions ++c appropriately, to specify WHICH eigenvalues you want to compute ++c and to supply a matrix-vector product ++c ++c w <- Av ++c ++c in place of the call to AV( ) below. ++c ++c Once usage of this routine is understood, you may wish to explore ++c the other available options to improve convergence, to solve generalized ++c problems, etc. Look at the file ex-sym.doc in DOCUMENTS directory. ++c This codes implements ++c ++c\Example-1 ++c ... Suppose we want to solve A*x = lambda*x in regular mode, ++c where A is derived from the central difference discretization ++c of the 2-dimensional Laplacian on the unit square with ++c zero Dirichlet boundary condition. ++c ... OP = A and B = I. ++c ... Assume "call av (n,x,y)" computes y = A*x ++c ... Use mode 1 of DSAUPD. ++c ++c\BeginLib ++c ++c\Routines called: ++c dsaupd ARPACK reverse communication interface routine. ++c dseupd ARPACK routine that returns Ritz values and (optionally) ++c Ritz vectors. ++c dnrm2 Level 1 BLAS that computes the norm of a vector. ++c daxpy Level 1 BLAS that computes y <- alpha*x+y. ++c ++c\Author ++c Richard Lehoucq ++c Danny Sorensen ++c Chao Yang ++c Dept. of Computational & ++c Applied Mathematics ++c Rice University ++c Houston, Texas ++c ++c\SCCS Information: %Z% ++c FILE: %M% SID: %I% DATE OF SID: %G% RELEASE: %R% ++c ++c\Remarks ++c 1. None ++c ++c\EndLib ++c ++c----------------------------------------------------------------------- ++c ++c %-------------------------------------------------------% ++c | Storage Declarations: | ++c | | ++c | The maximum dimensions for all arrays are | ++c | set here to accommodate a problem size of | ++c | N .le. MAXN | ++c | | ++c | NEV is the number of eigenvalues requested. | ++c | See specifications for ARPACK usage below. | ++c | | ++c | NCV is the largest number of basis vectors that will | ++c | be used in the Implicitly Restarted Arnoldi | ++c | Process. Work per major iteration is | ++c | proportional to N*NCV*NCV. | ++c | | ++c | You must set: | ++c | | ++c | MAXN: Maximum dimension of the A allowed. (dynamic) | ++c | MAXNEV: Maximum NEV allowed. (dynamic) | ++c | MAXNCV: Maximum NCV allowed. (dynamic) | ++c %-------------------------------------------------------% ++c ++C %--------------------------------------% ++C | F90 Allocatable Arrays (on the heap) | ++C %--------------------------------------% ++c ++C Double precision,allocatable,save :: v(:,:) ++C integer,save :: v_row_allocated = 0, v_col_allocated = 0 ++c ++c %----------------------------------------------% ++c | Originally, as F77 parameters, the following | ++c | integers were used to dimension work arrays. | ++c | They are replaced by dummy arguments used to | ++c | dimension the work arrays as F90 automatic | ++c | arrays, but the integers are still used for | ++c | passing the dimensions to lower level ARPACK | ++c | routines dsaupd, dseupd and dmout. | ++c %----------------------------------------------% ++c ++ integer maxn, maxnev, maxncv, ldv ++c ++c %-------------------------------------------% ++c | Local F90 Automatic Arrays (on the stack) | ++c %-------------------------------------------% ++c ++ Double precision ++C & workl(ncv_in*(ncv_in+8)), ++C & workd(3*n_dim), d(ncv_in,2), resid(n_dim), ++C & ax(n_dim), ++ & cg_dstat(4) ++C logical select(ncv_in) ++ integer iparam(11), ipntr(11), ++ & cg_istat(4) ++c ++c %---------------% ++c | Local Scalars | ++c %---------------% ++c ++ character bmat*1, which*2 ++ integer ido, n, nev, ncv, lworkl, info, ++ & i, j, nx, ishfts, maxitr, mode1, nconv ++ integer L12, L18, ARPACK_ERROR, status_flag ++ data L12, L18, ARPACK_ERROR /1, 2, -2/ ++C integer v_row_needed, v_col_needed ++ logical rvec ++ Double precision ++ & tol, sigma ++c ++c %------------% ++c | Parameters | ++c %------------% ++c ++ Double precision ++ & zero ++ parameter (zero = 0.0D+0) ++c ++c %-----------------------------% ++c | BLAS & LAPACK routines used | ++c %-----------------------------% ++c ++ Double precision ++ & dnrm2 ++ external dnrm2, daxpy, hessvec ++c ++c %--------------------% ++c | Intrinsic function | ++c %--------------------% ++c ++ intrinsic abs ++c ++c %-----------------------% ++c | Executable Statements | ++c %-----------------------% ++c ++ if ( label.eq.0 ) go to 1 ++ go to (12,18) label ++ 1 continue ++c ++c %------------------------------------------------% ++c | Values used to calculate work array dimensions | ++c %------------------------------------------------% ++c ++ maxn = n_dim ++ maxnev = n_eig_in ++ maxncv = ncv_in ++ ldv = maxn ++c ++c %---------------------------------------------------% ++c | The include debug.h statement above and | ++c | assignments here initiate trace output from the | ++c | internal actions of ARPACK. See debug.doc in the | ++c | DOCUMENTS directory for usage. Initially, the | ++c | most useful information will be a breakdown of | ++c | time spent in the various stages of computation | ++c | given by setting msaupd = 1. | ++c %---------------------------------------------------% ++c ++ ndigit = -5 ++ logfil = 6 ++ msgets = 0 ++ msaitr = 0 ++ msapps = 0 ++ if ( debug_arpack.eq.1 ) then ++ msaupd = 1 ++ else ++ msaupd = 0 ++ endif ++ msaup2 = 0 ++ mseigt = 0 ++ mseupd = 0 ++c ++c *** Allocatable array v will be allowed to grow to its largest size; ++c *** it is never deallocated: ++C v_row_needed = n_dim !!! ldv ++C v_col_needed = ncv_in !!! maxncv ++C if( allocated(v) )then ++C if( (v_row_needed .gt. v_row_allocated) ++C & .or. (v_col_needed .gt. v_col_allocated) )then ++C deallocate(v,stat=ierr) ++C if( ierr .ne. 0 )then ++C write( logfil, '(a,i16,1x,i8)' ) ++C & 'ARPACK: could not deallocate v' ++C go to 9000 ++C endif ++C endif ++C endif ++C if( .not. allocated(v) )then ++C allocate( v(v_row_needed,v_col_needed), stat=ierr ) ++C if( ierr .ne. 0 )then ++C write( logfil, '(a,2i10)' ) ++C & 'ARPACK: could not allocate v' ++C go to 9000 ++C endif ++C v_row_allocated = v_row_needed ++C v_col_allocated = v_col_needed ++C endif ++C v = zero !!! zero out entire v array ++c ++c %-------------------------------------------------% ++c | The following sets dimensions for this problem. | ++c %-------------------------------------------------% ++c ++ n = n_dim ++c ++c %----------------------------------------------% ++c | | ++c | Specifications for ARPACK usage are set | ++c | below: | ++c | | ++c | 1) NEV = N_EIG_IN asks for N_EIG_IN | ++c | eigenvalues to be computed. | ++c | | ++c | 2) NCV = NCV_IN sets the length of the | ++c | Arnoldi factorization | ++c | | ++c | 3) This is a standard problem | ++c | (indicated by bmat = 'I') | ++c | | ++c | 4) Ask for the NEV eigenvalues of | ++c | smallest magnitude | ++c | (indicated by which = 'SM') | ++c | See documentation in SSAUPD for the | ++c | other options SA, LA, LM, BE. | ++c | | ++c | Note: NEV and NCV must satisfy the following | ++c | conditions: | ++c | NEV <= MAXNEV | ++c | NEV + 1 <= NCV <= MAXNCV | ++c %----------------------------------------------% ++c ++ nev = n_eig_in ++ ncv = ncv_in ++ bmat = 'I' ++ if ( spectrum .eq. 1 ) then ++ which = 'SM' ++ else if ( spectrum .eq. 2 ) then ++ which = 'SA' ++ else if ( spectrum .eq. 3 ) then ++ which = 'LM' ++ else if ( spectrum .eq. 4 ) then ++ which = 'LA' ++ else if ( spectrum .eq. 5 ) then ++ which = 'BE' ++ else ++ print *, ' ERROR with _SSIMP: Spectrum .NE. (SM|SA|LA|LM|BE)' ++ go to 9000 ++ end if ++c ++ if ( n .gt. maxn ) then ++ print *, ' ERROR with _SSIMP: N is greater than MAXN ' ++ go to 9000 ++ else if ( nev .gt. maxnev ) then ++ print *, ' ERROR with _SSIMP: NEV is greater than MAXNEV ' ++ go to 9000 ++ else if ( ncv .gt. maxncv ) then ++ print *, ' ERROR with _SSIMP: NCV is greater than MAXNCV ' ++ go to 9000 ++ end if ++c ++c %-----------------------------------------------------% ++c | | ++c | Specification of stopping rules and initial | ++c | conditions before calling DSAUPD | ++c | | ++c | TOL determines the stopping criterion. | ++c | | ++c | Expect | ++c | abs(lambdaC - lambdaT) < TOL*abs(lambdaC) | ++c | computed true | ++c | | ++c | If TOL .le. 0, then TOL <- macheps | ++c | (machine precision) is used. | ++c | | ++c | IDO is the REVERSE COMMUNICATION parameter | ++c | used to specify actions to be taken on return | ++c | from DSAUPD. (See usage below.) | ++c | | ++c | It MUST initially be set to 0 before the first | ++c | call to DSAUPD. | ++c | | ++c | INFO on entry specifies starting vector information | ++c | and on return indicates error codes | ++c | | ++c | Initially, setting INFO=0 indicates that a | ++c | random starting vector is requested to | ++c | start the ARNOLDI iteration. Setting INFO to | ++c | a nonzero value on the initial call is used | ++c | if you want to specify your own starting | ++c | vector (This vector must be placed in RESID.) | ++c | | ++c | The work array WORKL is used in DSAUPD as | ++c | workspace. Its dimension LWORKL is set as | ++c | illustrated below. | ++c | | ++c %-----------------------------------------------------% ++c ++ lworkl = ncv*(ncv+8) ++ tol = eigval_tol ++ info = 0 ++ ido = 0 ++c ++c %---------------------------------------------------% ++c | Specification of Algorithm Mode: | ++c | | ++c | This program uses the exact shift strategy | ++c | (indicated by setting PARAM(1) = 1). | ++c | IPARAM(3) specifies the maximum number of Arnoldi | ++c | iterations allowed. Mode 1 of DSAUPD is used | ++c | (IPARAM(7) = 1). All these options can be changed | ++c | by the user. For details see the documentation in | ++c | DSAUPD. | ++c %---------------------------------------------------% ++c ++ ishfts = 1 ++ maxitr = itr_in ++ mode1 = 1 ++c ++ iparam(1) = ishfts ++c ++ iparam(3) = maxitr ++c ++ iparam(7) = mode1 ++c ++c %------------------------------------------------% ++c | M A I N L O O P (Reverse communication loop) | ++c %------------------------------------------------% ++c ++ 10 continue ++c ++c %---------------------------------------------% ++c | Repeatedly call the routine DSAUPD and take | ++c | actions indicated by parameter IDO until | ++c | either convergence is indicated or maxitr | ++c | has been exceeded. | ++c %---------------------------------------------% ++c ++ call dsaupd ( ido, bmat, n, which, nev, tol, resid, ++ & ncv, v, ldv, iparam, ipntr, workd, workl, ++ & lworkl, info ) ++c ++ if (ido .eq. -1 .or. ido .eq. 1) then ++c ++c %--------------------------------------% ++c | Perform matrix vector multiplication | ++c | y <--- OP*x | ++c | The user should supply his/her own | ++c | matrix vector multiplication routine | ++c | here that takes workd(ipntr(1)) as | ++c | the input, and return the result to | ++c | workd(ipntr(2)). | ++c %--------------------------------------% ++c ++ status_flag = 0 ++ 11 continue ++ call hessvec ( n, workd(ipntr(1)), workd(ipntr(2)), ++ & xyz, grad, return_flag, status_flag ) ++ if ( status_flag.eq.0 ) go to 13 ++ if ( status_flag.lt.0 ) go to 9000 ++ label = L12 ++ return ++ 12 go to 11 ++ 13 continue ++c ++c %-----------------------------------------% ++c | L O O P B A C K to call DSAUPD again. | ++c %-----------------------------------------% ++c ++ go to 10 ++c ++ end if ++c ++c %----------------------------------------% ++c | Either we have convergence or there is | ++c | an error. | ++c %----------------------------------------% ++c ++ if ( info .lt. 0 ) then ++c ++c %--------------------------% ++c | Error message. Check the | ++c | documentation in DSAUPD. | ++c %--------------------------% ++c ++ print *, ' ' ++ print *, ' Error with _saupd, info = ', info ++ print *, ' Check documentation in _saupd ' ++ print *, ' ' ++ go to 9000 ++c ++ else ++c ++c %-------------------------------------------% ++c | No fatal errors occurred. | ++c | Post-Process using DSEUPD. | ++c | | ++c | Computed eigenvalues may be extracted. | ++c | | ++c | Eigenvectors may be also computed now if | ++c | desired. (indicated by rvec = .true.) | ++c | | ++c | The routine DSEUPD now called to do this | ++c | post processing (Other modes may require | ++c | more complicated post processing than | ++c | mode1.) | ++c | | ++c %-------------------------------------------% ++c ++ if ( need_eigvecs .eq. 1 ) then ++ rvec = .true. ++ else ++ rvec = .false. ++ end if ++c ++ call dseupd ( rvec, 'All', select, d, v, ldv, sigma, ++ & bmat, n, which, nev, tol, resid, ncv, v, ldv, ++ & iparam, ipntr, workd, workl, lworkl, ierr ) ++c ++c %----------------------------------------------% ++c | Eigenvalues are returned in the first column | ++c | of the two dimensional array D and the | ++c | corresponding eigenvectors are returned in | ++c | the first NCONV (=IPARAM(5)) columns of the | ++c | two dimensional array V if requested. | ++c | Otherwise, an orthogonal basis for the | ++c | invariant subspace corresponding to the | ++c | eigenvalues in D is returned in V. | ++c %----------------------------------------------% ++c ++ if ( ierr .ne. 0) then ++c ++c %------------------------------------% ++c | Error condition: | ++c | Check the documentation of DSEUPD. | ++c %------------------------------------% ++c ++ print *, ' ' ++ print *, ' Error with _seupd, info = ', ierr ++ print *, ' Check the documentation of _seupd. ' ++ print *, ' ' ++ go to 9000 ++c ++ else if ( debug_arpack.eq.1 ) then ++c ++ nconv = iparam(5) ++ n_eig_out = nconv ++ if ( nconv .le. 0 ) then ++ print *, ' ' ++ print *, ' ARPACK: Not a single mode converged.' ++ print *, ' ' ++ go to 9000 ++ endif ++c ++C %--------------------------------------------% ++C | "UnDO" DO 20 j=1,nconv loop, because it is | ++C | illegal to jump in and out from a DO loop. | ++C %--------------------------------------------% ++c ++ j = 1 ++ 16 continue ++c ++c %---------------------------% ++c | Compute the residual norm | ++c | | ++c | || A*x - lambda*x || | ++c | | ++c | for the NCONV accurately | ++c | computed eigenvalues and | ++c | eigenvectors. (iparam(5) | ++c | indicates how many are | ++c | accurate to the requested | ++c | tolerance) | ++c %---------------------------% ++c ++ status_flag = 0 ++ 17 continue ++ call hessvec ( n, v(1,j), ax, xyz, grad, ++ & return_flag, status_flag ) ++ if ( status_flag.eq.0 ) go to 19 ++ if ( status_flag.lt.0 ) go to 9000 ++ label = L18 ++ return ++ 18 go to 17 ++ 19 continue ++c ++ call daxpy(n, -d(j,1), v(1,j), 1, ax, 1) ++ d(j,2) = dnrm2(n, ax, 1) ++ d(j,2) = d(j,2) / abs(d(j,1)) ++c ++ j = j + 1 ++ if ( j .gt. nconv ) go to 20 ++c ++ go to 16 ++c ++ 20 continue ++c ++c %-----------------------------% ++c | Display computed residuals. | ++c %-----------------------------% ++c ++ call dmout(6, nconv, 2, d, maxncv, -6, ++ & 'Ritz values and relative residuals') ++c ++c %-------------------------------------------% ++c | Print additional convergence information. | ++c %-------------------------------------------% ++c ++ if ( info .eq. 1) then ++ print *, ' ' ++ print *, ' Maximum number of iterations reached.' ++ print *, ' ' ++ else if ( info .eq. 3) then ++ print *, ' ' ++ print *, ' No shifts could be applied during implicit', ++ & ' Arnoldi update, try increasing NCV.' ++ print *, ' ' ++ end if ++c ++ print *, ' ' ++ print *, ' _SSIMP ' ++ print *, ' ====== ' ++ print *, ' ' ++ print *, ' Size of the matrix is ', n ++ print *, ' The number of Ritz values requested is ', nev ++ print *, ' The number of Arnoldi vectors generated', ++ & ' (NCV) is ', ncv ++ print *, ' What portion of the spectrum: ', which ++ print *, ' The number of converged Ritz values is ', ++ & nconv ++ print *, ' The number of Implicit Arnoldi update', ++ & ' iterations taken is ', iparam(3) ++ print *, ' The number of OP*x is ', iparam(9) ++ print *, ' The convergence criterion is ', tol ++ print *, ' ' ++ end if ++c ++c %----------------------------% ++c | Return eigvals and eigvecs | ++c %----------------------------% ++c ++ nconv = iparam(5) ++ n_eig_out = nconv ++ if ( nconv .le. 0 ) then ++ print *, ' ' ++ print *, ' ARPACK: Not a single mode converged.' ++ print *, ' ' ++ go to 9000 ++ endif ++c ++ do 40 j=1, nconv ++ eigvals(j) = d(j,1) ++c ++ do 30 i=1, n ++ eigvecs((j-1)*n+i) = v(i,j) ++ 30 continue ++ 40 continue ++c ++ end if ++c ++c %--------------------------------% ++c | Done with subroutine dsarpack. | ++c %--------------------------------% ++c ++ label = 0 ++ return ++c ++ 9000 continue !!! Error ++c ++ if( status_flag.eq.0 ) status_flag = ARPACK_ERROR ++c ++ label = status_flag ++ return ++c ++ end ++c ++c ------------------------------------------------------------------ +diff --git a/AmberTools/src/sqm/Makefile b/AmberTools/src/sqm/Makefile +index a0fa790..5983764 100644 +--- a/AmberTools/src/sqm/Makefile ++++ b/AmberTools/src/sqm/Makefile +@@ -82,7 +82,7 @@ QMOBJ = qm2_allocate_e_repul.o qm2_calc_charges.o qm2_calc_dipole.o \ + install: sqm$(SFX) + mv sqm$(SFX) $(BINDIR) + +-sqm$(SFX): $(SQMOBJ) $(QMOBJ) netlib sys ++sqm$(SFX): $(SQMOBJ) $(QMOBJ) sys + $(FC) $(FPPFLAGS) $(FFLAGS) $(AMBERFFLAGS) -o sqm$(SFX) $(SQMOBJ) $(QMOBJ) \ + -L$(LIBDIR) $(FLIBSF) ../lib/sys.a $(LDFLAGS) $(AMBERLDFLAGS) + +diff --git a/AmberTools/test/Makefile b/AmberTools/test/Makefile +index 8252d52..24b9272 100644 +--- a/AmberTools/test/Makefile ++++ b/AmberTools/test/Makefile +@@ -3,14 +3,14 @@ include ../src/config.h + ###### Top-level targets, for general use: ############################ + + test:: +- ./test_at_serial.sh ++ +./test_at_serial.sh + + test.parallel:: + ./test_at_parallel.sh + + ###### Intermediate-level targets: ############################ + +-test.serial: clean is_amberhome_defined \ ++test.serial: is_amberhome_defined \ + test.nab test.cpptraj test.antechamber test.mdgx \ + test.leap test.resp test.pbsa test.gbnsr6 test.mmpbsa test.parmed \ + test.elsize test.sqm test.rism1d test.amberlite \ +diff --git a/AmberTools/test/test_at_serial.sh b/AmberTools/test/test_at_serial.sh +index a154c84..c092eb6 100755 +--- a/AmberTools/test/test_at_serial.sh ++++ b/AmberTools/test/test_at_serial.sh +@@ -44,3 +44,9 @@ fi + + # save summary for later reporting: + tail -5 ${logfile} > ${logdir}/at_summary ++ ++if [ "${questionable_count}" -ne 0 -o "${error_count}" -ne 0 ] ++then ++ # Tests failed ++ exit 1 ++fi +diff --git a/AmberTools/test/test_check.sh b/AmberTools/test/test_check.sh +index 108c446..62c0b88 100644 +--- a/AmberTools/test/test_check.sh ++++ b/AmberTools/test/test_check.sh +@@ -63,7 +63,7 @@ check_environment() { + # We are done here for Macs + test $is_mac = "yes" && return + +- python << EOF ++ python2 << EOF + import os + import sys + ambhome = os.getenv('AMBERHOME') |